配置中心
服务简码
HCNF
默认端口
8010
默认路由
/hcnf/**
组件编码
hzero-config
简介
1.1 概述
微服务配置管理服务
2.2 组件坐标
<dependency>
<groupId>org.hzero</groupId>
<artifactId>hzero-config</artifactId>
<version>${hzero.service.version}</version>
</dependency>
3.3 主要功能
- 服务管理
- 服务配置管理
服务配置
1.1 服务配置
配置服务依赖了数据库来存储配置,且为了便于服务管理,必要的配置是:
- 数据库配置
- 服务发现客户端配置
application.yml
spring:
application:
name: hzero-config
datasource:
url: ${SPRING_DATASOURCE_URL:YOUR_URL}
username: ${SPRING_DATASOURCE_USERNAME:YOUR_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD:YOUR_PASSWORD}
# hikari连接池配置,便于控制
hikari:
# 连接池最小空闲连接数
minimum-idle: ${SPRING_DATASOURCE_MINIMUM_IDLE:20}
# 连接池允许的最大连接数
maximum-pool-size: ${SPRING_DATASOURCE_MAXIMUM_POOL_SIZE:200}
# 等待连接池分配连接的最大时长(毫秒)
connection-timeout: ${SPRING_DATASOURCE_CONNECTION_TIMEOUT:30000}
bootstrap.yml
# 指定服务端口,Spring Cloud体系中配置服务的端口通常为8010
server:
port: 8010
management:
server:
port: 8011
endpoints:
web:
exposure:
include: '*'
# 当使用eureka作为注册中心时的服务发现配置
eureka:
instance:
# 以IP注册到注册中心
preferIpAddress: ${EUREKA_INSTANCE_PREFER_IP_ADDRESS:true}
leaseRenewalIntervalInSeconds: 10
leaseExpirationDurationInSeconds: 30
# 服务的一些元数据信息
metadata-map:
VERSION: 1.0.0
client:
serviceUrl:
# 注册中心地址
defaultZone: ${EUREKA_DEFAULT_ZONE:http://dev.hzero.org:8000/eureka}
registryFetchIntervalSeconds: 10
disable-delta: true
2.2 启动类配置
@EnableHZeroConfig是必须加上的注解,用于驱动配置服务的自动配置类,从而启用配置服务功能。
@EnableDiscoveryClient使服务作为服务发现客户端注册到注册中心,推荐使用@EnableDiscoveryClient而不是@EnableEurekaClient,@EnableDiscoveryClient更加灵活。
另外,由于实现与Spring Cloud的默认配置中心实现冲突,需要排除掉 ConfigServerAutoConfiguration 配置类。
@EnableHZeroConfig
@EnableDiscoveryClient
@SpringBootApplication(exclude = ConfigServerAutoConfiguration.class)
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
功能介绍
配置服务作为配置中心,为微服务体系中的其他服务提供配置存储、配置推送的服务。
Spring Cloud 提供了默认配置中心的实现,包含svn、git等几种实现,hzero-config则是基于数据库的实现,可以管理大数据量的配置,并且有更快捷的配置推送方式。
配置中心仅提供配置存储、配置推送服务,在微服务体系中可以中心化的管理各个服务的配置文件,方便管控。
为了避免配置中心不可用,推荐在每个服务中保存一份配置文件,当拉取配置失败时使用本地配置,并且部署多个配置中心节点。