Apache RocketMQ

从各方面比较下kafka、activemq、rabbitmq、rocketmq之间的区别

时光总嘲笑我的痴心妄想 提交于 2020-05-08 08:24:30
【消息队列】从各方面比较下kafka、activemq、rabbitmq、rocketmq之间的区别 一.单机吞吐量 ActiveMQ:万级,吞吐量比RocketMQ和Kafka要低了一个数量级 RabbitMQ:万级,吞吐量比RocketMQ和Kafka要低了一个数量级 RocketMQ:10万级,RocketMQ也是可以支撑高吞吐的一种MQ Kafka:10万级别,这是kafka最大的优点,就是吞吐量高。一般配合大数据类的系统来进行实时数据计算、日志采集等场景 二.topic数量对吞吐量的影响 RocketMQ:topic可以达到几百,几千个的级别,吞吐量会有较小幅度的下降,这是RocketMQ的一大优势,在同等机器下,可以支撑大量的topic Kafka:topic从几十个到几百个的时候,吞吐量会大幅度下降,所以在同等机器下,kafka尽量保证topic数量不要过多。如果要支撑大规模topic,需要增加更多的机器资源 三.时效性 ActiveMQ:ms级 RabbitMQ:微秒级,这是rabbitmq的一大特点,延迟是最低的 RocketMQ:ms级 Kafka:延迟在ms级以内 四.可用性 ActiveMQ:高,基于主从架构实现高可用性 RabbitMQ:高,基于主从架构实现高可用性 RocketMQ:非常高,分布式架构 Kafka:非常高,kafka是分布式的

Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

一笑奈何 提交于 2020-05-08 08:19:50
Kafka 、 ActiveMQ 、 RabbitMQ 、 RocketMQ 有什么优缺点? 特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级,比 RocketMQ、Kafka 低一个数量级 同 ActiveMQ 10 万级,支撑高吞吐 10 万级,高吞吐,一般配合大数据类的系统来进行实时数据计算、日志采集等场景 topic 数量对吞吐量的影响 topic 可以达到几百/几千的级别,吞吐量会有较小幅度的下降,这是 RocketMQ 的一大优势,在同等机器下,可以支撑大量的 topic topic 从几十到几百个时候,吞吐量会大幅度下降,在同等机器下,Kafka 尽量保证 topic 数量不要过多,如果要支撑大规模的 topic,需要增加更多的机器资源 时效性 ms 级 微秒级,这是 RabbitMQ 的一大特点,延迟最低 ms 级 延迟在 ms 级以内 可用性 高,基于主从架构实现高可用 同 ActiveMQ 非常高,分布式架构 非常高,分布式,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用 消息可靠性 有较低的概率丢失数据 基本不丢 经过参数优化配置,可以做到 0 丢失 同 RocketMQ 功能支持 MQ 领域的功能极其完备 基于 erlang 开发,并发能力很强,性能极好,延时很低 MQ 功能较为完善,还是分布式的

【消息队列】从各方面比较下kafka、activemq、rabbitmq、rocketmq之间的区别

白昼怎懂夜的黑 提交于 2020-05-08 07:50:26
一.单机吞吐量 ActiveMQ:万级,吞吐量比RocketMQ和Kafka要低了一个数量级 RabbitMQ:万级,吞吐量比RocketMQ和Kafka要低了一个数量级 RocketMQ:10万级,RocketMQ也是可以支撑高吞吐的一种MQ Kafka:10万级别,这是kafka最大的优点,就是吞吐量高。一般配合大数据类的系统来进行实时数据计算、日志采集等场景 二.topic数量对吞吐量的影响 RocketMQ:topic可以达到几百,几千个的级别,吞吐量会有较小幅度的下降,这是RocketMQ的一大优势,在同等机器下,可以支撑大量的topic Kafka:topic从几十个到几百个的时候,吞吐量会大幅度下降,所以在同等机器下,kafka尽量保证topic数量不要过多。如果要支撑大规模topic,需要增加更多的机器资源 三.时效性 ActiveMQ:ms级 RabbitMQ:微秒级,这是rabbitmq的一大特点,延迟是最低的 RocketMQ:ms级 Kafka:延迟在ms级以内 四.可用性 ActiveMQ:高,基于主从架构实现高可用性 RabbitMQ:高,基于主从架构实现高可用性 RocketMQ:非常高,分布式架构 Kafka:非常高,kafka是分布式的,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用 五.消息可靠性 ActiveMQ

