RabbitMQ双活实践(转)】的更多相关文章

有货RabbitMQ双活实践   消息服务中间件在日常工作中用途很多,如业务之间的解耦,其中 RabbitMQ 是比较容易上手且企业使用比较广泛的一种,本文主要介绍有货在使用 RabbitMQ 的一些实践与尝试. 有货的 RabbitMQ 部署架构采用双中心模式,在两套数据中心中各部署一套 RabbitMQ 集群,各中心的 RabbitMQ 服务除了需要为业务提供正常的消息服务外,中心之间还需要实现部分队列消息共享. 消息传递的可靠性 场景 1:生产者与消费者互不感知,怎么确认生产者已将消息投递…
背景: 最近一个项目的测试环境需要用到rabbitMQ,但运维和开发都没时间,于是自己试着安装了一发,发现安装很简单,记一笔如下: 安装步骤 查看官网上有不同的安装方法,可使用下载安装包或者直接通过其repository安装.我选择了第二种安装方式. 1.系统环境 针对不同类型的操作系统会有些不同,此处首先查看系统配置为Debian Wheezy.该版本系统在安装rabbitmq时需要用到debian的仓库依赖,然后安装,因此安装步骤为: 第一步,配置wheezy backports repos…
前言 本篇随笔将汇总一些我对消息队列 RabbitMQ 的认识,顺便谈谈其在高并发和秒杀系统中的具体应用. 1. 预备示例 想了下,还是先抛出一个简单示例,随后再根据其具体应用场景进行扩展,我觉得这样表述条理更清晰些. RabbitConfig: @Configuration public class RabbitConfig { @Bean public Queue callQueue() { return new Queue(MQConstant.CALL); } } Client: @Co…
在使用消息机制时,我们通常需要考虑以下几个问题: 消息不能丢失 保证消息一定能投递到目的地 保证业务处理和消息发送/消费的一致性 本文以RabbitMQ为例,讨论如何解决以上问题. 消息持久化 如果希望RabbitMQ重启之后消息不丢失,那么需要对以下3种实体均配置持久化: exchange queue message 声明exchange时设置持久化(durable = true)并且不自动删除(autoDelete = false): boolean durable = true; bool…
在本系列的前两篇文章中,笔者分别讲到了后端项目的代码模板和DDD编码实践,在本文中,我将继续以编码实践的方式分享如何落地事件驱动架构. 单纯地讲事件驱动架构(Event Driven Architecture, EDA),那是几十年前就出现了的话题:单纯地讲领域事件,那也是这些年被大量提及并讨论得快熟透了的软件用语.然而,就笔者的观察看,事件驱动架构远没有想象中那样普遍地被开发团队所接受.即便搞微服务的人都知道除了同步的HTTP还有异步的消息机制,即便搞DDD的人都知道领域事件是其中的一等公民,…
  本篇包含 1. RabbitMQ 的可靠性消息的发送 2. RabbitMQ 集群的原理与高可用架构的搭建 3. RabbitMQ 的实践经验   上篇包含 1.MQ 的本质,MQ 的作用 2.RabbitMQ 的特性,工作模型,交换机详解 3.Java API 编程,UI 管理界面 4.进阶知识:TTL.死信队列.延迟队列,服务端流控和消费端限流 5.Spring AMQP 核心组件 1. RabbitMQ 可靠性投递与高可用架构 1.1. 可靠性投递 在代码里面一定是先操作数据库再发送消…
消息队列(Message Queue,以下简称MQ)常用于异步系统的数据传递.若不用MQ,我们只能[在应用层]使用轮询或接口回调等方式处理,这在效率或耦合度上是难以让人满意的.当然我们也可以在系统间保持一个长连接,基于底层socket机制进行数据的实时收发,如果再将这部分功能独立成一个中间件,供项目中所有系统使用,就是我们今天所指的MQ. 对比&选择 以下以当前较为流行社区活跃度较高的两个MQ--RabbitMQ和Kafka做一比较,顺带提一提redis. 简单的小型系统可以使用redis,re…
前言 接上文,这个继续介绍RabbitMQ,并理解其底层原理. 介绍 RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列. 为什么使用RabbitMQ呢? 1.使得简单,功能强大. 2.基于AMQP协议. 3.社区活跃,文档完善. 4.高并发性能好,这主要得益于Erlang语言. 5.Spring Boot默认已集成RabbitMQ AMQP协议 AMQP基本介绍 AMQP,即Advanced Message…
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 + 涨薪必备 疯狂创客圈 经典图书 : <SpringCloud.Nginx高并发核心编程> 面试必备 + 大厂必备 + 涨薪必备 资源宝库: Java程序员必备 网盘资源大集合 价值>1000元 随便取 GO->[博客园总入口 ] 独孤九剑:Netty灵魂实验 : 本地 100W连接…
转: [Java进阶面试系列之一]哥们,你们的系统架构中为什么要引入消息中间件? **这篇文章开始,我们把消息中间件这块高频的面试题给大家说一下,也会涵盖一些MQ中间件常见的技术问题. 这里大家可以关注一下我的个人专栏<Java 进阶集中营>,会给大家即时分享一个最新的java资讯,有优秀的java技术内容,也欢迎分享在我的专栏.** JAVA 进阶集中营​zhuanlan.zhihu.com 那么,话不多说,继续刚才的话题,如果面试官看你简历里写了MQ中间件的使用经验,很有可能会有如下问题:…