引言Apache RocketMQ 诞生至今,历经十余年大规模业务稳定性打磨,服务了 100% 阿里集团内部业务以及阿里云数以万计的企业客户。作为金融级可靠的业务消息方案,RocketMQ 从创建之初就一直专注于业务集成领域的异步通信能力构建。本篇将从业务集成场景的诉求开始,介绍 RocketMQ 作为业务消息集成方案的核心能力和优势,通过功能场景、应用案例以及最佳实践等角度介绍 RocketMQ
转载 2024-06-05 10:25:09
90阅读
Consumerconsumer pull message订阅在Consumer启动之前先将自己放到一个本地的集合中,再以后获取消费者的时候会用到,同时会将自己订阅的信息告诉broker接收消息consumer启动的时候会启动两个service: RebalanceService:主要实现consumer的负载均衡,但是并不会直接发送获取消息的请求,而是构造request之后放到PullMessa
转载 2024-06-28 11:17:27
57阅读
文章目录一、Producer端重试二、 Consumer端重试1、Exception2、Timeout其他理解死信的业务处理方式 消息重试分为两种:Producer发送消息的重试 和 Consumer消息消费的重试。一、Producer端重试Producer端重试是指: Producer往MQ上发消息没有发送成功,比如网络原因导致生产者发送消息到MQ失败。部分源码解析:/** * 说明
RocketMQ提供了事务消息,通过事务消息就能达到分布式事务的最终一致,从而实现了可靠消息服务。一、事务消息的实现步骤 事务消息发送步骤:发送方将半事务消息发送至RocketMQ服务端。RocketMQ服务端将消息持久化之后,向发送方返回Ack确认消息已经发送成功。由于消息为半事务消息,在未收到生产者对该消息的二次确认前,此消息被标记成“暂不能投递”状态。发送方开始执行本地事务逻辑。发送方根据本
转载 2024-04-04 12:35:37
836阅读
1. 事务消息简介即,在分布式系统中保证最终一致性的两阶段提交的消息实现。侧重点:保证本地事务执行 与消息发送两个操作的原子性2. 事务消息发送流程消息生产者向Broker投递一个half(事务)消息(如需保证幂等性,可以携带一个唯一的key作为参数)确认Broker接收到消息消息会在Broker本地进行存储,但是该消息的状态对消费者不可见)生产者确认消息发送成功后,回调executeLocal
转载 2024-06-27 08:47:10
152阅读
消息偏移量 Offsetmessage queue 是无限长的数组,一条消息进来下标就会涨1,下标就是 offset,消息在某个 MessageQueue 里的位置,通过 offset 的值可以定位到这条消息,或者指示 Consumer 从这条消息开始向后处理。 message queue 中的 maxOffset 表示消息的最大 offset,maxOffset 并不是最新的那条消息的 offs
您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。?? 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通? 2. 毕业设计专栏,毕业季咱们不慌忙,几百款毕业设计等你选。❤️ 3. Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当 。python爬虫入门进阶❤️ 4. Ceph实战,从原理到
转载 2024-10-08 14:25:36
126阅读
③. SpringBoot集成WebSocket实现在线群聊1. 什么是WebSocket?服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。2. WebSocket和传统HTTP请求的对比 WebSocket的特点:建立在TCP协议之上,服务端的实现比较容易。握手的时候采用HTTP协议,具有良好的兼容性。数据格式比较轻量,性能开销小
转载 10月前
76阅读
一、事务消息的由来1、案例引用官方的购物案例:小明购买一个100元的东西,账户扣款100元的同时需要保证在下游的积分系统给小明这个账号增加100积分。账号系统和积分系统是两个独立是系统,一个要减少100元,一个要增加100积分。如下图: 2、问题账号服务扣款成功了,通知积分系统也成功了,但是积分增加的时候失败了,数据不一致了。账号服务扣款成功了,但是通知积分系统失败了,所以积分不会增加
目录Spring Cloud Stream绑定器实现快速开始Apache Kafka客户端兼容性发布版本示例项目相关项目Spring Cloud StreamSpring Cloud Stream是一个用于构建与共享消息传递系统相连的高度可扩展的事件驱动微服务的框架。该框架提供了基于已经建立和熟悉的Spring习语和最佳实践的灵活编程模型,包括对持久性Pub/sub(发布/订阅),使用者组和有状态
1、application.yml文件上,加上消息确认的配置项 server: port: 8600 spring: application: name: rabbitmq-provider rabbitmq: host: 192.168.189.131 port: 5673 username: admin password: admin
本文详细介绍简单模式Simple、工作模式Work、发布订阅模式Publish/Subscribe、Topic、Routing。Maven依赖引用<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>
转载 2024-10-08 13:54:47
32阅读
发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring推出了JavaMailSender更加简化了邮件发送的过程,再后来springboot对此进行了封装就有了现在的spring-boot-starter-mail,这一章主要介绍此包。简单使用1、pom包配置 pom包里面添加sp
转载 2024-07-17 15:49:41
25阅读
文章目录一、集群消费二、广播消费内容补充 一、集群消费之前的博客中,启动的都是单个Consumer,如果启动多个呢?RocketMQ-集群消费其实,对于RocketMQ而言,通过ConsumeGroup的机制,实现了天然的消息负载均衡!通俗点来说,RocketMQ中的消息通过ConsumeGroup实现了将消息分发到C1/C2/C3/…的机制,这意味着我们将非常方便的通过加机器来实现水平扩展!我
生产者消息重试生产者在发送消息(不包含顺序发送消息)的时候,同步、异步不进行重试,oneway不进行重试消息重试原则上可以保证消息发送成功以及不丢失,但是消息重新投递可能造成消费者重复消费,RocketMQ不保证幂等性,所以开发者如果有幂等性的要求,需要自行保证幂等mq的重试的默认值:同步需要开启重试配置:retryAnotherBrokerWhenNotStoreOK = true,默认是不开启
转载 2024-06-28 10:54:11
161阅读
文章目录消息发送流程分析consumer启动以及拉取消息消息消费 继前文顺藤摸瓜RocketMQ消息发送debug解析分析完消息发送的流程之后,我们接着分析rocketmq消息消费流程,环境搭建见前面的文章消息发送。消息发送流程分析consumer启动以及拉取消息来到我们的代码org.apache.rocketmq.example.quickstart.Consumer: new了一个con
转载 2024-09-21 22:21:57
308阅读
由于RabbitMQ中只有队列(queue)才能存储信息,所以用RabbitMQ实现超大用户级别(百万计)的消息在/离线收发需要对每一个用户创建一个永久队列。但是RabbitMQ节点内存有限,经测试后发现节点集群也无法满足数百万用户队列收发数据的要求,所以最终决定采用数据库辅助实现该功能。 一、数据库结构user_list数据库下有4张表:user_info、group_info、gro
转载 2024-10-21 14:43:09
133阅读
RocketMQ消息类型有以下三种:普通消息顺序消息事务消息目录一、普通消息二、顺序消息三、事务消息3.1 发送半事务消息3.2 执行本地事务3.3 消息回查下边分别介绍三种类型消息的使用场景,以及使用示例。一、普通消息对于普通消息RocketMQ提供了三种发送方式:可靠同步发送、可靠异步发送和单向发送。可靠同步发送同步发送是指消息发送方发出数据后,会在收到接收方发回响应之后才会发送下一个数据
事务消息实现思想RocketMQ 事务消息,是指发送消息事件和其他事件需要同时成功或同失败。比如银行转账, A 银行的某账户要转一万元到 B 银行的某账户。A 银 行发送“B 银行账户增加一万元” 这个消息,要和“从 A 银行账户扣除一万元”这个操作同时成功或者同时失败。RocketMQ 采用两阶段提交的方式实现事务消息,TransactionMQProducer 处理上面情况的流程是,先发一个“
转载 2024-02-04 14:38:00
118阅读
核心知识之RocketMQ顺序消息讲解简介:讲解RocketMQ顺序消息的使用和讲解生产端保证发送消息有序,且发送到同一个Topic的同个queue里面,RocketMQ的确是能保证FIFO的例子:订单的顺序流程是:创建、付款、物流、完成,订单号相同的消息会被先后发送到同一个队列中, 根据MessageQueueSelector里面自定义策略,根据同个业务id放置到同个queue里面,如订单号取模
转载 2024-04-11 22:25:47
70阅读
  • 1
  • 2
  • 3
  • 4
  • 5