【开发者空间实践指导】CSE服务治理实践-负载均衡

举报
开发者空间小蜜蜂 发表于 2024/12/20 15:11:44 2024/12/20
【摘要】 本案例将演示如何在云主机运行本地CSE环境,并使用CSE演示负载均衡、限流、降级等微服务治理功能。

一、案例介绍

微服务引擎CSE,是用于微服务应用的云中间件,支持华为云贡献到Apache社区的注册配置中心Servicecomb引擎和开源增强的注册配置中心Nacos引擎。用户可结合其他云服务,快速构建云原生微服务体系,实现微服务应用的快速开发和高可用运维。

本案例将演示如何在云主机运行本地CSE环境,并使用CSE演示负载均衡、限流、降级等微服务治理功能。

二、免费领取云主机

如您还没有云主机,可点击链接 ,根据领取指南进行操作。

如您已领取云主机,可直接开始实验。

三、实验流程

说明:

  1. 在云主机上搭建CSE本地开发工具
  2. 启动provider-one服务并注册到CSE
  3. 启动provider-two服务并注册到CSE
  4. 启动provider-three服务并注册到CSE
  5. 启动consumer服务并注册到CSE
  6. 修改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随机出现,这种模式就是随机模式。

至此实验完成。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。