Spring Cloud Alibaba学习笔记(12)

…衆ロ難τιáo~ 提交于 2020-05-07 21:40:38
什么是Spring Cloud Stream 一个用于构建消息驱动的微服务的框架 应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中binder 交互,通过我们配置来 binding ,而 Spring Cloud Stream 的 binder 负责与中间件交互。所以,我们只需要搞清楚如何与 Spring Cloud Stream 交互就可以方便使用消息驱动的方式 Spring Cloud Stream编程模型 Destination Binder(目标绑定器) 与消息中间件通信的组件 Destination Bindings(目标绑定) Binding是连接应用程序与消息中间件的桥梁,用于消息的消费和生产,有Binder创建 Message(消息) 微服务集成了Stream,Stream的Destination Binder创建了两个Binding,左边的Binding连接Rabbit MQ,右边的MQ连接Kafka。 左边的Binding从Rabbit MQ处消费消息,然后经过Application处代码的处理,把处理结果传输给Kafka。【从Rabbit MQ处消费消息,然后经过处理,生产到Kafka】 使用Spring Cloud Stream 实现消息收发 编写生产者 添加依赖 <dependency> <groupId

RocketMq 集群方式搭建 步骤教学包教包会

微笑、不失礼 提交于 2020-05-07 16:09:15
mq集群方式搭建 有段时间没写这些技术文章了, 今天抽空写一点,不然自己都快忘记了 这篇文章记录了rocketmq 集群方式搭建的过程, 也是自己半天的成果记录吧! 感兴趣的朋友点个赞在走呗! 好了,废话不多,下面开搞。 本文章参考https://blog.csdn.net/qq_35400008/article/details/82467562#comments 这个博客文章编写 准备工作 第一步:关闭要搭建的所有机器的防火墙 第二步:每台机器执行下如下步骤 [root@ma01 ~]# vim /etc/sysconfig/selinux ...... SELINUX=disabled [root@ma01~]# setenforce 0 [root@ma01~]# getenforce 第三步:所有机器装好jdk, maven , zip , unzip , ssh 免密登录 配置crt连接: https://blog.csdn.net/cmqwan/article/details/61932792 安装maven参考老哥博客: https://www.cnblogs.com/clicli/p/5866390.html 安装zip,unzip参考: http://www.rpmfind.net/linux/rpm2html/search.php?query=zip

使用 spring stream 发送消息

