1 概述
1.1 背景介绍
微服务引擎CSE,是用于微服务应用的云中间件,支持华为云贡献到Apache社区的注册配置中心Servicecomb引擎和开源增强的注册配置中心Nacos引擎。用户可结合其他云服务,快速构建云原生微服务体系,实现微服务应用的快速开发和高可用运维。 CSE本地开发工具包含了ServiceComb引擎2.x的本地轻量化版本,提供用于本地开发的轻量服务中心、配置中心和简单易用的界面。
1.2 适用对象
- 企业
- 个人开发者
- 高校学生
1.3 案例时间
本案例总时长预计30分钟。
1.4 案例流程
{{{width="40%" height="auto"}}}
说明: ① 在云主机上搭建CSE本地开发工具; ② Web-demo服务添加配置对接CSE; ③ 启动Web-demo服务自动注册到CSE。
1.5 资源总览
本案例预计花费总计0元。 |资源名称| 规格| 单价(元)| 时长(h)| |-|-|-|-| |CSE本地开发工具包| ServiceComb引擎2.x,单个微服务数量100,微服务版本数量10000| 0| 0.5| |开发者空间-云主机| 免费版| 0| 0.5|
2 搭建本地CSE环境
2.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目录下,右键点击空白处,在弹出的菜单中选择“Open Terminal Here”。
在命令行中输入以下命令启动CSE服务:
nohup sh start.sh >/dev/null 2>&1 &
在浏览器中输入以下地址打开本地微服务管理页面: http://127.0.0.1:30103 
2.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'
3 SpringCloud项目接入CSE
3.1 云主机CodeArts IDE运行项目
参考“基于云主机的CodeArts IDE运行Java电商项目”完成在云主机的CodeArts IDE上运行自己的项目。 在浏览器中输入以下地址打开本地微服务管理页面: http://127.0.0.1:30103
发现应用数和服务数依然是0,说明项目并没有接入到CSE。
3.2 在pom.xml中引入依赖
在代码主目录下,找到pom.xml文件,在pom文件中 标签下引入如下依赖:
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-service-engine</artifactId>
<version>1.11.9-2021.0.x</version>
<exclusions>
<exclusion>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-swagger</artifactId>
</exclusion>
</exclusions>
</dependency>
说明: 上述spring-cloud-starter-huawei-service-engine模块包含以下依赖模块,涵盖了CSE微服务引擎的各种功能:
<!-- 注册发现模块 -->
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-discovery</artifactId>
</dependency>
<!-- 配置中心模块 -->
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-config</artifactId>
</dependency>
<!-- 服务治理模块 -->
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-governance</artifactId>
</dependency>
<!-- 灰度发布模块 -->
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-router</artifactId>
</dependency>
3.3 增加配置文件bootstrap.yml
在项目代码中找到./src/main/resources目录,增加对接CSE服务的必要配置文件bootstrap.yml,文件内容如下:
spring:
application:
name: E-Commerce
cloud:
servicecomb:
service:
name: ${spring.application.name}
version: ${CAS_INSTANCE_VERSION:0.0.1}
application: ${CAS_APPLICATION_NAME:basic-application}
environment: production
discovery:
address: ${PAAS_CSE_SC_ENDPOINT:http://127.0.0.1:30100}
healthCheckInterval: 10
pollInterval: 15000
waitTimeForShutDownInMillis: 15000
config:
serverAddr: ${PAAS_CSE_CC_ENDPOINT:http://127.0.0.1:30110}
serverType: kie
kie:
customLabel: ${spring.application.name}
customLabelValue: ${INSTANCE_TAG:default}
fileSource: governance.yaml,application.yaml

3.4 启动项目
在Java项目找到项目的主函数文件,然后在主函数左边点击绿色的三角形按钮,然后选择第一个“在CommerceApplication中运行主程序”:
即可完成项目启动运行,左下角终端中显示“Started CommerceApplication in XXX seconds”即表示项目运行成功。 在浏览器中输入以下地址打开本地微服务管理页面: http://127.0.0.1:30103
在页面上,我们可以看到我们的demo项目已经注册到管理中心。
3.5 bootstrap.yml配置文件分析
spring:
application:
name: E-Commerce
此处配置为微服务名称,一旦定好后续不能更改。
service:
name: ${spring.application.name}
version: ${CAS_INSTANCE_VERSION:0.0.1}
application: ${CAS_APPLICATION_NAME:basic-application}
environment: production
此处配置为微服务基本信息,name就是微服务名称,引用上面的定义;version是微服务版本号;application是应用名称,默认情况下只有应用名称相同的微服务之间才可以相互发现;Environment是环境名称,只有环境名称相同的微服务之间才可以相互发现,可以取值 development, testing, acceptance, production。
discovery:
address: ${PAAS_CSE_SC_ENDPOINT:http://127.0.0.1:30100}
healthCheckInterval: 10
pollInterval: 15000
waitTimeForShutDownInMillis: 15000
此处配置是注册发现相关配置,address是注册中心地址;healthCheckInterval是微服务向CSE发送心跳间隔时间,单位秒;pollInterval拉取实例的轮询时间,单位毫秒;waitTimeForShutDownInMillis是优雅停机设置,优雅停机后,先从注册中心注销自己,这个时间表示注销自己后等待的时间,这个时间后才退出。
3.6 总结
本案例为CSE微服务实践的第一步,指导开发者从零搭建本地CSE开发环境,为后续实验打好基础。接下来,我们将在此环境中学习配置使用配置中心、灰度发布、微服务治理等功能。
6万+

被折叠的 条评论
为什么被折叠?



