rabbitmq
rabbitmq
孙哈航
为初学者铺路,向前辈致敬!
展开
-
rabbitmq消费者限流的一个小问题
前言对于消费者限流一般都是channel.basicQos(1)来做, 在各种资料中亦可看到channel.BasicQos(0, 1, false)这种写法, 有什么区别呢?分析通过阅读rabbitmq源码, 可跟踪到括号中三个参数分别对应的值public static class Qos extends Method implements com.rabbitmq.client.AMQP.Basic.Qos { public static final int INDEX原创 2020-05-25 12:23:35 · 495 阅读 · 0 评论 -
rabbitmq突破单个队列的瓶颈
前言我们通常谈qps只谈消息数量, 而忽略了每一条消息的大小, 我们知道每一个队列也是一个erlang的进程, 向一个队列里推送消息时, 往往会在队列进程中产生性能瓶颈. 在向一个队列快速发送消息的时候, connection和channel都会处于flow状态, 而队列处于running状态, 在一台CPU主频为2.6hz, 4内核, 8g的内存虚拟机中测试, 发送非持久化大小为10b左右的消...原创 2020-05-04 11:35:24 · 1110 阅读 · 0 评论 -
用策略模式解耦rabbitmq的消费者
前言网上充斥着各种rabbitmq的工具类, 只是简单的说明了使用方法, 并没有对代码进行优化, 当真正应用到系统中时, 各种if-else的逻辑填满了整个工具类, 臃肿又庞大. 我们来对其瘦身.代码策略模式是用的比较多的设计模式, 主要应对的情况就是if-else. 首先是准备好的工具类, 不包含业务逻辑:@Configuration@EnableApolloConfigpublic...原创 2020-05-04 11:15:39 · 269 阅读 · 0 评论 -
rabbitmq工具类带连接池
前言本文是一个简单的rabbitmq工具类, 带连接池复用了connection. 其中配置参数从apollo设置的, 这里可以写死, 或者从配置文件中读取.代码@Configuration@EnableApolloConfigpublic class MqUtil { private final List<Connection> connections = new...原创 2020-05-04 11:06:48 · 819 阅读 · 0 评论 -
旧系统升级改造之利用RabbitMq的Rpc功能实现同步查询类接口
前言针对国内各大银行保险大中型企业, 不乏一些使用了好多年的边缘旧系统, 一直使用又不好废弃, 当初的开发人员也已经离职, 不好扩展也不好升级, jdk版本低(低于1.8都算低的吧), 架构比较老, 本文使用的是阿里比较老的一个spring框架, jdk1.6, 所有数据均在uat环境下测试完成测试环境—JVM:4G----服务器共4G------Xms4096m -Xmx4096m -XX...原创 2020-05-03 22:26:44 · 209 阅读 · 0 评论