stream and bus

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS是一种与厂商无关的 API,用来访问收发系统消息,它类似于JDBC(Java Database Connectivity)。

spring-integration

spring-integration是一个功能强大的EIP(Enterprise Integration Patterns),即企业集成模式。对,spring-integration是一个集大成者。就我自己的理解,集成了众多功能的它,是一种便捷的事件驱动消息框架用来在系统之间做消息传递的。

1.Message
Message是它的基础构件和核心,所有的流程都围绕着Message运转,如图所示

 

 

 

Message,就是所说的消息体,用来承载传输的信息用的。Message分为两部分,header和payload。header是头部信息,用来存储传输的一些特性属性参数。payload是用来装载数据的,他可以携带的任何Object对象,放什么都行,随你 。

2.MessageChannel
消息管道,生产者生产一个消息到channel,消费者从channel消费一个消息,所以channel可以对消息组件解耦,并且提供一个方便的拦截功能和监控功能。

 

 

 

 

integretion  ---输入输出流

 

 

 

 

 

 

 

 

 

Spring Cloud Config

Spring Cloud Config包含config-server、Git和Spring Cloud Bus三大组件:

1、config-server提供给客户端获取配置;

2、Git用于存储和修改配置;

3、Spring Cloud Bus通知客户端配置变更;

本地测试模式下,Spring Cloud Bus和config-server需要部署一个节点,Git使用GitHub就可以。在生产环境中,Spring Cloud Config,config-server需要部署至少两个节点。Spring Cloud Bus如果使用RabbitMQ,普通集群模式至少需要两个节点。

Git服务如果使用GitHub就不用考虑高可用问题,如果考虑到安全性要自建Git私有仓库,整体的成本比较高。Web服务可以部署多节点支持高可用,由于Git有数据的一致性问题,可以通过以下的方式来支持高可用:

1、Git+Keepalived冷备模式,当主Git挂了可以马上切到备Git;

2、Git多节点部署,存储使用网络文件系统或者通过DRBD实现多个Git节点的数据同步;

 

当配置变更的时候,配置中心需要将配置实时推送到应用客户端。

Nacos和Apollo配置推送都是基于HTTP长轮询,客户端和配置中心建立HTTP长联接,当配置变更的的时候,配置中心把配置推送到客户端。

 Spring Cloud Config原生不支持配置的实时推送,需要依赖Git的WebHook、Spring Cloud Bus和客户端/bus/refresh端点:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 刷新浏览器里面访问接口后的数据

 

 

 

 

 

 

 

 

 

 

 

 Spring Cloud Stream和bus

Spring Cloud Stream通过对消息中间件进行抽象封装,提供一个统一的接口供我们发送和监听消息,而Bus则是在Stream基础之上再次进行抽象封装,使得我们可以在不用理解消息发送、监听等概念的基础上使用消息来完成业务逻辑的处理。Spring Cloud Stream中,异步调用能让各个服务充分解耦而且也更加灵活。而Spring Cloud Bus就是借助消息驱动来实现将消息(事件)广播到各个服务中,然后服务对这些消息进行消费。
bus 动态刷新  stream封装中间件

 

 

 

微服务项目中,使用到Spring Cloud Config来托管各模块的配置文件后,会有一个尴尬的问题 : Config服务端并不能动态的感知Git上配置文件的变化,当git上配置文件更新后,如果不采取其它措施,就只能重启相关应用,从而达到配置的更新,那么如何不重启项目, 就能实现配置的更新呢? 我们可以使用 Spring Cloud Bus来完成 。那么对项目改造如下
 

 
posted @ 2021-10-03 00:46  悬崖听风098  阅读(94)  评论(0编辑  收藏  举报