随笔分类 -  RabbitMQ

摘要:绑定(Bindings) 之前的文章中我们已经创建过bindings,代码如下: channel.QueueBind(queue: queueName, exchange: EXCHANGE_NAME, routingKey: ROUTING_KEY, arguments: null); 绑定(bindings)是指交换机(exchange)与队列(queue)... 阅读全文
posted @ 2016-12-12 15:33 Alvin.Lee 阅读(946) 评论(0) 推荐(0)
摘要:什么是发布订阅 发布订阅是一种设计模式定义了一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有的订阅者对象,使他们能够自动更新自己的状态。 为了描述这种模式,我们将会构建一个简单的日志系统。它包括两个程序——第一个程序负责发送日志消息,第二个程序负责获取消息并输出内容。在我们的这个日志系统中,所有正在运行的接收方程序都会接受消息。我们用其中一个... 阅读全文
posted @ 2016-12-09 18:12 Alvin.Lee 阅读(2934) 评论(0) 推荐(2)
摘要:什么是工作队列 工作队列是为了避免等待一些占用大量资源或时间操作的一种处理方式。我们把任务封装为消息发送到队列中,消费者在后台不停的取出任务并且执行。当运行了多个消费者工作进程时,队列中的任务将会在每个消费者间进行共享。 使用工作队列的好处就是能够并行的处理任务。如果队列中堆积了很多任务,只要添加更多的消费着就可以了,拓展非常方便。 准备工作 1.创建生产者和消费者客户端 2.在消费者... 阅读全文
posted @ 2016-12-08 17:07 Alvin.Lee 阅读(1345) 评论(0) 推荐(1)
摘要:众所周知RabbitMQ使用的是AMQP协议。我们知道AMQP是一种网络协议,能够支持符合要求的客户端应用和消息中间件代理之间进行通信。 其中消息代理扮演的角色就是从生产者那儿接受消息,并根据既定的路由规则把接受到的消息发送给消息的处理者又称消费者。由此可以看出RabbitMQ在整个消息发送,处理的过程中有三个比较重要的角色: 生产者:producer,消息生产者,就是投递消息的程序 消息代... 阅读全文
posted @ 2016-12-07 16:52 Alvin.Lee 阅读(4489) 评论(1) 推荐(5)
摘要:RabbitMQ是一个消息代理,一个消息系统的媒介,提供了一个通用的消息发送及接收平台,并且能够保障消息传输过程中的安全。使用erlang语言开发,开源,在易用性、扩展性、高可用性等方面表现不俗 技术亮点 可靠性——RabbitMQ提供了多种技术可以让你在性能和可靠性之间进行权衡。这些技术包括持久性机制、投递确认、发布者证实和高可用性机制。 灵活的路由——消息在到达队列前是... 阅读全文
posted @ 2016-12-02 11:23 Alvin.Lee 阅读(5645) 评论(0) 推荐(1)