springcloud config不重启修改配置_SpringCloud实战-Bus消息总线(动态修改配置)
好了现在我们接着上一篇的随笔,继续来讲。上一篇我们讲到,我们如果要去更新所有微服务的配置,在不重启的情况下去更新配置,只能依靠spring cloud config了,但是,是我们要一个服务一个服务的发送post请求,
我们能受的了吗?这比之前的没配置中心好多了,那么我们如何继续避免挨个挨个的向服务发送Post请求来告知服务,你的配置信息改变了,需要及时修改内存中的配置信息。
这时候我们就不要忘记消息队列的发布订阅模型。让所有为服务来订阅这个事件,当这个事件发生改变了,就可以通知所有微服务去更新它们的内存中的配置信息。这时Bus消息总线就能解决,你只需要在springcloud Config Server端发出refresh,就可以触发所有微服务更新了。
如下架构图所示:
Spring Cloud Bus除了支持RabbitMQ的自动化配置之外,还支持现在被广泛应用的Kafka。在本文中,我们将搭建一个Kafka的本地环境,并通过它来尝试使用Spring Cloud Bus对Kafka的支持,实现消息总线的功能。
Kafka使用Scala实现,被用作LinkedIn的活动流和运营数据处理的管道,现在也被诸多互联网企业广泛地用作为数据流管道和消息系统。
Kafak架构图如下:
Kafka是基于消息发布/订阅模式实现的消息系统,其主要设计目标如下:
1.消息持久化:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。
2.高吞吐:在廉价的商用机器上也能支持单机每秒100K条以上的吞吐量
3.分布式:支持消息分区以及分布式消费,并保证分区内的消息顺序
4.跨平台:支持不同技术平台的客户端(如:Java、PHP、Python等)
5.实时性:支持实时数据处理和离线数据处理
6.伸缩性:支持水平扩展
Kafka中涉及的一些基本概念:
1.Broker:Kafka集群包含一个或多个服务器,这些服务器被称为Broker。
2.Topic:逻辑上同Rabbit的Queue队列相似,每条发布到Kafka集群的消息都必须有一个Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个Broker上,但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
3.Partition:Partition是物理概念上的分区,为了提供系统吞吐率,在物理上每个Topic会分成一个或多个Partition,每个Partition对应一个文件夹(存储对应分区的消息内容和索引文件)。
4.Producer:消息生产者,负责生产消息并发送到Kafka Broker。
5.Consumer:消息消费者,向Kafka Broker读取消息并处理的客户端。
6.Consumer Group:每个Consumer属于一个特定的组(可为每个Consumer指定属于一个组,若不指定则属于默认组),组可以用来实现一条消息被组内多个成员消费等功能。
可以从kafka的架构图看到Kafka是需要Zookeeper支持的,你需要在你的Kafka配置里面指定Zookeeper在哪里,它是通过Zookeeper做一些可靠性的保证,做broker的主从,我们还要知道Kafka的消息是以topic形式作为组织的,Producers发送topic形式的消息,
Consumer是按照组来分的,所以,一组Consumers都会都要同样的topic形式的消息。在服务端,它还做了一些分片,那么一个Topic可能分布在不同的分片上面,方便我们拓展部署多个机器,Kafka是天生分布式的。
这里为了演示,我们只需要用它的默认配置,在windows上做个小Demo即可。
我们这里主要针对Spring Cloud Bus对Kafka的支持,实现消息总线的功能,具体的Kafka,RabbitMQ消息队列希望自己去找资料来学习一下。
springcloud config不重启修改配置_SpringCloud实战-Bus消息总线(动态修改配置)相关推荐
- SpringCloud微服务架构,Config 分布式配置中心,Bus 消息总线, Stream 消息驱动,Sleuth+Zipkin 链路追踪
Config分布式配置中心 Config 概述 概述 • Spring Cloud Config 解决了在分布式场景下多环境配置文件的管理和维护. • 好处: • 集中管理配置文件 • 不同环境不同配 ...
- SpringCloud Config配置中心、SpringCloud Bus消息总线
一.SpringCloud Config 1.前言 微服务意味着要将单体应用中的业务拆分成一个个子服务, 每个服务的粒度相对较小,因此系统中会出现大量的服务.由于每个服务都需要必要的配置信息才能运行, ...
- SpringCloud(十一)Bus消息总线、Stream消息驱动
一.Bus消息总线 需求:分布式自动刷新配置功能: 解决:SpringCloud Bus配合Spring cloud Config使用可以实现配置的动态刷新. 1.概述 定义:Spring Cloud ...
- Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
上一篇文章,留了一个悬念,Config Client 实现配置的实时更新,我们可以使用 /refresh 接口触发,如果所有客户端的配置的更改,都需要手动触发客户端 /refresh ,当服务越来越多 ...
- SpringCloud学习笔记(十) Bus 消息总线
目录 一.SpringCloud Bus 介绍 1.消息总线的由来 2.是什么 3.能干嘛 4.总线 1)什么是总线 2)基本原理 二.RabbitMQ环境配置 三.动态刷新全局广播 1.搭建客户端微 ...
- 【SpringCloud框架之Bus消息总线】
本笔记内容为尚硅谷SpringCloud框架开发Bus消息总线部分 目录 一.概述 1.Bus消息总线是什么 2.作用 3.为何被称为总线 二.RabbitMQ环境配置 三.SpringCloud B ...
- 微信会员卡html修改样式模板,微信小程序 JS动态修改样式的实现代码
微信小程序这个坑啊,js动态修改样式,我们并不能用js或者jq 轻轻松松一行代码搞定.或者用removeClass addClass 来修改样式. 以下是一种动态修改样式的方法,原理是绑定数据,然后动 ...
- 微服务架构开发实战:分布式消息总线,实现配置信息的自动更新
实现配置信息的自动更新 在上一篇文章中节演示了集成Spring Cloud Bus 的过程.在示例中,当微服务实例启动的时候,可以去加载最新的配置信息.当时这种做法有一定的局限性,即只有在应用启动的过 ...
- uniapp 微信小程序配置全局主题色、实现动态修改主题色
前言: 本文的实现目标是全局配置小程序的整体主题色,包括本地图标的色调.第一步实现在本地可以统一修改整体的主题色以及本地图标的颜色:第二步实现通过后台接口动态调整小程序前端的整体主题色以及本地图标颜色 ...
- SpringCloud04 服务配置中心、消息总线、远程配置动态刷新
1 环境说明 JDK:1.8 MAVENT:3.5 SpringBoot:2.0.5.RELEASE SpringCloud:Finchley.SR1 2 创建服务注册中心(Eureka服务端) 说明 ...
最新文章
- 公开课 | 人脸识别的最新进展以及工业级大规模人脸识别实践探讨
- steam怎么看邮箱绑定的账号_lol手游appleid怎么绑定拳头账号 英雄联盟手游账号绑定方法_英雄联盟手游...
- 启动docker容器时报错:iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT -
- 编译hotspot_从Hotspot JIT编译器打印生成的汇编代码
- flare3d_clone
- Android官方开发文档Training系列课程中文版:手势处理之监测通用手势
- 【项目管理】项目管理的三项约束
- 找树根和孩子(信息学奥赛一本通-T1336)
- fcn从头开始_从头开始有营销问题
- ElasticSearch 5.5.3 Docker化部署
- 1.1内置数据类型概述
- 开源软件的许可(License)
- 高数复习: 多元函数微分学及其应用
- java计算机毕业设计南京新东方学校家校通系统源码+程序+lw文档+mysql数据库
- python自动点击按钮_python实现按钮自动点击
- 史蒂夫·乔布斯谈生命中最重要的东西
- Ogg For Bigdata 同步Oracle数据到KAFKA(包括初始化历史数据)
- iOS 7如何解决相册无法访问的问题?
- 2.5 新建一个工程
- 2019年最新版百度网盘不限速下载工具,无需登录实现高速下载!
热门文章
- jQuery als.js 跑马灯
- BZOJ 1036 [ZJOI2008]树的统计Count (树链剖分 - 点权剖分 - 单点权修改)
- Java基础知识强化之集合框架笔记15:List集合的特点
- linux目录与文件,Linux目录与文件基本操作
- Java sychronized关键字总结(二)
- Eclipse调试远程服务器
- JavaScript 大小转化B KB MB GB等的转化
- 如何在fedora安装Telegram
- Android子线程创建Handler方法
- 《指针的编程艺术(第二版)》一第三章 指针与数组3.1 指针与一维数组