阅读 193

Stream +nacos

Stream +nacos

一、消息队列

1、消息队列的作用

1)削峰填谷

2)应用解耦

3)异步处理

4)消息通讯

2、发送方式

1)点对点

2)发布-订阅模式

3、Kafka

中间是kafka的集群,包含多个broker,每一个broker相当于一个kafka的实例。Kafka消息不丢失的机制就是备份,kafka分区,会把一个主题划分多个文件。在访问定位时会比较快。每个broker会有leaderfollower

消费者组的概念,所有的consumer在一个组里面,消费者是一个集群,一个组里面的consumer去消费一个topic的消息,这样保证消息能消费一次。

4、rabitMQ

它和kafka有一定的区别,它是通过channel进行连接,和broker打交道。Broker里面有虚拟主机,通过EXchange绑定queue

 

二、消息message

1、问题引出

在使用kafkaMQ时,耦合某个中间件的代码。如何解决耦合的问题,抽象。

2、Spring Message

统一了消息的编程模型,消息messaging 对应的模型包括一个消息体payload和消息头Header

消息通道MessageChannel用于接收消息,调用send方法,可以将消息发送至消息通道中。

消息通道里面的消息如何被消费呢?

它由消息通道的子接口进行订阅。

 

延伸了一些其它功能:

消息接收参数和返回值处理:消息接收参数处理器HandlerMethodArgumentResolver。配合@Header @Payload等注解使用;

消息接收后的返回值处理器HandlerMethodReturnValueHandler,配合

@sendTo注解使用。

消息体内容转换器:MessageConvert

统一抽象的消息发送模板AbstractMessageSendingTemplate

消息通道拦截器:ChannelInterceptor

三、Spring Integration

Spring Integration 提供了Spring编程模型的扩展用来支持企业集成模式,是对Spring Message的扩展。

功能

方法

消息的路由

MessageRoute

消息的分发

MessageDispatcher

消息的过滤

Filter

消息的转换

Transformer

消息的聚合

Aggregator

消息的分割

Splitter

四、Stream

1、定义及功能

StreamSpring Integration的基础上进行了封装,提出来BinderBinding,@EnableBinding,@StreamListener等概念。

Stream Spring Boot Actuator整合,提供了bindingschannels endpoint

Stream 与 Spring Boot Externalized Configuration 整合,提供了BindingPropertiesBinderProperties等外部化配置类。

Stream增强了消息发送失败和失败情况下的处理逻辑功能。

Stream它就是一步步演进过来的,是消息的流式框架,用于构建和共享消息,用于系统间的传递,满足我们高度可伸缩的事件驱动的微服务。

也有消息的订阅和发布,也存在消费组

组成

说明

Middleware

中间件,支持RabbitMQkafka

Binder

是应用与消息中间件的封装,实现了RabbitMQkafka,通过Binder可以方便的连接中间件,可以动态改变消息类型(对应于kafkatopicRabbitMQExchange,通过配置文件可以实现。

@input

注解标识输入通道,通过该输入通道接收到的消息进入应用程序。

@output

注解标识输出通道,发布的消息将通过该通道离开应用程序。

@StreamListener

监听队列,用于消费者的队列的接收

@EnableBinding

指信道channelexchange绑定在一起

 

2Stream 的整体处理架构

帮我们屏蔽和某个具体的中间件的逻辑;如果换消息中间件,只需要修改配置文件就可以做到。

3、Stream 的例子

Kafka  jdk1.8Scalazookeeper,安装完成就可以创建topic;

1)引入配置文件,通过配置文件可以切换用MQ或者kafka

2)配置文件,配置kafka的相关信息。

3MessageSender

 

4BusinessOutputChannel

 

5)在主方法使用注解@EnableBinding(BusinessOutputChannel.class),绑定消息通道的类

五、Nacos

1、产生场景

配置中心的产生,每次改配置都需要打包再上线,过程比较繁琐,有一个可以动态的管理端去配置,服务重启或者不重启就可以生效。Nacos保存了配置文件的一些信息。

2、命名空间的作用

用来做权限管理。新建一个角色,这个角色只能访问指定资源(命名空间)。

3、NacosspringCloud如何集成?

4、Nacos使用场景

1)数据库连接信息的配置

2)限流规则

3)服务注册

@RefreshScope注解 不能加到主类上,通过这个注解实现动态刷新

 

5、Nacos是怎么实现动态刷新的

第一种方式是服务端给客户端推

第二种方式是拉。

NacosConfig的构造函数

agent.start方法,把任务放到定时线程池里,定时刷新

 

 

 来源:https://www.cnblogs.com/majingyun/p/14782248.html

服务器评测 http://www.cncsto.com/ 

服务器测评 http://www.cncsto.com/ 


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