转载请注明出处
相关系列
微服务创建
当 ServiceComb 引擎部署好之后。浏览器访问 ${IP}:30103
可以看到控制台页面, 需要在页面中创建对应的微服务。如下图
注意:
相同应用的微服务直接才可以互相发现
也就是在创建微服务的时候, 填写表单的时候 微服务应用 这一项需要填写成一致的。微服务名称 这一项可以根据具体的服务来填写。
配置创建
当 ServiceComb 引擎部署好之后。浏览器访问 ${IP}:30103
可以看到控制台页面, 选择配置列表来创建应用所需的配置。微服务默认会读取配置中心应用配置
、服务配置
、自定义配置
。
创建的时候配置有下面三个类别:
应用级
: 环境、应用和微服务相同的配置服务级配置
:环境、应用、微服务名称和微服务相同的配置自定义配置
: 微服务可以在配置文件中指定一个特定的label及label值,自定义配置指label及label值与微服务相同的配置
具体的操作页面如下:
代码开发
依赖引入
工程原本依赖了一些 Spring cloud alibaba所需的依赖, 这里我们先不处理那些依赖, 直接引入华为云的SDK,后续在配置文件文件中关闭 Spring cloud alibaba 的相关功能即可
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-service-engine</artifactId>
<!-- 当前最新版本 -->
<version>1.11.10-2023.0.x</version>
<!-- 排除部分冲突的依赖 -->
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</exclusion>
<exclusion>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-swagger</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
新增 bootstrap.properties
# 注意这里的应用名需要和页面上创建的对应上, 相同应用的微服务直接才可以互相发现
# 注意这里的应用名需要和页面上创建的对应上, 相同应用的微服务直接才可以互相发现
# 注意这里的应用名需要和页面上创建的对应上, 相同应用的微服务直接才可以互相发现
spring.cloud.servicecomb.service.application=${CSE_APPLICATION_NAME:xxxxx}
# 注意这里的服务名需要和页面上创建的对应上
spring.cloud.servicecomb.service.name=${CSE_SERVICE_NAME:xxxxxxxx}
spring.cloud.servicecomb.service.version=${CSE_SERVICE_VERSION:6.0.0}
spring.cloud.servicecomb.service.environment=${CSE_SERVICE_ENVIRONMENT:production}
# 禁止注入 servicecomb 的 restTemplate 实现
spring.cloud.servicecomb.restTemplate.retry.enabled=${CSE_REST_TEMPLATE_ENABLE:false}
# 关闭 trace 日志, 开启会打印很多日志, 根据自己需求来决定是否要开启
spring.cloud.servicecomb.context.enable-trace-info=${CSE_CONTENT_TRACE_ENABLE:false}
# 配置中心
spring.cloud.servicecomb.config.enabled=${CSE_CONFIG_ENABLED:true}
spring.cloud.servicecomb.config.serverAddr=${CSE_CONFIG_SERVICE_ADDRESS:http://127.0.0.1:30110}
spring.cloud.servicecomb.config.serverType=${CSE_CONFIG_SERVICE_TYPE:kie}
# 注册中心
spring.cloud.servicecomb.discovery.enabled=${CSE_DISCOVERY_ENABLED:true}
spring.cloud.servicecomb.discovery.address=${CSE_DISCOVERY_SERVICE_ADDRESS:http://127.0.0.1:30100}
spring.cloud.servicecomb.discovery.publish-address=${CSE_DISCOVERY_PUBLISH_ADDRESS:}
spring.cloud.servicecomb.discovery.health-check-interval=${CSE_DISCOVERY_HEALTH_CHECK_INTERVAL:15}
spring.cloud.servicecomb.discovery.poll-interval=${CSE_DISCOVERY_POLL_INTERVAL:15000}
spring.cloud.servicecomb.discovery.wait-time-for-shut-down-in-millis=${CSE_DISCOVERY_WAIT_TIME_FOR_SHUT_DOWN_IN_MILLIS:15000}
# 认证
spring.cloud.servicecomb.credentials.enabled=${CSE_CREDENTIALS_ENABLED:false}
spring.cloud.servicecomb.credentials.account.name=${CSE_CREDENTIALS_USER:oa}
spring.cloud.servicecomb.credentials.account.password=${CSE_CREDENTIALS_PASS:xxx}
spring.cloud.servicecomb.credentials.account.cipher=${CSE_CREDENTIALS_CIPHER:default}
# 禁用原本使用的Nacos配置中心
spring.cloud.nacos.config.enabled=${NACOS_CONFIG_ENABLE:false}
# 禁用原本使用的Nacos注册中心
spring.cloud.nacos.discovery.enabled=${NACOS_DISCOVERY_ENABLE:false}
启动
我们的微服务应用将读取 ServiceComb 配置中心的配置, 并注册到ServiceComb的注册中心。并且微服务直接可以互相调用。如下图
参考链接
- https://www.huaweicloud.com/product/cse.html
- https://support.huaweicloud.com/devg-cse/cse_04_0046.html
- https://support.huaweicloud.com/devg-cse/cse_04_0009.html
- https://support.huaweicloud.com/intl/zh-cn/bestpractice-cse/cse_05_0009.html
- https://github.com/huaweicloud/spring-cloud-huawei-samples/blob/master/basic/provider/src/main/resources/bootstrap.yml