
Kafka/ActiveMQ/RabbitMQ
文章平均质量分 87
消息中间件
流烟默
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kafka【十四】生产者发送消息时的消息分区策略
首先我们需要创建一个类,然后实现Kafka提供的分区类接口Partitioner,接下来重写方法。这里我们只关注partition方法即可,因为此方法的返回结果就是需要的分区编号。原创 2024-09-06 14:41:54 · 1102 阅读 · 1 评论 -
Kafka【十三】消费者消费消息的偏移量
偏移量offset是消费者消费数据的一个非常重要的属性。默认情况下,消费者如果不指定消费主题数据的偏移量,那么消费者启动消费时,无。如果想要获取之前的数据,就需要设定配置参数或指定数据偏移量。原创 2024-09-06 11:39:05 · 1918 阅读 · 0 评论 -
Kafka【十二】消费者拉取主题分区的分配策略
消费者想要拉取主题分区的数据,首先必须要加入到一个组中。但是一个组中有多个消费者的话,那么每一个消费者该如何消费呢,是不是像图中一样的消费策略呢?如果是的话,那假设消费者组中只有2个消费者或有4个消费者,和分区的数量不匹配,怎么办?当消费者加入群组的时候,会发送一个JoinGroup请求。群主负责给每一个消费者分配分区。每个消费者只知道自己的分配信息,只有群主知道群组内所有消费者的分配信息。原创 2024-09-06 09:37:10 · 1498 阅读 · 0 评论 -
Kafka【十一】数据一致性与高水位(HW :High Watermark)机制
Leader副本作为数据的读写副本,所以生产者的数据都会发送给leader副本,而两个follower副本会周期性地同步leader副本的数据,但是因为网络,资源等因素的制约,同步数据的过程是有一定延迟的,所以3个副本之间的数据可能是不同的。此时我们就会发现,对于消费者而言,之前leader副本能访问的数据是D,但是重新选择leader副本后,能访问的数据就变成了C,这样消费者就会认为数据丢失了,也就是所谓的数据不一致了。图中的主题有3个分区,每个分区有3个副本,这样数据可以冗余存储,提高了数据的可用性。原创 2024-09-05 16:42:08 · 1089 阅读 · 0 评论 -
Kafka【十】副本(follower)从领导者(leader)同步数据的流程
Kafka中,分区的某个副本会被指定为 Leader,负责响应客户端的读写请求。分区中的其他副本自动成为 Follower,主动拉取(同步)Leader 副本中的数据,写入自己本地日志,确保所有副本上的数据是一致的。Kafka创建主题时,会根据副本分配策略向指定的Broker节点发出请求,将不同的副本节点设定为Leader或Follower。原创 2024-09-05 16:19:36 · 1937 阅读 · 0 评论 -
Kafka【九】如何实现数据的幂等性操作
为了解决Kafka传输数据时,所产生的数据重复和乱序问题,Kafka引入了幂等性操作,。注意,。默认幂等性是不起作用的,所以如果想要使用幂等性操作,只需要在生产者对象的配置中开启幂等性配置即可。原创 2024-09-05 14:48:26 · 1740 阅读 · 0 评论 -
Kafka【八】如何保证消息发送的可靠性、重复性、有序性
幂等性生产者:防止消息重复发送,适用于单个消息级别的去重。事务支持:确保操作的原子性和一致性,适用于需要跨分区或系统的一致性操作。因此,幂等性生产者并不是必须与事务隔离使用才能保证消息的唯一性。相反,幂等性生产者本身就是为了解决消息重复发送问题而设计的。事务支持则是为了实现更高级别的数据一致性和操作的原子性。两者可以独立使用,也可以结合使用以满足不同的需求。原创 2024-09-04 16:54:20 · 2193 阅读 · 0 评论 -
Kafka【七】SpringBoot整合kafka实践
这里SpringBoot为3.0.5,jdk为17,kafka-clients为3.6.1原创 2024-09-04 14:14:04 · 713 阅读 · 0 评论 -
Kafka【六】Linux下安装Kafka(Zookeeper)集群
Kafka从早期的消息传输系统转型为开源分布式事件流处理平台系统,所以很多核心组件,核心操作都是基于分布式多节点的。本文这里采用三台虚拟机模拟真实物理主机搭建Zookeeper集群和kafka集群。VMware可以使用户在一台计算机上同时运行多个操作系统,还可以像Windows应用程序一样来回切换。用户可以如同操作真实安装的系统一样操作虚拟机系统,甚至可以在一台计算机上将几个虚拟机系统连接为一个局域网或者连接到互联网。原创 2024-09-03 16:03:13 · 1075 阅读 · 0 评论 -
Kafka【五】Buffer Cache (缓冲区缓存)、Page Cache (页缓存)和零拷贝技术
传统的主要用于缓存块设备上的数据块,包括文件系统的元数据和数据本身。它的主要目的是提高对块设备的读写性能,减少磁盘I/O操作,从而提升系统整体性能。尽管作为一个单独的概念在较新的Linux内核版本中已经不再单独存在,但它所代表的缓存机制仍然是提高系统性能的重要手段之一。通过缓存块设备上的数据和元数据,能够显著减少磁盘I/O操作,提高文件系统的读写性能。在现代Linux内核中,这种缓存机制已经被整合到统一的缓存机制中,以更好地适应现代计算环境的需求。缓存的对象Page cache:主要用于缓存文件的内容。原创 2024-09-03 10:24:21 · 2544 阅读 · 0 评论 -
Kafka【四】Controller的选举机制
Kafka是分布式消息传输系统,所以存在多个Broker服务节点,但是它的软件架构采用的是分布式系统中比较常见的主从(Master - Slave)架构,也就是说需要从多个Broker中找到一个用于管理整个Kafka集群的Master节点,这个节点,我们就称之为Controller。它是Apache Kafka的核心组件非常重要。它的主要作用是在Apache Zookeeper的帮助下管理和协调控制整个Kafka集群。原创 2024-08-29 09:38:34 · 1483 阅读 · 0 评论 -
Kafka【三】Windows下安装Kafka集群
如果启动过程报错,主要是因为zookeeper和kafka的同步问题,请先执行cluster-clear.cmd文件,再执行cluster.cmd文件即可。集群启动命令后,会打开多个黑窗口,每一个窗口都是一个kafka服务,请不要关闭,一旦关闭,对应的kafka服务就停止了。因为kafka内置了ZooKeeper软件,所以此处将解压缩的文件作为ZooKeeper软件使用。将kafka1文件夹复制两份,改名为kafka2,kafka3。修改文件夹名为kafkazookeeper。原创 2024-08-28 17:22:02 · 1379 阅读 · 0 评论 -
Kafka【二】关于消费者组(Consumer Group)、分区(partition)和副本(replica)的理解
Apache Kafka 是一个分布式流处理平台,它允许你发布和订阅记录流,存储记录流,并且可以对这些记录流进行处理。在 Kafka 中,消息被发布到特定的主题(topic),然后由消费者(consumer)订阅并消费这些消息。消费者组(Consumer Group)是 Kafka 中的一个重要概念,它用于管理多个消费者的负载均衡以及故障恢复。消费者组是由多个消费者实例(Consumer Instances)组成的一个逻辑组。这些消费者实例共同工作,以协作的方式消费Kafka主题(Topic)中的消息。Ka原创 2024-08-28 16:32:35 · 5730 阅读 · 0 评论 -
Kafka【一】Windows下安装单节点Kafka
当前版本Kafka软件内部依然依赖ZooKeeper进行多节点协调调度,所以启动Kafka软件之前,需要先启动ZooKeeper软件。不过因为Kafka软件本身内置了ZooKeeper软件,所以无需额外安装ZooKeeper软件,直接调用脚本命令启动即可。这里名称为QuorumPeerMain的就是ZooKeeper软件进程,名称为Kafka的就是Kafka系统进程。ZooKeeper软件的指令为Windows环境下的bat批处理文件。DOS窗口中,输入jps指令,查看当前启动的软件进程。原创 2024-08-19 12:56:29 · 1352 阅读 · 0 评论 -
Windows下安装ActiveMQ
【1】下载压缩包下载地址:http://activemq.apache.org/activemq-5122-release.html【2】安装① 解压到指定路径② 进入win64文件夹内部有两个文件夹,分别对应32位和64位操作系统③ 注册为windows服务首先呢,可以使用win64下的activemq.bat启动服务。但是关闭该窗口,...原创 2018-04-18 09:05:45 · 5699 阅读 · 2 评论 -
SpringBoot2.0整合ActiveMQ
【1】pom文件添加ActiveMQ依赖:<!--整合ActiveMQ--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-active原创 2018-08-09 11:54:07 · 2757 阅读 · 2 评论 -
RabbitMQ消息队列基础详解与安装实例
【1】概述大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力。场景如下,用户注册信息写入数据库后需要发送邮件和短信。图一同步方式,需要150ms;图二短信和邮件使用了多线程方式,共需要100ms;图三则使用了消息队列,共需要55ms。消息服务中两个重要概念:消息代理(message broker)和目的地(destination)。当消息发送者发送消息以后,将由消...原创 2018-07-06 16:46:19 · 1595 阅读 · 0 评论 -
SpringBoot整合RabbitMQ实践详解
【1】添加starter导入组件pom文件如下:<dependency> <groupId>org.springframework.boot</groupId> <artifactId&gt原创 2018-07-06 18:06:17 · 2332 阅读 · 0 评论 -
聊聊MQ的消息必达和消息幂等与消息延时
【1】MQ之如何做到消息必达① MQ简单架构MQ要想尽量消息必达,架构上有两个核心设计点:消息落地消息超时、重传、确认上图是一个MQ的核心架构图,基本可以分为三大块:发送方->左侧粉色部分MQ核心集群->中间蓝色部分接收方->右侧黄色部分粉色发送方又由两部分构成:业务调用方与MQ-client-sender。其中后者向前者提供了两个核心API:Sen...转载 2019-02-25 19:20:24 · 1821 阅读 · 0 评论 -
Linux下源码安装RabbitMQ并设置服务开机启动
RabbitMQ官网地址:https://www.rabbitmq.com/说明:RabbitMQ依赖于Erlang,故而需要先安装Erlang。安装的时候需要注意版本兼容,否则会出现莫名其妙错误。这里版本RabbitMQ为3.6.15,Erlang版本为19。【1】安装Erlang将下载好的安装包上传到服务器,比如/home/softinstall路径下。当然可以使用wget命令直接在线...原创 2019-08-12 13:20:28 · 2242 阅读 · 1 评论 -
CentOS7下安装ActiveMQ并注册服务设置开机启动
【1】下载二进制安装包下载地址:http://activemq.apache.org/activemq-5152-release.html【2】解压安装上传到服务器/usr/local路径下,解压:tar -zxvf apache-activemq-5.15.2-bin.tar.gz进入文件夹,其内容如下:【3】启动ActiveMQb原创 2017-12-21 17:30:05 · 4219 阅读 · 2 评论