欢迎来试试:阿里开源的微服务API网关Higress

API 网关在微服务中的关键作用

网关作为现代微服务架构中的关键组件,承担着一系列的重要职责:

1)协议转换:例如,在阿里云的某些开源项目中,网关能够将外部HTTP请求转换为内部服务间通信所使用的gRPC协议,确保了前后端技术栈的一致性和高效性。

2)安全隔离:网关可以对外部访问进行身份验证和授权检查,比如使用API密钥或OAuth2.0等认证方式,有效防止未授权访问,保护后端服务的安全。

3)流量控制:这是网关不可或缺的功能之一,它允许开发者根据实际需求设定速率限制规则,如每秒请求数限制,以避免突发大流量对系统造成冲击,保障整个应用平台的稳定运行。

Higress网关主要功能详解

Higress是一款来自阿里巴巴的开源API网关,基于阿里内部多年的实战经验沉淀而成。它不仅继承了Envoy和Istio的核心优势,还深度集成了Dubbo、Nacos等微服务技术栈,为用户提供了一个功能丰富且易于部署维护的解决方案。

作为完全开源免费的产品,Higress致力于降低开发者在构建云原生应用时面临的复杂性与成本,支持从传统架构向现代微服务架构平滑迁移。

通过采用Higress,用户能够享受到由阿里团队持续贡献的技术红利。

Higress网关是一款基于Envoy和Istio构建的云原生API网关,具有多项核心能力。它通过简单的配置即可实现协议转换、安全隔离与流量控制等功能,无需额外开发。

1)  Higress支持HTTP到Dubbo等协议之间的转换,帮助传统微服务用户以更低的成本暴露对外服务。

2) 内置了Waf模块进行安全防护,并提供认证鉴权插件,保障应用安全。

3) Higress具备限流降级等服务治理和流量管理能力,能够有效应对突发流量。这些特性已经在阿里巴巴集团内部得到了充分验证,经过了高流量环境的实际检验,证明了其稳定性和可靠性。

Higress具体使用样例-基于docker的单机版快速部署

前置条件

确保本机已安装 Docker。如果还未安装,请参考官方指引完成安装:Docker 官方安装指南

部署步骤

Higress 支持通过一个简单的 Docker 容器启动,适合个人开发者在本地环境搭建学习或用于简易站点的构建。

  1. 创建一个工作目录来存放配置文件和数据。
mkdir higress
  1. 使用下面的命令行启动 Higress。此命令会将容器内的特定目录映射到本地的工作目录,并暴露三个重要端口供外部访问:

启动命令如下:

docker run -d --rm --name higress-ai -v ./higress:/data \
        -p 8001:8001 -p 8080:8080 -p 8443:8443  \
        higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
    • 8001 端口:Higress UI 控制台入口
    • 8080 端口:网关 HTTP 协议入口
    • 8443 端口:网关 HTTPS 协议入口

登陆 Higress 控制台进行配置

  1. 在浏览器中输入 http://127.0.0.1:8001 打开控制台。
  1. 如果是首次访问,则需要初始化管理员账号。根据提示设置用户名与密码后,使用刚刚创建的凭据登录。
  1. 进入“服务来源”菜单项,点击右侧的“创建服务来源”按钮。填写如下信息:
    • 服务类型:选择 DNS域名
    • 服务名称:填入 httpbin
    • 服务端口:指定为 80
    • 域名列表:输入 httpbin.org 作为示例服务地址
  1. 接下来转到“路由管理”,点击“创建路由”。按以下方式设定新路由:
    • 路由名称:命名为 my-route
    • 匹配规则:选择“精确匹配”,并填写路径 /get
    • 目标服务:从下拉列表中选中 httpbin.dns

测试生效

为了验证配置是否正确且功能正常,可以在浏览器或者终端执行以下请求:

curl http://127.0.0.1:8080/get -H 'host: httpbin.org'

若一切顺利,您应该能看到来自 httpbin.org 的响应,以 JSON 格式返回了本次请求的信息。

查看本地配置,了解生效原理

上述过程中的控制台操作会自动生成相应的 Ingress API 配置文件。这些文件被保存在初始创建的 higress 目录下的 ingresses 文件夹内。例如,对于刚才创建的路由 my-route,会生成一个名为 my-route.yaml 的文件,其内容大致如下:

annotations:
  higress.io/destination: httpbin.dns
  higress.io/ignore-path-case: "false"
labels:
  higress.io/resource-definer: higress
rules:
- http:
    paths:
    - backend:
        resource:
          apiGroup: networking.higress.io
          kind: McpBridge
          name: default
      path: /get
      pathType: Exact

这里的关键部分在于 rules 字段,它定义了具体的路由规则;而 backend 则指定了实际处理请求的目标服务。

总结

以上就是基于 Docker 的 Higress 单机版快速部署教程。该方法非常适合初学者上手实践,同时也适用于小型项目或开发测试场景。值得注意的是,Higress 也支持使用 K8s 等方式进行更复杂的部署和集成,具体可以去 Higress 官网 查询更多详细资料。

猜你喜欢

转载自blog.csdn.net/whisperzzza/article/details/143206172