mq
最简单的mq模型,为初学者而制作,摒弃杂乱代码,带你了解netty,io这些mq最核心概念
ESOO
君子不器
展开
-
为初学者而来~手工最简MQ(三)Client
2,client2.1 连接管理通过netty与mq服务器进行连接,并相应生产者与消费者的请求,通过netty自带的序列化工具,将消息序列化未byte字节进行传输2.1.1 服务启动,连接brokerpackage com.esoo.mq.client.connection;import io.netty.bootstrap.Bootstrap;import io.netty.buffer.PooledByteBufAllocator;import io.netty.channel.*;i原创 2020-10-16 14:36:22 · 973 阅读 · 2 评论 -
为初学者而来~手工最简MQ(二)Broker
1,服务端服务端的设计就非常简单了,最核心的就是消息的存取,以及响应生产者和消费者的网络请求分为2部分:1.1 消息文件消息的存储我们参考kafka,并简化其逻辑,因为是最简单的mq,我们只考虑单机的情况的就行,每个topic存储2个文件topicname.indextopicname.data.index 文件存储格式为:消息顺序号:消息截止位置.data 文件按照顺序存储具体的消息文件操作:package com.esoo.mq.server.message;import co原创 2020-10-16 14:30:52 · 658 阅读 · 1 评论 -
为初学者而来~手工最简MQ(一)设计篇
为什么重复造轮子MQ(Message Queue)是互联网公司绕不过去的一个技术,核心功能就是进行消息的收发管理,已达到某些特殊功能,比如流量削峰,异步执行,日志聚合等。介于这个原因,看了很多mateQ,kafka,roccketMQ的资料,虽然算是一点点的入门了,依然感觉隔着层窗户纸,后来经过考虑,觉得mq经过多年的演变,已经是一个复杂的事物,对于初学者,不利于理解,我决定根据自己的理解,自己手写一个最简单mq,以帮助自己理解,也给后来者提供一个简单的参考。如有大神,可直接看源码:git-soomq原创 2020-10-16 14:09:46 · 1120 阅读 · 0 评论