加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何使用分布式配置中心

发布时间:2020-12-14 06:36:02 所属栏目:Java 来源:网络整理
导读:这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【如何使用分布式配置中心】 大家好,我是IT修真院深圳分院第十

这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【如何使用分布式配置中心】

大家好,我是IT修真院深圳分院第十一期学员,一枚正直纯洁善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务十的一个知识点:如何使用分布式配置中心?

1? ? 背景介绍

1.1? ? SpringCloud简介

springCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。

SpringBoot旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能

2? ? 知识剖析

2.1? ? 什么是分布式配置中心?

在微服务架构的系统中,使用一个统一的微服务进行配置文件的加载,由这个微服务向其他服务提供配置文件,这个微服务就是配置中心。

2.2? ? 什么是SpringCloudBus?

Spring cloud bus即SpringCloud框架的消息总线。其本质是利用了MQ的广播机制在分布式的系统中传播消息,目前常用的有Kafka和RabbitMQ。利用bus的机制可以做很多的事情,其中配置中心客户端刷新就是典型的应用场景之一。

2.3? ? 使用SpringCloudBus实现自动更新配置的步骤有哪些?

1)? ? 设置配置中心,config-server,从git获取配置信息;

2)? ? 在service中调用config-server中的相关配置;

3)? ? 在service中导入SpringCloudBus相关依赖,配置RabbitMq;

4)? ? 在需要刷新配置的Controller上添加@RefreshScope注解

5)? ? 在GitHub上配置WebHook,设置更新properties文件后向config-server发送post请求。

3? ? 常见问题

如何使用SpringCloudBus实现自动更新配置

4? ? 解决方案

1、见编码实战

5? ? 编码实战

config-server的yml配置

server:

? port: 8091

eureka:

? instance:

? ? prefer-ip-address: true

? client:

? ? registerWithEureka: true

? ? fetchRegistry: true

? ? serviceUrl:

? ? ? defaultZone: http://localhost:8090/eureka/

spring:

? ? application:

? ? ? ? name: config-server

? ? cloud:

? ? ? ? config:

? ? ? ? ? server:

? ? ? ? ? ? git:

? ? ? ? ? ? ? uri: https://github.com/

? ? ? ? ? ? ? search-paths: respo

? ? ? ? ? label: master

? ? ? ? bus:

? ? ? ? ? enabled: true

? ? ? ? ? trace:

? ? ? ? ? ? enabled: true

? ? rabbitmq:

? ? ? host: localhost

? ? ? port: 5672

? ? ? username: guest

? ? ? password: guest

management:

? endpoints:

? ? web:

? ? ? exposure:

? ? ? ? include: bus-refresh

service的yml配置

server:

? port: 8081

spring:

? ? application:

? ? ? ? name: service-hi

? ? cloud:

? ? ? bus:

? ? ? ? enabled: true

? ? ? ? trace:

? ? ? ? ? enabled: true

? ? ? config:

? ? ? ? lable: master

? ? ? ? profile: dev

? ? ? ? uri: http://193.112.45.68:8091/

? ? rabbitmq:

? ? ? host: 193.112.45.68

? ? ? port: 5672

? ? ? username: guest

? ? ? password: guest

eureka:

? client:

? ? registerWithEureka: true

? ? fetchRegistry: true

? ? serviceUrl:

? ? ? defaultZone: http://193.112.45.68:8090/eureka/

? instance:

? ? hostname: localhost

import org.springframework.beans.factory.annotation.Value;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class Hello {

? ? @Value("${type}")

? ? private String type;

? ? @RequestMapping(value = "/hello")

? ? public String te() {

? ? ? ? return type ;

? ? }

}

import org.springframework.beans.factory.annotation.Value;

import org.springframework.cloud.context.config.annotation.RefreshScope;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

@RefreshScope

public class Hi {

? ? @Value("${type}")

? ? private String type;

? ? @RequestMapping(value = "/hi")

? ? public String te() {

? ? ? ? return type ;

? ? }

}

6? ? 扩展思考

7? ? 参考文献

CSDN、百度百科

8? ? 更多讨论

8.1? ? @RefreshScope的作用是什么?

?该注解用来标注需要刷新的类,只有加上了这个注解,才会对这个类所引用的配置进行刷新。

8.2? ? 服务注册中心、服务配置中心和具体的服务模块是不是必须要放在同一个服务器上?

不需要,只需要在yml文件中指定地、开放相关的端口即可。

8.3? ? GitHub的webHook功能如何配置?

1)? ? 找到连接的库,打开Setting页面;

2)? ? 选择webHook,新增webhook;

3)? ? 填写发送POST请求的地址及何时发送POST请求

技能树.IT修真院? ?

? “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

? ?这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。

快来与我一起学习吧~http://www.jnshu.com/login/1/24864700

腾讯视频:https://v.qq.com/x/page/c0719197opo.html

PPT链接?视频链接

更多内容,可以加入IT交流群565734203与大家一起讨论交流

这里是技能树·IT修真院:,初学者转行到互联网的聚集地

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读