一次rabbitmq没用好的资源泄露
最近重写的一个使用rabbitmq做borker的服务, 一个go-lang的小服务,支持多节点,很简单就是从mq获得msg, 如果有通过websocket连接上来的client, 那么就push给它。
继续阅读 »
RabbitMQ学习总结
定义
RabbitMQ是一个消息代理。从本质上来说,它是从生产者(producer)接收信息,然后将信息分发给消费者(consumer)。你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处。在这个比喻中,RabbitMQ就扮演着邮箱、邮局以及邮递员的角色。
继续阅读 »
RabbitMQ 持久化分为三部分:交换器的持久化、队列的持久化和消息的持久化
交换器持久化
交换器的持久化是通过在声明队列是将 durable 参数置为 true 实现的,如果交换器不设置持久化,那么在 RabbitM 务重启之后,相关的交换器元数据会丢失,不过消息不会丢失,只是不能将消息发送到这个交换器中了。
继续阅读 »
写在前面的话:
关于OpenStack中的消息队列,我最早在2012年就做过相应的分析,但当时的代码与如今相比,结构已经发生了巨大的变化。但是,万变不离其宗,内部最基本的实现原理却没有发生大的变动。于是,我连着吃了两年多的老本。直到最近做项目时,碰到了ack相关的一些疑问,回过头来想根据代码排错时,发现已经完全弄不明白代码之间的跳转了,特别是oslo.messaging库,做了太多的封装和抽象。所以,决定还是花点时间和精力,再次把消息队列相关的知识做个梳理。而每次的梳理,我都会有新的体会和对问题新的看法,这也是我坚持写技术博客的主要原因之一。当然,以我一贯的风格,你会看到更多对实现原理的分析和总结。
继续阅读 »
1 频繁进入目录
cdpkg
cdpython
cdmatching
cdsched
cdd
cdm
cds
2 频繁执行长命令
git
docker
rabbitmq
3 代码的编译和运行
继续阅读 »
更新历史:
2017.10.06,更新一些命令
OpenStack 大多数项目中都依赖消息队列(默认是 RabbitMQ )在服务内部传递消息,同时,大多数关键项目(Nova、Cinder、Glance 等)也会将用户操作资源的动作以及资源的状态变化这些信息发送到消息队列,这些消息被称为 notification。任何对 notification 感兴趣的服务或组件都可以在消息队列上监听特定的 topic(默认是‘notifications’),从而获取这些 notification 并进行处理。OpenStack 官方推荐的获取 notification 的角色是 Ceilometer,其子项目 Panko 实现了对 notif
继续阅读 »