SpringCloudStream
文章平均质量分 90
本专栏专门介绍SpringCloudStream由入门到进阶的应用
帅天下
这个作者很懒,什么都没留下…
展开
-
Stream基础篇-Stream入门应用
Spring Cloud Stream是什么?Spring Cloud Stream是一个用来为微服务应用构建消息驱动能力的框架。它可以基于Spring Boot来创建独立的、可用于生产的Spring应用程序。它通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动的微服务应用。简单的说,Spring Cloud Stream本质上就是整合了Spring Boo原创 2018-02-04 16:17:40 · 10210 阅读 · 5 评论 -
Stream进阶篇-实体对象数据的生产消费与转换
前言在各微服务通信中,主要以json字符串作为内容载体,在实际业务中,通常会自定义实体亦或是构造Map、List等数据作为生产消费对象,SpringBoot通过对MessageConvertor的实现,已经很好的协助我们完成了Json与对象的转换过程,在MVC的REST-API部分已经被充分应用。那么在Stream中呢,是否还需要我们每次硬编码实现呢,答案是否定的。本章节将实现验证Stream原创 2018-02-05 21:11:43 · 6490 阅读 · 0 评论 -
Stream进阶篇-StreamListener实现多个方法调度
前言在《Stream进阶篇-实体对象数据的生产消费与转换》章节,已经展示了如何获取header信息,本小节将更加具体的展示其特性,并结合@StreamListener注解的condition参数实现多个监听者方法的选择调度。场景描述:如上图,sender服务发送消息至user-channel通道,如果头信息中flag值为aa则被StreamListener1接收;如果flag值为bb则被Strea...原创 2018-02-05 21:24:07 · 26597 阅读 · 3 评论 -
Stream进阶篇-消费组实现验证
前言通常在生产环境,我们的每个服务都不会以单节点的方式运行在生产环境,当同一个服务启动多个实例的时候,这些实例都会绑定到同一个消息通道的目标主题(Topic)上。默认情况下,当生产者发出一条消息到绑定通道上,这条消息会产生多个副本被每个消费者实例接收和处理,但是有些业务场景之下,我们希望生产者产生的消息只被其中一个实例消费,这个时候我们需要为这些消费者设置消费组来实现这样的功能,实现的方式原创 2018-02-05 21:39:27 · 4075 阅读 · 5 评论 -
Stream进阶篇-消息分区实现验证&源码简析
前言在《消费组实现验证》章节,已经介绍了如何通过消费组避免单个消息被多个实例重复消费。但还有一些场景需要满足,同一个特征的数据被同一个实例消费,比如同一个id的传感器监测数据必须被同一个实例统计计算分析,否则可能无法获取全部的数据。又比如部分异步任务,首次请求启动task,二次请求取消task,此场景就必须保证两次请求至同一实例。本章将介绍如何通过消息分区实现上述场景应用。本章概要原创 2018-02-06 02:12:39 · 2382 阅读 · 5 评论 -
Stream进阶篇-动态绑定消息通道
前言在之前的章节中,所有消费者和生产者均通过@EnableBinding定义,此方式能够快速的构建生产消费关系,但仔细想想,如果我们需要根据一定的条件决策消息生产者将消息发往哪个通道,貌似当前简单粗暴的方式无法满足。如此常见的场景,springcloud必然会帮我们想到,通过BinderAwareChannelResolver的bean实例即可实现动态通道的选择,其会伴随@EnableBind原创 2018-02-06 23:11:50 · 11062 阅读 · 0 评论 -
Stream进阶篇-KafkaBinder与RabbitBinder共存应用
前言在《Stream基础篇-Stream入门应用》中已经介绍过,Spring Cloud Stream预定义实现了Kafka、RabbitMQ两个消息中间件的绑定器Binnder,在大部分业务场景下,可能都只需要使用一个类型的Binder即可满足业务需求。但我们无法排除在多个业务系统复杂应用的场景下,可能需要同时连接Kafka和RabbitMQ,本章将介绍如何在单个应用内,实现KafkaBin原创 2018-02-07 01:35:55 · 3821 阅读 · 0 评论