▼魔方 西西 提交于 2020-05-07 11:45:26
为什么使用spring stream ? spring stream 是用来做消息队列发送消息使用的。他隔离了各种消息队列的区别,使用统一的编程模型来发送消息。 目前支持: rabbitmq kafka rocketmq 启动rocketmq rocketmq 支持windows start mqnamesrv.cmd start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable= true 修改pom.xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-stream-binder-rocketmq</artifactId> </dependency> 增加发送接收JAVA代码 public interface InputOutput { String MAIL_OUTPUT = "mailOutput" ; String MAIL_INPUT = "mailInput" ; String OUTPUT = "output" ; String INPUT = "input" ; @Output(OUTPUT) MessageChannel output(); @Input(INPUT)

SQL优化和诊断实战:RocketMQ削峰

夙愿已清 提交于 2020-05-05 16:52:30
MQ的主要特点为解耦、异步、削峰,该文章主要记录与分享个人在实际项目中的RocketMQ削峰用法,用于减少数据库压力的业务场景,其中RocketMQ的核心组件概念如下: Producer:生产发送消息 Broker:存储Producer发送过来的消息 Consumer:从Broker拉取消息并进行消费 NameServer:为Producer或Consumer路由到Broker 其中消费流程有以下几点是必须注意的: 1、RocketMQ的Consumer获取消息是通过向Broker发送拉取请求获取的,而不是由Broker发送Consumer接收的方式。 2、Consumer每次拉取消息时消息都会被均匀分发到消息队列再进行传输,所以RocketMQ中的很多参数都是针对队列而不是Topic的(这个是重点,顺便吐槽下源码的文档讲的真不清晰,很多都需要自己试错,但Dashboard做得很好),其中每个Broker消息队列(ConsumeQueue)的数量都可以通过RocketMQ DashBoard实时更改调整。 rocketmq-spring-boot-starter 用法简介 当开发中需要快速集成RocketMQ时可以考虑使用 rocketmq-spring-boot-starter 搭建。 RocketMQ的集成环境,但该框架并不完全具备RocketMQ所有的配置简化

4、定时任务关闭超时未支付的订单

泄露秘密 提交于 2020-05-03 18:54:42
// 1. 在主启动类上加上支持定时任务的注解 @EnableScheduling public class Application { // 2. 编写定时任务 @Component public class OrderJob { @Autowired private OrderService orderService; /** * 使用定时任务关闭超期未支付订单,会存在的弊端: * 1. 会有时间差,程序不严谨 * 10:39下单,11:00检查不足1小时,12:00检查,超过1小时多余39分钟 * 2. 不支持集群 * 单机没毛病,使用集群后,就会有多个定时任务 * 解决方案:只使用一台计算机节点,单独用来运行所有的定时任务 * 3. 会对数据库全表搜索,及其影响数据库性能:select * from order where orderStatus = 10; * 定时任务,仅仅只适用于小型轻量级项目,传统项目 * * 后续课程会涉及到消息队列:MQ-> RabbitMQ, RocketMQ, Kafka, ZeroMQ... * 延时任务(队列) * 10:12分下单的,未付款(10)状态,11:12分检查,如果当前状态还是10,则直接关闭订单即可 */ // @Scheduled(cron = "0/3 * * * * ?") // @Scheduled(cron =

5.【Spring Cloud Alibaba】消息驱动的微服务-SpringCloudAlibabaRocketMQ

Deadly 提交于 2020-05-02 05:57:58
Spring实现异步的方式 引入MQ后的架构演进 MQ的使用场景 异步处理 流量削峰填谷 解耦微服务 MQ的选择 mq对比详情 mq对比详情 搭建MQ 搭建教程 搭建RocketMq控制台 RocketMQ控制台安装教程 RocketMq的术语与概念 RocketMQ进阶 ==看官方RocketMQ指导== 消息编程模型01-编写生产者 pom.xml <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency> application.yml 代码实现 private final RocketMQTemplate rocketMQTemplate; 消息编程模型02-编写消费者 pom.xml <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency> application.yml 代码实现 分布式事务01-流程剖析,概念术语

RocketMQ知识整理与总结

南笙酒味 提交于 2020-05-02 00:27:41
1、架构   RocketMQ的master broker与master broker没有任何消息通讯,nameserver之间也同样没有消息通信   MQ历史          由数据结构队列发展而来      MQ使用场景        异步处理       解耦       削峰填谷       数据同步 2、队列   rocketMQ一个主题(topic)包含多个队列    3、使用   生产     同步(sync)       默认重试2次总共3次       默认等待超时时间为3s          异步(async)       总共重试2次     单向(oneway)     Message       topic:主题名称       tag:消息TAG,用于消息过滤对消息的整体分类,比如 topic为物流跟踪轨迹 ,轨迹包含 揽收 出库 入库 派送 签收,可以分别给这些相同topic不同类型的数据打标签分类解析处理       keys:Message索引键,多个用空格隔开,RocketMQ可以根据这些key快速检索到消息对消息关键字的提取方便查询,比如一条消息某个关键字是 运单号,之后我们可以使用这个运单号作为关键字进行查询       waitStoreMsgOK:消息发送时是否等消息存储完成后再返       delayTimeLevel:消息延迟级别