消息队列 MQ
文章平均质量分 87
MQ
槑!
这个作者很懒,什么都没留下…
展开
-
RocketMQ 与 Kafka 性能对比大揭秘
1、文件布局1.1 Kafka 文件布局Kafka 文件在宏观上的布局如下图所示:正如上图所示,Kafka 文件布局的主要特征如下:文件的组织以 topic + 分区进行组织,每一个 topic 可以创建多个分区,每一个分区包含单独的文件夹,并且是多副本机制,即 topic 的每一个分区会有 Leader 与 Follow,并且 Kafka 内部有机制保证 topic 的某一个分区的 Leader 与 follow 不会存在在同一台机器,并且每一台 broker 会尽量均衡的承担各个分区的 Lea转载 2021-04-12 21:11:13 · 246 阅读 · 0 评论 -
RocketMQ 与 Kafka 主要异同
相同点总得来讲两者底层原理有很多相似之处,RocketMQ借鉴了Kafka的设计两者均采用顺序写、零拷贝机制进行写消息与发送消息,极大地保证了系统的性能不同点部署架构不同高可用RocketMQ在高可用设计上粒度只控制在Broker。其保证高可用是通过master-slave主从复制来解决的。Kafka控制高可用的粒度是放在分区上。每个topic的leader分区和replica分区都可以在所有broker上负载均衡的存储。Kafka的这种设计相比RocketMQ这种主从复制的设计有以原创 2021-04-12 21:02:04 · 844 阅读 · 0 评论 -
Kafka 请求处理流程、重平衡流程
Kafka 请求处理流程响应式模型Kafka 采用的是一种 响应式(Reactor)模型,那么什么是响应式模型呢?简单的说,Reactor 模式是事件驱动架构的一种实现方式,特别适合应用于处理多个客户端并发向服务器端发送请求的场景,如下图所示Kafka 的 broker 端有个 SocketServer 组件,类似于处理器,SocketServer 是基于 TCP 的 Socket 连接的,它用于接受客户端请求,所有的请求消息都包含一个消息头,消息头中都包含如下信息Request type (也原创 2021-04-12 17:27:32 · 325 阅读 · 0 评论 -
Kafka Broker Controller、副本机制
Broker Controllerbroker 之间也有一个控制器组件(Controller),它是 Kafka 的核心组件。它的主要作用是在 ZooKeeper 的帮助下管理和协调整个 Kafka 集群,集群中的每个 broker 都可以称为 controller,但是在 Kafka 集群启动后,只有一个 broker 会成为 Controller 。ZooKeeper 的数据是保存在节点上的,每个节点也被称为znode,znode 节点是一种树形的文件结构,它很像 Linux 操作系统的文件路径,Z原创 2021-04-12 17:27:19 · 741 阅读 · 0 评论 -
Kafka 顺序消费问题
自定义分区器定义分区器public class MyPartitioner implements Partitioner { private final AtomicInteger counter = new AtomicInteger(0); @Override public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster clus原创 2021-04-12 17:26:49 · 1647 阅读 · 0 评论 -
Kafka Consumer 核心知识
Kafka Consumer应用程序使用 KafkaConsumer 从 Kafka 中订阅主题并接收来自这些主题的消息,然后再把他们保存起来。应用程序首先需要创建一个 KafkaConsumer 对象,订阅主题并开始接受消息,验证消息并保存结果。一段时间后,生产者往主题写入的速度超过了应用程序验证数据的速度,这时候该如何处理?如果只使用单个消费者的话,应用程序会跟不上消息生成的速度,就像多个生产者像相同的主题写入消息一样,这时候就需要多个消费者共同参与消费主题中的消息,对消息进行分流处理。Ka原创 2021-04-12 17:26:25 · 1178 阅读 · 0 评论 -
Kafka Producer 核心知识
Kafka Producer消息的产生非常简单,但是消息的发送过程还是比较复杂的,如图我们从创建一个ProducerRecord 对象开始,ProducerRecord 是 Kafka 中的一个核心类,它代表了一组 Kafka 需要发送的 key/value 键值对,它由记录要发送到的主题名称(Topic Name),可选的分区号(Partition Number)以及可选的键值对构成。在发送 ProducerRecord 时,我们需要将键值对对象由序列化器转换为字节数组,这样它们才能够在网络上传输原创 2021-04-12 17:24:18 · 1058 阅读 · 0 评论 -
Kafka 的 Java Api 与 SpringBoot Api
Java 操作 Kafka依赖<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.0.0</version> </dependency>Producer方式一:同步调用public class MyKafKaProd原创 2021-04-12 17:23:45 · 155 阅读 · 0 评论 -
Kafka 基础知识与重要配置
基础知识什么是 KafkaKafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。Kafka 的基本术语消息:Kafka 中的数据单元被称为消息,也被称为记录,可以把它看作数据库表中某一行的记录。批次:为了提高效率, 消息会分批次写入 Kafka,批次就代指的是一组消息。主题:消息的种类称为 主题(Topic),可以说一个主题代表了一类消息。相当于是对消息进行分类。主题原创 2021-04-12 17:22:28 · 499 阅读 · 0 评论 -
Kafka 安装与基本操作
Kafka安装部署单机模式1、下载kafka。https://kafka.apache.org/downloads2、安装解压。已经编译好的,直接解压就行(tar -zxvf kafka_2.11-2.0.0.tgz )3、启动zookeeper。因为 kafka 的注册中心是 zk,所以需要先启动zookeeper节点kafka 内置了 zookeeper 的服务,所以在 bin 目录下提供了 zk 的启动和关闭脚本 zookeeper-server-start.sh 和 zoo原创 2021-04-11 19:28:34 · 157 阅读 · 0 评论 -
RocketMQ 核心原理总结
Topic 的路由机制介绍路由注册机制之前,先简单看下 RocketMQ 的整体架构:Producer:消息生产者,用于向消息服务器发送消息;NameServer:路由注册中心;Broker:消息存储服务器;Consumer:消息消费者,该流程图中未涉及;联通性:A. NameServer 之间互不通信,无法感知对方的存在。B. Producer 生产者与 NameServer 集群中的一台服务器建立长连接,并持有整个 NameServer 集群的列表。C. Broker 服务会与原创 2021-04-12 18:23:05 · 350 阅读 · 0 评论 -
消息中间件RocketMQ(四):如何在SpringBoot中使用RocketMQ原生API
生产者1.依赖 <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.5.1</version> &l...原创 2019-10-26 14:37:04 · 6291 阅读 · 6 评论 -
消息中间件RocketMQ(三):RocketMQTemplate的比较使用
依赖 <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3<...原创 2019-10-26 02:04:14 · 47310 阅读 · 14 评论 -
消息中间件RocketMQ(二):使用Docker搭建二主二从集群
使用Docker安装RocketMQ1.拉取镜像docker pull foxiswho/rocketmq:server-4.3.2 docker pull foxiswho/rocketmq:broker-4.3.22.创建nameserver容器docker create -p 9876:9876 --name rmqserver \ -e "JAVA_OPT_EXT=-serv...原创 2019-10-24 23:47:59 · 1737 阅读 · 3 评论 -
消息中间件RocketMQ(一):核心知识与集群搭建(含分布式消息事务)
一.主从模式搭1.主从模式搭建->先进入bin 正常用:nohup sh mqnamesrv & 启动nameserver->进入每个机子的:/conf/2m-2s-async/->主节点编辑broker-a.properties 或 broker-b.properties增加:namesrvAddr=192.168.159.129:9876;192.168...原创 2019-08-30 12:01:13 · 1013 阅读 · 0 评论 -
消息中间件RabbitMQ(二):SpringBoot使用RabbitMQ高级特性
四.SpringBoot整合RabbitMQ高级特性1.准备1)依赖:org.springframework.bootspring-boot-starter-amqp2)配置文件 消费者: spring.rabbitmq.addresses=192.168.11.76:5672 spring.rabbitmq.username=guest sp...原创 2019-08-30 12:28:56 · 1035 阅读 · 1 评论 -
消息中间件RabbitMQ(一):RabbitMQ的五种基本模型与高级特性
一.安装1.linux1)下载三个rpm文件并上传:elrang、scoat、rabbitmq-server2)安装: rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm rpm -ivh socat-1.7.3.2-1.1.el7.x86_64.rpm --force --nodeps rpm -i...原创 2019-08-30 12:15:15 · 2979 阅读 · 0 评论