Apache RocketMQ 从入门到实战丁威,《RocketMQ 技术内幕》作者,RocketMQ 官方社区优秀布道师,荣获 CSDN2020 博客之星亚军;担任中通快递研发中心资深架构师,维护『中间件兴趣圈』公众号,主打成体系剖析 Java 主流中间件,尝试从源码分析、架构设计、实战、故障分析等维度深刻揭晓中间件技术,已覆盖 RocketMQ、Dubbo、Sentienl、Kafka、Canal、MyCat、ElasticJob、ElasticSearch 呢?这是因为参与开源项目需要具备一些基本条件,当下我的实际情况不符合,那成为一个开源项目的 Committer 有些什么条件呢? ### 1. 扎实的 Java 基础功底 一个开源项目的底层都会涉及到存储,这就要求具备一定的数据结构基础,JAVA 集合框架中的类自然成为了我们突破数据结构最好的老师,其次是 java 并发,即多线程、并发容器、锁等课题,这方面可以好好学习一下 JUC 框架。最后最好是具备一些网络方面的知识,例如 NIO、Netty。 过写文章的方式为开源项目贡献自己的一份力量。 接下来我们回到本节的主题,那如何参与一个开源项目呢? 在参与一个开源项目之前,我觉得第一个最基本的步骤还是要打牢基础,这里的基础至少要包括 JAVA 集合、JAVA 并发(JUC)这两项,只是最最基本的,至少要阅读其源码,理解其设计理念,至于 NIO,Netty 这些可以后续在需要使用时再去专门学习,有针对性的学习,有使用需求,或许学习动力更强劲,学习效率更高效。0 码力 | 165 页 | 12.53 MB | 2 年前3
RocketMQ v3.2.4 开发指南Message Queue 在 RocketMQ 中,所有消息队列都是持久化,长度无限的数据结构,所谓长度无限是指队列中的每个存储单元都是定长,访问其中的存储单元使用 Offset 来访问,offset 为 java long 类型,64 位,理论上在 100 年内不会溢出,所以认为是长度无限,另外队列中只保存最近几天的数据,之前的数据会按照过期时间来删除。 也可以认为 Message Queue 是一个长度无限的数组,offset socket 进入 java 堆。 (2). Producer 发送消息,消息从 java 堆转入 PAGACACHE,物理内存。 (3). Producer 发送消息,由异步线程刷盘,消息从 PAGECACHE 刷入磁盘。 (4). Consumer 拉消息(正常消费),消息直接从 PAGECACHE(数据在物理内存)转入 socket,到达 consumer,不经过 java 堆。这种消费场景最多,线上 过滤进程 2. Consumer 启动后,会向 FilterServer 上传一个过滤的 Java 类 3. Consumer 从 FilterServer 拉消息,FilterServer 将请求转发给 Broker,FilterServer 从 Broker 收到消息后,按照 Consumer 上传的 Java 过滤程序做过滤,过滤完成后返回给 Consumer。 总结: 1. 使用 CPU 资源来换取网卡流量资源0 码力 | 52 页 | 1.61 MB | 2 年前3
万亿级数据洪峰下的消息引擎Apache RocketMQ容量保障,限流 ## 低延迟分布式存储系统 – RocketMQ存储 万级请求/秒/单机 Request Request Request Request Request Request Java Heap Lock Page Cache Disk ## 低延迟分布式存储系统-并发锁的开销 ●ReentrantLock/synchronized ➢Fair ➢Unfair jpg) ## 低延迟分布式存储系统 – PageCache的毛刺现象分析 events: 262K cycles, thread: java(19473) 53.96% java [unknown] [.] 0x7f9721016d30 2.43% java [kernel.kallsys] [k] _spin_lock - _spin_lock - 44.41% page_referenced o do_sync_write vfs_write sys_write system_call_fastpath - 0x7f9737c587cd - 100.00% writeBytes Java_java_io_FileOutputStream_writeBytes 0x7f972164a846 0x7f97218b19d8 0x7f9721007c4d - 0x7f9721007c4d ##0 码力 | 35 页 | 993.29 KB | 2 年前3
万亿级数据洪峰下的消息引擎 Apache RocketMQ容量保障,限流 ## 低延迟分布式存储系统 – RocketMQ存储 万级请求/秒/单机 Request Request Request Request Request Request Java Heap Lock Page Cache Disk ## 低延迟分布式存储系统-并发锁的开销 ●ReentrantLock/synchronized ➢Fair ➢Unfair 05af53353a047b5235f563/p16_1.jpg) ## 低延迟分布式存储系统 – PageCache的毛刺现象分析 - 53.96% java [unknown] [.] 0x7f9721016d30 2.43% java [kernel.kallsysms] [k] _spin_lock - _spin_lock - 44.41% page_referenced - 99.71% o do_sync_write vfs_write sys_write system_call_fastpath - 0x7f9737c587cd - 100.00% writeBytes Java_java_io_FileOutputStream_writeBytes 0x7f972164a846 0x7f97218b19d8 0x7f9721007c4d - 0x7f9721007c4d ##0 码力 | 35 页 | 5.82 MB | 2 年前3
GSoC 2020 Apache Proposal
Apache RocketMQ Scaler for KEDAhienminhnguyen711@gmail.com / Phone : +358 469 335 071 Github: https://github.com/hiejulia Related skills : Java, Golang, SQL, NoSQL, Rest, gPRC, Microservices, Test, DevOps, Distributed system, Cloud(AWS, Azure) source release and build binary artifact) - Test and research DLedgerRoleChangeHandler.java, SlaveSynchronize.java, algorithms class : AllocateMessageQueueAveragelyByCircle, AllocateMachineRoomNearby horizontal scale with Name server cluster scale, Broker Cluster Scale RocketMQ has Client SDK for Go, Java More in detailed (more detailed will be added) - create new RocketMQ scaler with metadata, get connection0 码力 | 7 页 | 140.48 KB | 2 年前3
Apache RocketMQ 介绍High Availability and Failover Message Track Configuration anagement and Operation Tools ActiveMQ Java, .NET, C++ etc. Push model, support OpenWire, STOMP, AMQP, MTT, JMS Exclusive Consumer or Exclusive default configuration is low level, user need to optimize the configuration parameters Supported Kafka Java, Scala etc. Pull model, support TCP Ensure ordering of messages w thin a partition Not Supported Supported from a file or programmatically. Supported, u e terminal command to expose core metrics RocketMQ Java, C++, Go Pull model, support TCP, JMS, OpenMessaging Ens re strict ordering of messages, and can scale0 码力 | 5 页 | 375.48 KB | 2 年前3
docker-compose 安装 RocketMQconf:/opt/rocketmq-4.4.0/conf/broker.conf environment: NAMESRV_ADDR: "172.10.0.14:9876" JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m" command: ./mqbroker -c ../conf/broker.conf image: styletang/rocketmq-console-ng container_name: rmqconsole ports: - 9999:8080 environment: JAVA_OPTs: "-Drocketmq.namesrv.addr=172.10.0.14:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"0 码力 | 3 页 | 135.58 KB | 2 年前3
消息中间件RocketMQ原理解析 - 斩秋|---|---|---|---| |code|整数|请求操作代码,请求接收方根据不同的代码做不同的操作|应答结果代码,0表示成功,非0表示各种错误代码| |language|字符串|请求发起方实现语言,默认JAVA|应答接收方实现语言| |version|整数|请求发起方程序版本|应答接收方程序版本| |opaque|整数|请求发起方在同一连接上不同的请求标识代码,多线程连接复用使用|应答方不做修改,直接返回| String>|请求自定义字段|应答自定义字段| Header 部分数据是通过 FastJson 序列化数据 { "code": 0, "language": "JAVA", "version": 0, "opaque": 0, "flag": 1, "remark":0 码力 | 57 页 | 2.39 MB | 2 年前3
rocketmq 服务部署-1.0.0 4. cd rocketmq-console 5、mvn clean package -Dmaven.test.skip=true 6、构建成功后,执行启动命令 nohup java -jar target/rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr='192.18.166.20:9876;1920 码力 | 11 页 | 284.35 KB | 2 年前3
Apache RocketMQ on Amazon Web ServicesCONSOLE.....14 如何登录 APACHE ROCKETMQ 的 NAMESERVER 和 BROKER NODE ?.....17 ## 背景介绍 Apache RocketMQ 是一款 java 语言开发的开源的、分布式的消息投递与流数据平台。最早于 2016 年由阿里巴巴捐献给了 Apache 基金会,2017 年成为 Apache 的顶级项目,RocketMQ 具有低延迟,金融级高可0 码力 | 18 页 | 1.55 MB | 2 年前3
共 12 条
- 1
- 2













