higress【一 环境搭建】
higress(docker环境)+nacos (注册中心+服务中心) 环境搭建
本实例使用阿里巴巴最新的higress和nacos为服务体系搭建微服务集群的教程。首先在本地环境(Windows 10)部署 nacos(standalone模式),然后编写springCloudAlibaba 微服务,然后再ubuntu中搭建higress服务(由于当前最新版本必须依赖容器执行,所以需要在docker或者k8s环境下搭建,本人使用现有的ubuntu中的docker进行安装部署,各位可以按照自己的情况自由搭建)。
一、各个软件版本:
higress 1.1.0、nacos 2.2.3 ,Ubuntu 22.04 LTS,docker 20.10.18,springboot 2.7.6,springCloudAlibaba 2021.0.5.0,springCloud 2021.0.5
二、nacos 部署
1. 由于nacos 没有强依赖容器,所以本人直接下载jar包本地部署。
下载地址:https://github.com/alibaba/nacos/releases/tag/2.2.3,下载以.zip为后缀的压缩包。

解压到本地,修改配置文件 /conf/application.properties ,添加一下配置(数据库信息根据自己的实际情况进行配置,我这里是使用的MySQL数据库,并创建了名称为nacos的库):
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=root db.password=123456
# 由于higress暂时不支持nacos的认证连接,所以这里关闭nacos的认证
nacos.core.auth.enabled=false
在MySQL数据库中名称为nacos的库中执行SQL(conf/mysql-schema.sql),创建nacos的持久化表。
2. 启动nacos:进入nacos解压包下的 bin 目录,以管理员身份运行命令行,执行命令:
startup -m standalone
三、创建自定义微服务:
本人创建了三个模块如下:

higress-producer(生产者)和higress-consumer(消费者)的核心配置如下:
maven的pom文件核心依赖:
<!-- springcloud2020.*以后禁用bootstrap,需要单独添加依赖支持--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-loadbalancer</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency>
bootstrap.yml配置(主要是进行nacos配置中心的配置)如下:
# 远程配置文件dataId spring: application: name: higress-producer # 开启profiles,远程nacos配置文件 dataId:higress-producer-dev # profiles: # active: dev cloud: # 指定springcloud选择符合前缀的IP作为服务注册IP, 支持正则表达式 inetutils: preferred-networks: - 10.* nacos: username: nacos password: nacos config: server-addr: 10.53.207.47:8848 namespace: 120523fa-052a-4a2e-abb1-e572ddfef2f5 file-extension: yaml refresh-enabled: true enabled: true # context-path: /nacos #----------------配置约定------------- # 最终拼接出来的就是:DataId:higress-producer-dev.yaml (一定要注意约定,否则加载不到配置) # Data ID = ${spring.cloud.nacos.config.prefix}.${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # Group = ${spring.cloud.nacos.config.group}
在 nacos中配置注册中心信息(生产者和服务者的端口号注意不要冲突):
server: port: 9090 spring: cloud: nacos: discovery: server-addr: 10.53.207.47:8848 namespace: 120523fa-052a-4a2e-abb1-e572ddfef2f5 # ip: bom-center.cn # loadbalancer: # ribbon: # enabled: false logging: path: /log level: root: INFO
服务启动,注册服务至nacos中,如下图:

三、higress 安装
1. 安装前,为了避免端口冲突而安装失败,先通过环境变量配置自定义端口:
编辑 /etc/profile 文件,添加以下内容
export CONSOLE_PORT=9200
export GATEWAY_HTTP_PORT=9500
CONSOLE_PORT 环境变量指定 higress 的控制台监听的端口
GATEWAY_HTTP_PORT 环境变量指定 higress 的网关的监听端口。
然后执行命令 source /etc/profile 使环境变量生效。
2. 然后在ubuntu上运行以下安装命令(注意ubuntu主机和nacos服务的主机之间网络要通,且ubuntu主机必须可以连接互联网):
curl -fsSL https://higress.io/standalone/get-higress.sh | bash -s -- -c nacos://10.53.207.47:8848 --nacos-ns='11fced6f-7c2e-4c9e-9de2-8637fc369e0c' --nacos-username=nacos --nacos-password=nacos -p admin
-c:指定nacos服务地址和端口
--nacos-ns :指定higress在nacos中配置信息的命名空间,higress在安装时会把配置信息写入对应的命名空间下。
--nacos-username 和 --nacos-password :指定nacos的用户名密码(因为higress暂时不支持nacos的认证连接,这两个配置不需要配)
-p :指定higress 控制台登录的密码,默认账号密码:admin/admin
安装成功后执行:docker ps 命令,结果如下:

可以看到higress各个服务模块已经成功运行了。
如果安装过程中出现异常而退出了,可以运行安装目录下 /higress/bin/shutdown.sh ,然后彻底删除 higress 文件夹,然后重新运行第 2 部的安装命令。
/higress/bin/ 目录下的 shutdown.sh 关闭并移除 higress 的相关容器,startup.sh 创建并运行 higress 的相关容器。
在运行启动的时候如果 precheck 服务检查不通过,higress无法启动,可以尝试编辑 higress/compose/.env 文件,删除其中的 nacos服务 的用户名和密码(因为nacos关闭了服务认证,如果higress安装的第 2 部指定了nacos的账号和密码,则precheck启动时会检查认证,higress服务认证无法通过,导致服务无法启动),然后顺序执行 shutdown.sh ,startup.sh。
3. 配置网关路由
a. 登录higress控制台,在 《服务来源》菜单中配置服务信息,如下图:

配置服务来源之后,进入《服务列表》菜单,显示如下服务清单,如果可以看到服务内容,说明higress已经从nacos中拉取服务信息成功。

b. 在《域名管理》菜单下添加域名,用来标识应用和服务。

c. 在《路由管理》菜单中创建并配置应用服务的路由信息


d. 验证请求,在linux系统中通过higress网关访问应用的服务接口,注意需要在请求中添加请求头 ,请求头名称 “host”,值 是我们在higress中配置的域名 “higress.com”。访问路径格式:
http:// higress网关ip : higress网关端口 / 应用程序服务路径
curl --location --request GET 'http://localhost:9500/producer/host' \ --header 'host: higress.com'
本文来自博客园,作者:蓝迷梦,转载请注明原文链接:https://www.cnblogs.com/hewei-blogs/articles/17559728.html

浙公网安备 33010602011771号