通信协议:
为了实现客户端和服务器之间的通信来完成的逻辑,基于TCP实现的自定义应用层协议。通过这个协议,完成客户端–服务器远程方法调用。
序列化/反序列化:
通过网络传输对象把对象存储到硬盘上。
序列化:把对象转化为二进制的数据序列,反序列化:把二进制数据序列转化为对象。
虚拟主机:
正常的RabbitMQ是支持N个虚拟主机,但是此处只设计简单的,只支持一个虚拟主机。
内存管理
如下五个方面:
以更高的效率支撑API的实现
(1)交换机管理:(
这里会用到一些数据结构,主要是hashmap
)
(2)队列管理
(3)绑定管理
(4)消息管理
(5)待确认消息管理:
用来应对“已读不回”的情况。
把这些消息留着,后续还有再次处理的机会。
数据库管理:
这几个部分,使用数据库管理。数据库提供的增删改查,强大&方便
文件管理:
用来
管理消息的 (1)消息不需要复杂的增删改查(
⒉)数据库性能也有限,因此不适用数据库
数据库管理、文件管理:
持久化存储,重启之后数据不丢失。
消息转发:
不同交换机类型对应的转发规则不同(DIRECT、FANOUT、TOPIC)