-
Notifications
You must be signed in to change notification settings - Fork 222
bootstrap servicecomb
chengyouling edited this page Sep 13, 2024
·
2 revisions
注意:以下配置模板适配版本大于等于1.10.3-2021.0.x,更低版本下载源码查看DiscoveryBootstrapProperties内容适配下发配置
spring:
application:
# 微服务名称。 微服务名称定义好以后,后续不能变更。
name: basic-provider
cloud:
servicecomb:
# 微服务的基本信息
service:
# 微服务名称,和spring.application.name保持一致。
name: ${spring.application.name}
# 微服务版本号,本示例使用ServiceStage环境变量。建议保留这种配置方式,
# 部署的时候,不用手工修改版本号,防止契约注册失败。
version: ${CAS_INSTANCE_VERSION:0.0.1}
# 应用名称。默认情况下只有应用名称相同的微服务之间才可以相互发现。
application: ${CAS_APPLICATION_NAME:basic-application}
# 环境名称。只有环境名称相同的微服务之间才可以相互发现。
# 可以取值 development, testing, acceptance, production
environment: production
# 注册发现相关配置
discovery:
# 注册中心地址,本示例使用ServiceStage环境变量。建议保留这种配置方式,
# 部署的时候,不用手工修改地址。
address: ${PAAS_CSE_SC_ENDPOINT:http://127.0.0.1:30100}
# 微服务向CSE发送心跳间隔时间,单位秒
healthCheckInterval: 10
# 拉取实例的轮询时间,单位毫秒
pollInterval: 15000
# 优雅停机设置。优雅停机后,先从注册中心注销自己。这个时间表示注销自己后等待的时间,这个时间后才退出。
waitTimeForShutDownInMillis: 15000
config:
# 配置中心地址,本示例使用ServiceStage环境变量。建议保留这种配置方式,
# 部署的时候,不用手工修改地址。
serverAddr: ${PAAS_CSE_CC_ENDPOINT:http://127.0.0.1:30110}
serverType: kie
# 自定义配置
kie:
customLabel: ${spring.application.name}
customLabelValue: ${INSTANCE_TAG:default}
# 自定义配置,使用文本的key/value配置项作为yaml格式配置
fileSource: governance.yaml,application.yaml
dashboard:
# 仪表盘配置,本地开发默认不开启
enabled: false
address: ${PAAS_CSE_DS_ENDPOINT:http://127.0.0.1:30109}
spring:
application:
# 微服务名称
name: basic-provider
cloud:
servicecomb:
# 微服务的基本信息
service:
# 微服务名称,和spring.application.name保持一致。
name: ${spring.application.name}
# 微服务版本号,本示例使用ServiceStage环境变量。建议保留这种配置方式,
# 部署的时候,不用手工修改版本号,防止契约注册失败。
version: ${CAS_INSTANCE_VERSION:0.0.1}
# 应用名称。默认情况下只有应用名称相同的微服务之间才可以相互发现。
application: basic-application
# 环境名称。只有环境名称相同的微服务之间才可以相互发现。
environment:
description: example service definition
properties:
x-example-1: example-1
x-example-2: example-2
# 微服务实例的基本信息
instance:
# 微服务注册的时候的初始状态
initialStatus: UP
properties:
x-example-1: example-1
x-example-2: example-2
# 注册发现相关配置
discovery:
# 是否启用注册发现
enabled: true
# 是否启用实例更新消息推送
watch: false
# 注册中心地址,本示例使用ServiceStage环境变量。建议保留这种配置方式,
# 部署的时候,不用手工修改地址。
address: ${PAAS_CSE_SC_ENDPOINT:http://127.0.0.1:30100}
# 微服务向CSE发送心跳间隔时间,单位秒
healthCheckInterval: 30
# 发送心跳的连接超时时间
healthCheckRequestTimeout: 5000
# 拉取实例的轮询时间,单位毫秒
pollInterval: 15000
# 优雅停机设置。优雅停机后,先从注册中心注销自己。这个时间表示注销自己后等待的时间,这个时间后才退出。
waitTimeForShutDownInMillis: 15000
# 配置该服务是否允许被跨应用调用
allowCrossApp: false
# 注册中心的发布地址。默认可以不配置,自动从可用IP中取一个。
publishAddress:
# 主要用于网关,并且spring.cloud.gateway.discovery.locator.enabled=true的场景
# 开启后定期查询微服务列表
enableServicePolling: false
# 是否根据数据中心信息进行路由,优先转发到接近的数据中心。需要每个实例配置数据中心信息。
enabledZoneAware: false
# 数据中心信息
datacenter:
name: x
region: y
availableZone: z
config:
# 是否启用动态配置
enabled: true
# 启动的时候,如果无法拉取配置,是否启动失败
firstPullRequired: true
# 配置中心地址,本示例使用ServiceStage环境变量。建议保留这种配置方式,
# 部署的时候,不用手工修改地址。
serverAddr: ${PAAS_CSE_CC_ENDPOINT:http://127.0.0.1:30110}
# 配置中心类型,支持 kie 和 config-center
serverType: kie
kie:
# 是否开启长轮询
enableLongPolling: true
# 长轮询的等待时间,这个参数会传递给配置中心,如果没有配置变化,配置中心会等待这个时间才返回。
pollingWaitTimeInSeconds: 10
# 非长轮询情况下,配置刷新周期,单位毫秒.
refreshIntervalInMillis: 15000
customLabel: public # 默认值是public
customLabelValue: default # 默认值是空字符串
configCenter:
# 配置刷新周期,单位毫秒
refreshInterval: 15000
# 在配置中心为config-center时,不支持yaml格式。可以将一些配置项的值作为yaml格式的文本,并将
# 文本内容解析为yaml,通过这种方式间接的实现支持yaml格式配置。
fileSource: x.yaml,y.yaml
CSE专享版提供了RBAC认证功能,可以对微服务之间的访问、配置查询进行细粒度的授权。
微服务引擎开启了安全认证之后,所有调用的API都需要先获取token才能调用,认证流程请参考服务中心RBAC说明。
使用安全认证首先需要从微服务引擎获取用户名和密码,然后在配置文件中增加如下配置。和配置AK/SK一样,password默认明文存储, 开发者可以自定义password的加密存储算法。
- 明文方法
spring:
cloud:
servicecomb:
credentials:
account:
name:用户名
password:密码
cipher: default
- 自定义实现加密存储算法
1、定义CustomCipher类,实现com.huaweicloud.common.util.Cipher接口;
2、实现com.huaweicloud.common.util.Cipher接口中的两个方法: String name():这个是spring.cloud.servicecomb.credentials.cipher的名称定义,需要配置在配置文件中。 char[] decode(char[] encrypted):解密接口,对secretKey进行解密后使用。
3、加密解密的实现需要作为BootstrapConfiguration,首先声明CustomCipher为配置类:
@Configuration
public class MyCipherConfiguration {
@Bean
public Cipher customCipher() {
return new CustomCipher();
}
}
然后增加文件 META-INF/spring.factories定义配置(如下),服务启动时完成自动加载,bootstrap.yaml文件中才能使用新增加的解密算法。
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.huaweicloud.common.transport.MyCipherConfiguration
-
使用Spring Cloud Huawei功能
-
使用服务治理
-
生态集成
-
迁移改造问题
-
配置参考
-
优秀实践
-
常见问题