°Fuhb
要比别人得到更多,就要付出比别人更多的努力
展开
-
深入理解RocketMQ:Consumer消费消息原理
前言RocketMQ版本:4.8Consumer类型:DefaultMQPushConsumer原理解析consumer 启动时做了哪些事情?定时从NameSrv获取最新的Topic+Queue+Broker路由信息,获取频率默认30秒,可以通过参数 pollNameServerInterval 进行设置创建类型为LinkedBlockingQueue的队列pullRequestQueue,用于存放PullRequest请求对象。创建线程RebalanceService,主要用原创 2021-11-09 21:45:44 · 708 阅读 · 0 评论 -
RocketMQ源码解析:Producer发送消息+Broker消息存储
文章目录1. Producer 发送消息2. Broker 接收消息1. Producer 发送消息先上一段简单的生产者代码 public static void main(String[] args) throws Exception { DefaultMQProducer producer = new DefaultMQProducer("default_producer"); producer.setNamesrvAddr("127.0.0.1:9876")原创 2021-11-05 18:02:31 · 213 阅读 · 0 评论 -
RocketMQ源码:Broker启动过程介绍
1. 简介Broker 启动入口是 BrokerStartup.java => main() ,跟上一篇讲的 NameSrv 类似,首先会从启动命令判断 -c 参数,读取自定义配置文件。然后创建 BrokerController 对象,负责初始化和启动操作。Broker 主要配置类有3个:BrokerConfig:Broker相关的配置参数NettyServerConfig:Netty服务端配置,默认端口号10911。NameSrv 也有这个配置,默认端口9876NettyClientCo原创 2021-11-04 17:59:57 · 391 阅读 · 0 评论 -
RocketMQ源码:NameSrv启动全过程详解
文章目录概述NamesrvController 简介NamesrvController 创建过程NamesrvController 初始化NamesrvController 启动概述NameSrv 的启动入口是 NamesrvStartup.java => main() 方法,其内部维护类型为 NamesrvController 的对象 controller,负责初始化配置,以及启动相关任务。NamesrvController 简介它内部有几个重要属性: private fina原创 2021-11-03 22:39:57 · 471 阅读 · 0 评论 -
RocketMQ(五):教你如何调试源代码
环境准备代码下载(以4.8.0版本为例):https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.8.0/rocketmq-all-4.8.0-source-release.zip开发工具:IDEAJDK1.8调试NameSrv解压 rocketmq-all-4.8.0-source-release.zip,使用IDEA打开工程找到 namesrv 模块下的类 NamesrvStartup,main 方法就在这里,直接启动会报错 P原创 2021-11-02 23:19:41 · 6686 阅读 · 0 评论 -
Zookeeper在Kafka中的作用
文章目录1. Broker注册2. Topic注册3. __consumer_offsets偏移量4. 其他信息5. 负载均衡5.1 生产者负载均衡5.2 消费者负载均衡1. Broker注册Kafka集群之间并不直接联系,而是将各自节点信息注册到Zookeeper,由ZK进行统一管理。如下图:Zookeeper 在节点 /brokers/ids/(0/1/2/3...) 路径下存放 Kafka 节点信息,主要是IP和端口2. Topic注册Zookeeper 在节点 /brokers/to原创 2021-02-05 23:23:25 · 384 阅读 · 0 评论 -
Kafka消息丢失、重复消费的解决方案
文章目录生产者问题消费者问题问题总结解决方案生产者问题Producer发送消息到队列,分区Leader收到消息后返回ACK给Producer,表示接收成功,此时可以继续发送下一笔消息。Kafka提供了3种不同级别的ACK机制:0:Leader收到消息后立刻返回给Producer,消息可能还没刷盘,也还没有同步给Follower。此时如果Leader挂掉,消息就丢失了。1:Leader将消息写入磁盘后,立刻返回ACK给Producer,消息可能还没同步Follower。此时如果Leader挂掉,选原创 2021-02-04 21:36:10 · 2122 阅读 · 1 评论 -
RocketMQ(四):生产者消费者实践
文章目录准备工作同步生产异步生产有序消费并发消费准备工作先用命令创建Topic,执行成功后默认会创建8个队列sh mqadmin updateTopic -b localhost:10911 -n localhost:9876 -t TopicTestProducer发送消息时,Topic不存在也会自动创建,但是一般不建议这样做。同步生产发送消息时,等待返回结果才发送下一条。速度相对慢一点,消息不易丢失。public class SyncProducer { public stati原创 2021-02-01 10:36:35 · 346 阅读 · 0 评论 -
RocketMQ(三):基本原理和架构
文章目录1. 架构图2. 基本原理2.1 Name Server2.2 Broker2.3 Producer生产者2.4 Consumer消费者3. 工作流程1. 架构图2. 基本原理2.1 Name ServerNameServer是一个非常简单的Topic路由注册中心,其角色类似Dubbo中的zookeeper,支持Broker的动态注册与发现。主要包括两个功能:Broker管理,NameServer接受Broker集群的注册信息并且保存下来作为路由信息的基本数据。然后提供心跳检测机制,检原创 2021-01-30 16:30:02 · 274 阅读 · 0 评论 -
RocketMQ(二):参数配置大全
文章目录1. 客户端配置1.1 客户端公共配置1.2 Producer配置1.3 PushConsumer配置1.4 PullConsumer配置1.5 Message数据结构2 系统配置2.1 JVM选项2.2 Linux内核参数1. 客户端配置DefaultMQProducer、TransactionMQProducer、DefaultMQPushConsumer、DefaultMQPullConsumer都继承于ClientConfig类,ClientConfig为客户端的公共配置类。客户端的配置原创 2021-01-30 15:56:49 · 925 阅读 · 0 评论 -
RocketMQ(一):Linux安装RocketMQ和常用命令
下载安装版本:4.8.0下载地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.8.0/rocketmq-all-4.8.0-source-release.zip下载成功后,上传到 /opt 目录,并解压原创 2021-01-30 13:22:32 · 1213 阅读 · 0 评论 -
Kafka常用命令大全
启动 Kafkakafka-server-start.sh -daemon /usr/local/kafka_2.13-2.6.0/config/server.properties 停止 Kafkakafka-server-stop.sh查看所有 Topic./kafka-topics.sh --list --zookeeper 192.168.25.132:2181查看所有 Topic 的详细信息./kafka-topics.sh --describe --zookee.原创 2020-11-12 17:37:28 · 569 阅读 · 0 评论 -
Docker环境安装Kafka
安装 ZookeeperKafka 的运行需要有 Zookeeper ,所以需要先安装 Zookeeper拉取镜像docker pull wurstmeister/zookeeper运行容器docker run -d --restart=always --name zookeeper -p 2181:2181 \-v /etc/localtime:/etc/localtime \wurstmeister/zookeeper安装 Kafka拉取镜像docker pull w原创 2020-11-10 13:36:37 · 181 阅读 · 0 评论 -
SpringBoot操作Kafka创建Topic、Producer、Consumer
环境sbt编译安装sbt下载地址:https://www.scala-sbt.org/download.html# 解压tar -zxvf sbt-1.2.8.tgz -C /usr/localcd /usr/local/sbt/# 修改环境变量vim /etc/profile#尾部加上这部分export SBT=/usr/local/sbtexport PATH=$SBT/bin:$PATH#保存退出,使配置生效source /etc/profile修改仓库地址s原创 2020-09-15 11:39:42 · 5498 阅读 · 1 评论 -
Linux安装Kafka-manager可视化
环境kafka-manager 3.0.0.5下载地址:https://github.com/yahoo/CMAK/releases/tag/3.0.0.5选择cmak-3.0.0.5.zip下载,注意不要下载到SourceCode了配置cd /usr/local/kafkamanager-3.0.0.5/confvim application.conf#修改zkhostscmak.zkhosts="192.168.25.132:2181"#保存退出,启动zookeeper和kafka,然原创 2020-09-14 21:20:20 · 1997 阅读 · 0 评论 -
Kafka工作原理简要概述
1、整体流程流程图词汇topic:主题producer:生产者consumer:消费者consumer-group:消费者组offset:偏移量follower:副本要点概述kafka是以topic进行分类的,由producer生产数据发送到topic,再被consumer进行消费,同时offset会记录每个分区的消费进度,就算中途挂掉了,下次也会从offset开始继续消费每个topic可以有多个分区,每个分区可以配置1个或多个副本,形成leader-followe原创 2020-09-08 14:11:30 · 1697 阅读 · 0 评论 -
Java操作Kafka创建Topic、Producer、Consumer
环境JDK 1.8Zookeeper 3.6.1Kafka 2.6.0引入依赖<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.6.0</version></dependency><dependency> <group原创 2020-09-02 21:03:34 · 4770 阅读 · 2 评论 -
Linux环境安装Kafka2.6.0
下载下载地址:http://mirrors.hust.edu.cn/apache/kafka/2.6.0/kafka_2.13-2.6.0.tgzkafka启动需要zookeeper,还没安装zk的参考这里:原创 2020-08-31 17:13:53 · 1871 阅读 · 0 评论