摘要:
持久化 RabbitMQ 的持久化分交换器持久化、队列持久化和消息持久化。 定义持久化交换器,通过第三个参数 durable 开启/关闭持久化 channel.exchangeDeclare(exchangeName, exchangeType, durable) 定义持久化队列,通过第二个参数 d 阅读全文
摘要:
多机多节点集群部署(普通模式) 一、 环境准备 准备三台安装好RabbitMQ 的机器,安装方法见 安装步骤 10.10.1.41 10.10.1.42 10.10.1.43 提示:如果使用虚拟机,可以在一台VM上安装好RabbitMQ后,创建快照,从快照创建链接克隆,会节省很多磁盘空间 二、修改配 阅读全文
摘要:
AMQP ( Advanced Message Queuing Protocol)高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。 AMQP结构 Module Layer:位于协议最高层,主要定义了一些供客户端调用的命令,客户端可以利用这些命令实现自己的业务逻辑。 例如,客户端 阅读全文
摘要:
一、安装依赖环境 在 http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的版本 在 https://github.com/rabbitmq/erlang-rpm/releases 页面找到需要下载的erlang版本 阅读全文
摘要:
什么叫消息队列 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁 阅读全文
摘要:
序列化的发展: 随着分布式架构、微服务架构的普及。服务与服务之间的通信成了最基本的需求。这个时候,我们不仅需要考虑通信的性能,也需要考虑到语言多元化问题。所以,对于序列化来说,如何去提升序列化性能以及解决跨语言问题,就成了重点解决的问题。 java本身提供的序列化存在两个问题: 1.序列化的数据比较 阅读全文
摘要:
在Netty中,还有另外一个比较常见的对象ByteBuf,它其实等同于Java Nio中的ByteBuffer,但是ByteBuf对Nio中的ByteBuffer的功能做了很多增强,下面介绍一下ByteBuf。 下面这段代码演示了ByteBuf的创建以及内容的打印,这里显示出了和普通Byte 阅读全文
摘要:
TCP传输协议是基于数据流传输的,而基于流化的数据是没有界限的,当客户端向服务端发送数据时,可能会把一个完整的数据报文拆分成多个小报文进行发送,也可能将多个报文合并成一个大报文进行发送。 在这样的情况下,有可能会出现图3-1所示的情况。 服务端恰巧读到了两个完整的数据包A和B,没有出现拆包/粘包问题 阅读全文
摘要:
一、概述 1.状态压缩 状态压缩就是使用某种方法,简明扼要地以最小代价来表示某种状态,通常是用一串01数字(二进制数)来表示各个点的状态。这就要求使用状态压缩的对象的点的状态必须只有两种,0 或 1;当然如果有三种状态用三进制来表示也未尝不可。 2.使用条件 从状态压缩的特点来看,这个算法适用的题目 阅读全文