【开发者空间实践指导】CSE服务治理实践-负载均衡
一、案例介绍
微服务引擎CSE,是用于微服务应用的云中间件,支持华为云贡献到Apache社区的注册配置中心Servicecomb引擎和开源增强的注册配置中心Nacos引擎。用户可结合其他云服务,快速构建云原生微服务体系,实现微服务应用的快速开发和高可用运维。
本案例将演示如何在云主机运行本地CSE环境,并使用CSE演示负载均衡、限流、降级等微服务治理功能。
二、免费领取云主机
如您还没有云主机,可点击链接 ,根据领取指南进行操作。
如您已领取云主机,可直接开始实验。
三、实验流程
说明:
- 在云主机上搭建CSE本地开发工具;
- 启动provider-one服务并注册到CSE;
- 启动provider-two服务并注册到CSE;
- 启动provider-three服务并注册到CSE;
- 启动consumer服务并注册到CSE;
- 修改consumer配置切换负载均衡模。
四、搭建本地CSE环境并测试负载均衡
4.1 下载CSE本地开发工具包并启动服务
登录云主机,在浏览器中输入下载地址:https://support.huaweicloud.com/devg-cse/cse_04_0046.html进入下载页面,选择Local-CSE-2.1.8-linux-amd64.zip版本包下载。
下载好以后解压工具包,如图所示。
进入Local-CSE-2.1.8-Linux-amd64目录下,右键点击空白处,在弹出的菜单中选择“在终端打开”。
在命令行中输入以下命令启动CSE服务:
nohup sh start.sh >/dev/null 2>&1 &
4.2 测试CSE服务注册等功能
接上面的步骤,继续在命令行中输入如下命令测试“服务注册”:
curl -X POST 'http://127.0.0.1:30100/v4/default/registry/microservices' -d '{"service":{"serviceName":"Demo"}}'
在命令行中输入如下命令测试“服务发现”:
curl -X GET 'http://127.0.0.1:30100/v4/default/registry/instances?appId=default&serviceName=Demo'
在命令行中输入如下命令测试“新建配置”:
curl -H 'Content-Type: application/json' -X POST 'http://127.0.0.1:30110/v1/default/kie/kv' -d '{"key":"spring.test","value":"{\"name\":\"demo\"}","value_type":"json","status":"enabled"}'
在命令行中输入如下命令测试“获取配置”:
curl -X GET 'http://127.0.0.1:30110/v1/default/kie/kv?key=spring.test'
4.3 启动测试微服务
在主目录下,右键点击空白处,在弹出的菜单中选择“在终端打开”,在打开的命令行执行如下命令下载示例代码:
git clone -b 2021.0.x https://github.com/huaweicloud/spring-cloud-huawei-samples.git
受网络影响,可能会出现下载失败的情况,如果遇到下载失败,重试几次即可。
下载好代码,进入目录spring-cloud-huawei-samples/governance/loadbalance,执行如下命令将示例代码打成jar包:
mvn clean package
进入目录provider-one/target/,右键点击空白处,在弹出的菜单中选择“在终端打开”,在打开的命令行执行如下命令启动provider-one服务,注意不要关闭命令行窗口。
java -jar provider-one-1.0-SNAPSHOT.jar
回到spring-cloud-huawei-samples/governance/loadbalance目录,进入目录provider-two/target/,右键点击空白处,在弹出的菜单中选择“在终端打开”,在打开的命令行执行如下命令启动provider-tow服务,注意不要关闭命令行窗口。
java -jar provider-two-1.0-SNAPSHOT.jar
回到spring-cloud-huawei-samples/governance/loadbalance目录,进入目录provider-three/target/,右键点击空白处,在弹出的菜单中选择“在终端打开”,在打开的命令行执行如下命令启动provider-three服务,注意不要关闭命令行窗口。
java -jar provider-three-1.0-SNAPSHOT.jar
回到spring-cloud-huawei-samples/governance/loadbalance目录,进入目录consumer/target/,右键点击空白处,在弹出的菜单中选择“在终端打开”,在打开的命令行执行如下命令启动consumer服务,注意不要关闭命令行窗口。
java -jar consumer-1.0-SNAPSHOT.jar
4.4 测试负载均衡轮询模式
上面步骤执行完成后,四个微服务已经启动,在浏览器输入如下地址调用接口:
http://localhost:8090/load-balance?id=111
继续调用接口会获得如下信息:
provider id-----> 111 port ----->8091 ,version----->0.0.1
provider id-----> 111 port ----->8092 ,version----->0.0.2
provider id-----> 111 port ----->8093 ,version----->0.0.3
provider id-----> 111 port ----->8091 ,version----->0.0.1
provider id-----> 111 port ----->8092 ,version----->0.0.2
provider id-----> 111 port ----->8093 ,version----->0.0.3
version会有规律的从0.0.1到0.0.3循环出现,这种模式就是轮询模式。
4.5 修改配置文件测试随机模式
进入目录spring-cloud-huawei-samples/governance/loadbalance/consumer/src/main/resources,找到配置文件application.yaml。
双击打开文件,将下图所示的“RoundRobin”修改为“Random”,点击“保存”。
关闭4.3步骤中启动consumer服务的命令行窗口,停止consumer服务,然后回到目录spring-cloud-huawei-samples/governance/loadbalance/consumer,右键点击空白处,在弹出的菜单中选择“在终端打开”,在命令行中输入如下命令重新打包consumer服务jar包:
mvn clean package
打好包后,执行如下命令启动consumer服务,注意不要关闭窗口。
cd target
java -jar consumer-1.0-SNAPSHOT.jar
服务启动完成后,在浏览器继续输入如下地址调用接口:
http://localhost:8090/load-balance?id=111
继续调用接口会获得如下信息:
provider id-----> 111 port ----->8091 ,version----->0.0.1
provider id-----> 111 port ----->8093 ,version----->0.0.3
provider id-----> 111 port ----->8093 ,version----->0.0.3
provider id-----> 111 port ----->8092 ,version----->0.0.2
provider id-----> 111 port ----->8092 ,version----->0.0.2
provider id-----> 111 port ----->8093 ,version----->0.0.3
version将会无规律的从0.0.1到0.0.3随机出现,这种模式就是随机模式。
至此实验完成。
- 点赞
- 收藏
- 关注作者
评论(0)