# springcloud-config **Repository Path**: zxs16330/springcloud-config ## Basic Information - **Project Name**: springcloud-config - **Description**: springcloud 分布式配置 1.eureka作为注册中心,不像zk需要选举master,eureka是peer形式的,那么即使出现网络变化导致注册中心实例少于一定数量,eureka也可以保证一直的提供服务 2.当网络变化的时候,eureka会有一个Self Preservation Mode的机制,如果15%的注册实例在短时间内出现down的情况(通过heartbeat确认),那么eure - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: https://gitee.com/zxs16330/springcloud-config - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-06-08 - **Last Updated**: 2022-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringCloud ## README # springcloud-config springcloud-config 分布式配置管理中心 1.eureka作为注册中心,不像zk需要选举master,eureka是peer形式的,那么即使出现网络变化导致注册中心实例少于一定数量,eureka也可以保证一直的提供服务 2.当网络变化的时候,eureka会有一个Self Preservation Mode的机制,如果15%的注册实例在短时间内出现down的情况(通过heartbeat确认),那么eureka不会移除实例的注册信息,而是等到网络恢复之后仍然以这个实例信息去提供给调用方 具体可以通过:https://github.com/Netflix/eureka/wiki/Server-Self-Preservation-Mode这里了解 缺点: 1.需要自己定制化一个流程审批界面,没有一个完整的权限控制流程 2.缺少一个界面去维护管理配置 3.不像zk是使用观察者模式,每个client可以去监听配置的变化,每次更新都需要主动去发送一次post请求更新或者必须通过git webhook加上消息队列做热更新,需要另外做一个封装的api使得更新配置对上层无感知 4.全程都是用http去实现,不如zk通过tcp长连接来的更有效率 5.基于git仓库保存配置,从文件系统在io上性能没有从mysql读快,并且可以在文件系统前加入redis之类的缓存机制提供更强的性能 @RefreshScope是因为config client只会在第一次初始化bean的时候获取一次配置,后面如果需要更新的话,需要设置这个注解在controller上面,并且引入spring actuator的包,通过发送post请求来更新bean里面的值 @Value注解表示要获取的是key为message的值,默认值是Hello default 配置application.properties: management.endpoints.web.exposure.include=* spring.application.name=config-client spring.cloud.config.discovery.enabled=true spring.cloud.config.discovery.serviceId=config-server eureka.client.service-url.defaultZone=http://localhost:8761/eureka,http://localhost:8762/eureka 1 2 3 4 5 6 spring.cloud.config.discovery.enabled=true能够让config client自动去发现config server spring.cloud.config.discovery.serviceId=config-server是根据configServer在配置文件里面的applicationName设置,configClient根据serviceId去探测configServer PS:每个configClient会在第一次初始化之后从eureka service获取到注册在上面的服务器信息,后面即使eureka service down掉,仍然能够根据本地缓存去访问到config server