一.RabbitMQ实例介绍RabbitMQ实例由华为云分布式消息服务(DMS)团队打造,实例采用物理隔离的方式部署,租户独占RabbitMQ实例.一键式部署,完全兼容开源RabbitMQ的使用方式,真正做到服务零改动快速迁移,大大节省维护和使用成本. 产品特点1.一键式部署 用户只需要在实例管理界面点击申请按钮,提交订单.后台将自动创建部署完成一整套RabbitMQ实例. 2.即时可用 用户只要等待实例创建完成后即可正常访问使用. 3.业务零修改迁移 完全兼容开源的RabbitMQ使用方式.使…
前言 消息队列在现今数据量超大,并发量超高的系统中是十分常用的.本文将会对现时最常用到的几款消息队列框架 ActiveMQ.RabbitMQ.Kafka 进行分析对比.详细介绍 RabbitMQ 在 Sprinig 框架下的结构及实现原理,从Producer 端的事务.回调函数(ConfirmCallback / ReturnCallback)到 Consumer 端的 MessageListenerContainer 信息接收容器进行详细的分析.通过对 RabbitTemplate.Simpl…
Pulsar简介 Apache Pulsar是一个企业级的分布式消息系统,最初由Yahoo开发并在2016年开源,目前正在Apache基金会下孵化.Plusar已经在Yahoo的生产环境使用了三年多,主要服务于Mail.Finance.Sports. Flickr. the Gemini Ads platform. Sherpa以及Yahoo的KV存储. Pulsar之所以能够称为下一代消息队列,主要是因为以下特性: 线性扩展.能够丝滑的扩容到成百上千个节点(Kafka扩容需要占用很多系统资源在…
老李推荐:第6章6节<MonkeyRunner源码剖析>Monkey原理分析-事件源-事件源概览-命令队列   事件源在获得字串命令并把它翻译成对应的MonkeyEvent事件后,会把这些事件排队放入一个由事件源维护的队列,然后其他地方如Monkey类的runMonkeyCycles方法就可以去把队列里面的事件取出来进一步进行处理了.那么这里我们先看下属于MonkeySourceNetwork内部类的命令队列的类图: 图6-6-1 命令队列类图 整个继承关系非常清晰简洁,CommandQueu…
laravel的消息队列剖析 这篇来自于看到朋友转的58沈剑的一篇文章:1分钟实现"延迟消息"功能 在实际工作中也不止遇见过一次这个问题,我在想着以前是怎么处理的呢?我记得当初在上家公司的时候直接使用的是laravel的queue来实现的.当然,这里说的laravel的queue实际上也是基于redis的队列实现的.正好今天遇上这个问题,追下底层机制. 使用如下:http://d.laravel-china.org/docs/5.3/queues // 创建10分钟后执行的任务 $jo…
分布式消息队列nsq,简单易用,去中心化的设计使nsq更健壮,nsq充分利用了go语言的goroutine和channel来实现的消息处理,代码量也不大,读不了多久就没了.后期的文章我会把nsq的源码分析给大家看. 主要的分析路线如下 分析nsq的整体框架结构,分析如何做到的无中心化分布式拓扑结构,如何处理的单点故障. 分析nsq是如何保证消息的可靠性,如何保证消息的处理,对于消息的持久化是如何处理和扩展的. 分析nsq是如何做的消息的负载处理,即如何把合理的.不超过客户端消费能力的情况下,把消…
在上一篇帖子剖析nsq消息队列(一) 简介及去中心化实现原理中,我介绍了nsq的两种使用方式,一种是直接连接,还有一种是通过nslookup来实现去中心化的方式使用,并大概说了一下实现原理,没有什么难理解的东西,这篇帖子我把nsq实现去中心化的源码和其中的业物逻辑展示给大家看一下. nsqd和nsqlookupd的通信实现 上一篇中在启动nsqd时我用了以下命令,我指定了一个参数 --lookupd-tcp-address ./nsqd -tcp-address ":8000" -ht…
剖析nsq消息队列-目录 实际应用中,一部分服务集群可能会同时订阅同一个topic,并且处于同一个channel下.当nsqd有消息需要发送给订阅客户端去处理时,发给哪个客户端是需要考虑的,也就是我要说的消息的负载. 如果不考虑负载情况,把随机的把消息发送到某一个客服端去处理消息,如果机器的性能不同,可能发生的情况就是某一个或几个客户端处理速度慢,但还有大量新的消息需要处理,其他的客户端处于空闲状态.理想的状态是,找到当前相对空闲的客户端去处理消息. nsq的处理方式是客户端主动向nsqd报告自…
剖析nsq消息队列(一) 简介及去中心化实现原理 剖析nsq消息队列(二) 去中心化源码解析 剖析nsq消息队列(三) 消息传输的可靠性和持久化[一] 剖析nsq消息队列(三) 消息传输的可靠性和持久化[二]diskqueue 剖析nsq消息队列(四) 消息的负载处理…
前言 Arthas 是Alibaba开源的Java诊断工具.在线排查问题,无需重启:动态跟踪Java代码:实时监控JVM状态.对分秒必争的线上异常,Arthas可帮助我们快速诊断相关问题. 下载安装 下载Arthas的arthas-boot.jar wget https://alibaba.github.io/arthas/arthas-boot.jar 下载arthas之后,先来了解帮助信息,可以通过java -jar arthas-boot.jar -h命令查看,这里给出了一些例子和参数说明…