分布式系统消息中间件——RabbitMQ的使用基础篇

分布式系统消息中间件——RabbitMQ的使用基础篇 前言     我是在解决分布式事务的一致性问题时了解到RabbitMQ的,当时主要是要基于RabbitMQ来实现我们分布式系统之间对有事务可靠性要求的系统间通信的。关于分布式事务一致性问题及其常见的解决方案 ... »

RabbitMQ客户端开发向导

Ⅰ、高层接口 ConnectionFactory Connection Channel Consumor Ⅱ、操作流程及API 【一】创建连接工厂ConnectionFactory ​ 我们可以为 设置各种参数来进行连接初始化 【二】创建连接Connection 【三】创建信道Channel 知识点 ... »

RabbitMQ学习第四记:路由模式(direct)

1、什么是路由模式(direct) 路由模式是在使用交换机的同时,生产者指定路由发送数据,消费者绑定路由接受数据。与发布/订阅模式不同的是,发布/订阅模式只要是绑定了交换机的队列都会收到生产者向交换机推送过来的数据。而路由模式下加了一个路由设置,生产者向交换机发送数据时,会声明发送给交换机下的那个路 ... »

[译]RabbitMQ教程C#版 - 主题

先决条件 本教程假定RabbitMQ已经安装,并运行在 标准端口(5672)。如果你使用不同的主机、端口或证书,则需要调整连接设置。 从哪里获得帮助 如果您在阅读本教程时遇到困难,可以通过邮件列表 "联系我们" 。 主题 (使用.NET客户端) 在 "教程[4]" 中,我们改进了我们日志系统。我们用 ... »

ASP.NET Core 2.0利用MassTransit集成RabbitMQ

在ASP.NET Core上利用MassTransit来集成使用RabbitMQ真的很简单,代码也很简洁。近期因为项目需要,我便在这基础上再次进行了封装,抽成了公共方法,使得使用RabbitMQ的调用变得更方便简洁。那么,就让咱们来瞧瞧其魅力所在吧。 ... »

[译]RabbitMQ教程C#版 - 路由

先决条件 本教程假定RabbitMQ已经安装,并运行在 标准端口(5672)。如果你使用不同的主机、端口或证书,则需要调整连接设置。 从哪里获得帮助 如果您在阅读本教程时遇到困难,可以通过邮件列表 "联系我们" 。 路由 (使用.NET客户端) 在 "教程[3]" 中,我们构建了一个简单的日志系统, ... »

RabbitMQ一个简单可靠的方案(.Net Core实现)

前言 最近需要使用到消息队列相关技术,于是重新接触RabbitMQ。其中遇到了不少可靠性方面的问题,归纳了一下,大概有以下几种: 1. 临时异常,如数据库网络闪断、http请求临时失效等; 2. 时序异常,如A任务依赖于B任务,但可能由于调度或消费者分配的原因,导致A任务先于B任务执行; 3. 业务 ... »

RabbitMQ 可靠投递

在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两个选项用来控制消息的投递可靠性模式。 rabbitmq 整个消息投递的路径为: producer->rabbitmq broker cluster->exchange->queue... ... »

.NET Core微服务之开源项目CAP的初步使用

本篇首先简单介绍了一下CAP这个开源项目,然后基于上一篇中的下订单的小案例来进行了基于CAP的改造,并通过一个实例的运行来看到了结果。当然,这个实例并不完美,很多点都没有考虑(比如消息端消费时的幂等性)和失败重试的场景实践等等等等。由于时间和精力的关系,目前只使用到这儿,以后有机会能够应用上会研究下... ... »

.NET Core微服务之基于MassTransit实现数据最终一致性(Part 2)

本篇主要基于一个小案例(订单业务处理场景),首先介绍了其业务场景与基本业务流程,然后通过介绍相关的每个服务的代码实现,最后通过一个快速的测试演示了数据如何达到最终一致性。当然,这个小案例并不完整,没有对重试的补偿机制以及失败后的回滚机制进行演示和测试,不过有兴趣的朋友可以自行改代码实现。最后,再次强... ... »

RabbitMQ入门:总结

随着上一篇博文的发布,RabbitMQ的基础内容我也学习完了,RabbitMQ入门系列的博客跟着收官了,以后有机会的话再写一些在实战中的应用分享,多谢大家一直以来的支持和认可。 RabbitMQ入门系列一共有8篇随笔: 以上博文相关demo的源码已经传至我的码云:https://gitee.com/ ... »

RabbitMQ入门:远程过程调用(RPC)

假如我们想要调用远程的一个方法或函数并等待执行结果,也就是我们通常说的远程过程调用(Remote Procedure Call)。怎么办? 今天我们就用RabbitMQ来实现一个简单的RPC系统:客户端发送一个请求消息,服务端以一个响应消息回应。为了能够接收到响应,客户端在发送消息的同时发送一个回调 ... »

RabbitMQ入门:路由(Routing)

在上一篇博客《RabbitMQ入门:发布/订阅(Publish/Subscribe)》中,我们认识了fanout类型的exchange,它是一种通过广播方式发送消息的路由器,所有和exchange建立的绑定关系的队列都会接收到消息。但是有一些场景只需要订阅到一部分消息,这个时候就不能使用fanout ... »

RabbitMQ入门:发布/订阅(Publish/Subscribe)

在前面的两篇博客中 RabbitMQ入门:Hello RabbitMQ 代码实例 RabbitMQ入门:工作队列(Work Queue) 遇到的实例都是一个消息只发送给一个消费者(工作者),他们的消息模型分别为(P代表生产者,C代表消费者,红色代表队列): 这次我们来看下将一个消息发送给多个消费者( ... »

RabbitMQ入门:工作队列(Work Queue)

在上一篇博客《RabbitMQ入门:Hello RabbitMQ 代码实例》中,我们通过指定的队列发送和接收消息,代码还算是比较简单的。 假设有这一些比较耗时的任务,按照上一次的那种方式,我们要一直等前面的耗时任务完成了之后才能接着处理后面耗时的任务,那要等多久才能处理完?别担心,我们今天的主角-- ... »

RabbitMQ在特来电的深度应用

特来电是一个互联网公司,而且是技术非常先进的互联网公司。互联网公司的标配是什么?答案就是缓存+MQ。没错,您没看错,就是MQ--消息队列,我们今天要说的RabbitMQ就是消息队列的其中一种,而且是功能非常强大的一种。那么RabbitMQ在特来电是如何应用的呢。这就是今天这篇博文的目的,让您知道Ra ... »

大话RabbitMQ入门

写在前面 近些年微服务越来越火,让我也忍不住想去一窥微服务究竟,讲到微服务,就离不开分布式,而分布式,也离不开消息队列,在消息队列中,RabbitMQ可以说是比较具有代表性的一款。 这里是一篇介绍消息队列以及各种消息队列产品对比的文章,讲得很好,有兴趣的可以看一看。 https://cloud.te ... »