Spring Cloud Bus
- 在微服务架构中,通常会使用轻量级得消息代理来构建一个公用得消息主题让系统中所有微服务实例都连接上来,由于该主题中产生得消息会被所有实例监听和消息,所以我们称它为消息总线。在总线上得各个实例都可以方便地广播一些需要让其他连接在该主题上得实例都知道得消息。
- 这里用到Kfaka做消息代理
kafka安装
- 安装Kafka需要用到Zookeeper 移步hbase,zookeeper分布式集群安装
下载对应得包解压
进入解压后得目录,修改server.properties文件
Vim /usr/local/kafka/server.properties
修改内容:
broker.id=0
port=9092
host.name=192.168.137.100
log.dirs=/usr/local/kafka/kafka-logs
advertised.host.name=192.168.137.100
num.partitions=2
zookeeper.connect=192.168.137.100:2181,192.168.137.101:2181,192.168.137.102:2181
建立日志文件夹 mkdir /usr/local/kafka/kafka-logs
启动kafka:
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties &
Kafka-Manager安装
下载 kafka-manager-1.0-SNAPSHOT.zip
解压 unzip kafka-manager-1.0-SNAPSHOT.zip -d /usr/local
改名 mv
编辑文件 vim /usr/local/kafka-manager-1.0/conf/application.conf
修改内容
kafka-manager.zkhosts="192.168.137.100:2181,192.168.137.101:2181,192.168.137.102:2181"
启动
Bus工程创建
- 创建spring-cloud-07-bus-server 这个工程跟之前得Config工程一样 只需要在Application.properties中加入
spring.cloud.stream.kafka.binder.zk-nodes=192.168.137.100:2181,192.168.137.101:2181,192.168.137.102:2181
spring.cloud.stream.kafka.binder.brokers=192.168.137.100:9092
management.security.enabled=false
- 创建spring-cloud-07-bus-client 这个工程跟之前Config Client工程一样 只需要在Application.properties中加入
spring.cloud.stream.kafka.binder.zk-nodes=192.168.137.100:2181,192.168.137.101:2181,192.168.137.102:2181
spring.cloud.stream.kafka.binder.brokers=192.168.137.100:9092
- 当启动项目时,会在Kafka中创建一个Topic叫springCloudBus
- 当Git中内容出现改变时,只需要刷新http://localhost:4001/bus/refresh就可以 而不用去刷新Client项目中得Server了,这样得好处是当Server端多了时,只需要刷新Config端得Bus总线就可以了
执行流程