RabbitMQ之前的那些事】的更多相关文章

RabbitMQ消息队列 RabbitMQ是一个消息队列的产品有着 集群.消息确认.内存化.高可用.镜像等高级功能,是目前MQ产品中的佼佼者 RabbitMQ的来历 它是用erlang语言遵守amqp(高级队列)协议的一个消息队列产品 amqp协议:高级消息队列协议 它相当于一份产品设计需求文档 ,在文档中把所有的规则与清楚.例如要有什么方法,方法中应该有什么参数 rabbitMQ完全遵从了amqp协议的规则 了解RabbitMQ的元素 vhost:一个vhost与另一个vhost是隔离开的,互…
记录一下RabbitMQ在windows平台下安装的几个注意点- -,好记性不如烂笔头 安装过程与Linux安装一致,教程参照官网集群配置:此处只列举出几个注意点: 1. erlang的版本需要一致,新增加的节点可以选择更高版本的erlang,运行时向下兼容;erlang.cookie文件需要在集群中拷贝一致 windows操作系统中该文件位于 C:\Users\[当前操作系统登录用户]\.erlang.cookie 和 C:\Windows 目录下,切记两处都要同步 2.windows的服务列…
消息队列目前流行的有三种 1. RabbitMQ 2. ActiveMQ 3. Kafka 这三种都非常强大,RabbitMQ目前用的比较多,也比较流行,阿里也在用 ActiveMQ是阿帕奇出品,但是性能上和RMQ相比相对差一些 卡夫卡呢,使用场景不同,不多介绍,主要是用于日志收集方面,结合hadoop非常灵活 RabbitMQ官网:http://www.rabbitmq.com/ 安装不多说了,可以下载Windows版本,或者linux版本 下载页面:http://www.rabbitmq.c…
由于不可抗因素, 需要给对接方撸一个client的demo.基于比较老的jdk. 所幸找到了这里:http://www.rabbitmq.com/releases/rabbitmq-java-client 干脆拿第一版1.4.0开撸,以下demo: import java.io.IOException; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.Connection; import com.r…
之前的路由模式是通过key相等来匹配 而通配符,顾名思义,符合条件,则进行消息匹配发送 将路由键和某模式进行匹配.此时队列需要绑定要一个模式上. 符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词. 因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs” 如图: 官网截图: 代码示例: 服务方 接收方1 接受方2 路由模式也是通配符模式的一种 在生产环境中,以通配符模式用的较多 当然简单应用的话路由模式也够了…
路由模式其实和订阅模式差不多,只不过交换机的类型不同而已 路由模式可以用下图来表示,比订阅模式多了一个key,举个栗子就是根据不同的人群来订阅公众号,来收取消息 根据不同的key来获取不同的消息 最简单的就是男性用户以及女性用户的关注信息是不同的,推送的内容当然也是根据不同分类来推送 下图就是微信公众号群发的分类,虽然有用户订阅你,但你还是能够根据性别,以及国家甚至其他的标签来推送不同的消息 官方图示,根据不同的类型,或者可以说是属性,标签,来发送消息 把这片代码作为公众号的服务方,定义了一个交…
之前讲的消费者互相可以把队列中的消息全部读取,但是不是读完整的所有信息 那么采用订阅模式就行,这就是微信公众号的模式, 比如10个人订阅了我的公众号"BeJavaGod",当我发送一条消息的时候, 那么这10个人都能收到我的消息并且查看,比如本条消息,对吧? 生产者制造消息发送给交换机X,而不是发送给队列,队列和交换机绑定,消费者从各自的队列中获得消息 这样则实现一个生产者发送的所有消息都能被所有的消费者同时接收到 需要注意的地方是,在生产者创建消息发送到交换机时,此时没有队列,那么消…
上篇文章讲了简单队列的使用,这其实就是RMQ给的demo,实际并没有什么用 本篇讲讲工作模式队列,也称之为任务队列 一个生产者发布了多条消息,消费者A可以接受消息,接受消息后该消息就消除,消费者B可以接受其他消息 使用场景,一些数据库操作比较缓慢的话可以分别给多个接口调用,降低压力,或者抢单场景也能考虑, 比如就10个商品,100个消费者来抢单,前10个抢到了后,消息队列就为空了,那么第11个以后的所有消费者都不会抢到 代码示例: 生产者 public class Send { private…
协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置. 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 "原子操作(atomic oper…
第11章 1.rabbitMQ   2. redis 一.rabbitMQ: 人们写了有好多好多的开源的MQ服务器.其中大多数都是写出来用来解决特定问题的.它们不关心上面跑的是什么类型的消息,设计思想通常是和创建者息息相关的(消息的持久化,崩溃恢复等通常不在他们考虑范围内).有三个专门设计用来做及其灵活的消息队列的程序值得关注: ·         Apache ActiveMQ ·         ZeroMQ ·         RabbitMQ Apache ActiveMQ 曝光率最高,…