Skip to content

Latest commit

 

History

History
83 lines (60 loc) · 3.32 KB

devops-boot-starter-service.md

File metadata and controls

83 lines (60 loc) · 3.32 KB

devops-boot-starter-service

starter-service组件帮助开发者完成与微服务相关的快速配置

功能介绍

  • 引入spring-cloud-starter-openfeign
  • 引入okhttp并配置feign底层使用OkHttpClient
  • 支持服务前缀/后缀的配置
  • 配置consul服务注册instanceId
  • 配置consul服务注册健康检查
  • 配置consul配置中心规则
  • 配置自定义RequestMappingHandlerMapping解决SpringMVC注解重复扫描问题

使用方式

  • build.gradle.kts
implementation("com.tencent.devops:devops-boot-starter-service")
  • build.gradle
implementation 'com.tencent.devops:devops-boot-starter-service'

模块依赖

starter-serivce添加了如下依赖,对于这些模块的依赖不需要重复声明:

  • com.tencent.devops:devops-boot-starter-web
  • com.tencent.devops:devops-boot-starter-loadbalancer

说明: 在gradle编译打包时,默认会将consul相关的微服务组件打包,所以不需要声明对consul的依赖,详情见k8s云原生编译

配置属性

属性 类型 默认值 说明
service.prefix string null 服务名称前缀,如prefix-,默认为空
service.suffix string null 服务名称后缀, 如-suffix,默认为空

详细介绍

1. 引入spring-cloud-starter-openfeign

引入openfeign并自动配置相关属性,如超时时间、请求压缩等,详见common-service.properties

2.引入okhttp并配置feign底层使用OkHttpClient

因为okhttp具有更优的性能,以及更优雅的api设计,所以引入okhttp并配置feign底层使用OkHttpClient

3. 支持服务前缀/后缀的配置

当多个应用部署在同一个服务注册中心时,可能会存在服务命名冲突,所以添加了对服务名称前缀/后缀的支持。 默认情况下,前后缀都为空,此时的行为和SpringCloud默认行为一致。

假设一个应用有如下配置,

配置项 配置值
spring.application.name test
service.prefix prefix-
service.suffix null(空)
server.port 8080

则相应的生效规则为,

配置项 配置值
consul服务名称 prefix-test
consul服务实例instanceId prefix-test-8080-
consul配置中心key路径 prefix-config/prefix/data

4. 配置consul服务注册instanceId

为了保证consul注册实例唯一,自动配置instanceId包含主机的ip地址。完整的instanceId规则为<prefix><app-name><suffix>-<port>-<ip-address>。 如xxx-test8080-192-168-1-1

5. 配置consul服务注册健康检查

健康检查地址/actuator/health, 检查间隔时间为10秒,超时时间为5秒

6. 配置consul配置中心规则

为了保证多个应用在同一个consul中使用配置中心不产生冲突,规定了配置路径,规则如下:

  • 微服务对应的配置key<prefix>config<suffix>/<app-name>/data
  • 配置格式为YAML
  • profile分隔符为::