RabbitMQ, Windows Server 上服务总线的替代品

https://www.robfox.io/2017/04/17/rabbitmq-alternative-service-bus-windows-server/

我想为复活节写点东西。为什么不是关于 RabbitMQ 呢?

数个月前,微软宣布不再支持其 Azure Service Bus Messaging。也被称为 Service Bus for Widnows Server。为什么呢?因为显而易见的是,未来所有人都在迁移到云和混合云。这是现实,大量的公司正在迁移,但是因为他们还需要再本地保持数据,这就需要做一些集成的工作。当前我们需要本地的工具而不能完全依赖于云解决方案。

幸运的是,我最近几个月正在一个项目上,实际处理本地解决方案中建议使用 RabbitMQ。比较微软的本地方案,我确实感到我们采用 RabbitMQ 而不是微软方案的好处。

为什么采用 RabbitMQ?

总结一下为什么我们选择 RabbitMQ,以及为什么未来我们会继续选择它:

  • AMQP 协议
  • 广泛采用,当前几乎是最为流行的队列方案
  • 成熟,当前是它的 10 周年庆典 ( 本文写于 2017 )
  • 独立,不需要 SQL Server ( 或者其它商用数据库 ),这是其优势,为什么我还需要付费给 SQL Server 呢?
  • 只需 2 台机器即可高可用,而微软的 Service Bus 需要至少 3 台机器
  • 跨平台,Windows, Linux 及 Mac
  • 支持所有流行的编程平台和语言
    • Python
    • Java
    • C#
    • Ruby
    • PHP
    • JavaScript
    • Go
  • 内置管理门户可以管理所有方面。对我来说是很大的优势。
  • 内置的状态分析,对于交换、队列,还有内存使用和队列级别的磁盘使用。甚至可以看到当前存在哪些监听器和连接
  • 友好的文档

至于缺点?当然有,我只考虑到 2 个:

  • 没有 BizTalk 的适配器
  • 不得不基于 Rabbit 的方式来使用

支持与云

尽管 RabbitMQ 是开源产品。还是存在多种方式获得支持。Pivotal 可能是最好的。

如果需要,还可以在云中使用它。

与 Service Bus Messaging 有何不同?

如果最后归结为习惯术语和协议的实现。 这并没有那么不同。 在 不同的是,Microsoft 方案简单,只有队列和主题,而 RabbitMQ 中的方法有点不同。

RabbitMQ 使用 exchanges 工作。任何发送到 RabbitMQ 的消息都都发送到一个 exchange。exchange 的类型决定了它如何工作。有如下 4 种类型:

  1. headers
  2. fanout
  3. topics
  4. direct

下面我概述这些类型,以后的文章会详细说明。

Headers

Headers exchange 基于发送到当前队列的消息头。

Fanout

Fanout 简单直接地将接收到的所有消息发送到绑定的队列

Topics

主题的 routing key 通过中间点发送,并且使用正则表达式匹配订阅,消息只会发送到与绑定中的模式匹配的队列

Direct

将消息发送给配置了完全相同的 key 的队列

Linux

在这一切的过程中,RabbitMQ 也让我重新开始使用 Linux - 在我的例子中是 Ubuntu。好吧,尽管 RabbitMQ 可以和 .Net Core 在 Windows Server 机器上运行,但有一些开源的东西可以让它在 Linux 上运行。

我至少有 10 年没有接触过 Linux(在内部,我的网站都在 Linux 上运行)并且不得不重新开始使用它。几个小时后,我再次掌握了窍门。而且,就像我之前说的,你永远不会太老而不能学习。试一试。

这将需要几个小时(以及几天或几周)的混乱,但我很确定从长远来看我们将需要它。越来越多的事情发生在开源领域。甚至 .Net 也是开源的并在 Linux 上运行。有一天将不再有借口为 RabbitMQ 等小型解决方案部署(昂贵的)Windows 机器,而这些知识将派上用场!

下载 MabbitMQ

不,这不是一篇拉票的文章。我是真的喜爱 RabbitMQ。极快的安装,多平台支持,多语言支持,开箱即用的管理界面,以及友好的在线文档。易于上手,我总是建议在本地队列机制中采用它。

下载 RabbitMQ 并尝试它。如果你是 Winodws 使用人员,只需要下载 Windows 版本的安装器并安装即可。如果是 Ubuntu 使用人员,就是用 apt-get 库来安装它,是的,特别简单。

官网地址:https://www.rabbitmq.com

RabbitMQ, Windows Server 上服务总线的替代品的更多相关文章

  1. 在WINDOWS SERVER 上或远程桌面中使用 MUTEX

    引用: http://www.cnblogs.com/fg0711/archive/2012/05/03/2480502.html 使用Mutex需要注意的两个细节 可能你已经注意到了,例子中在给Mu ...

  2. 一起来当网管(一)——Windows Server上的DHCP配置

    学校实验室里大大小小设备还不少,网络环境虽说不复杂,但也比家用的复杂一些.就当练练手吧,刚好写点文章,免得以后实验室网络没人管了.那么就先从DHCP的配置来讲吧! 1.DHCP是什么.有什么用 DHC ...

  3. 在 Windows Server 上搭建 *** 服务端(转载加亲测)

    转载自:https://diveng.io/build-shadowsocks-server-on-windows-server.html 下面的教程建议大家使用第一种方法安装,说是比较简单.我则使用 ...

  4. Windows server上rsync的安装和使用

    获取和安装 首先从rsync官网下载软件的安装版本,注意这里要下的是客户端版本,而非服务端版本. 下载完成之后,双击"cwRsync_4.0.5_Installer.exe"图标, ...

  5. 在Windows Server上安装ASP.NET时失败,提示not enough storage is available to process the command

    今天在部署ASP.NET网站时出现IIS 500.21错误.环境是Windows Server 2012 +IIS8 于是查找解决方案,发现网上的信息都说是需要重装.NET framerwork4.0 ...

  6. Windows Server上用命令来起停IIS站点

    平时,在Server上管理IIS,都是在界面上进行一些配置,然后再做一些start和stop操作... 对于配置的人来说,会做一些重复步骤,所以适当的使用命令,能大大提高效率. 下面命令是自己之前使用 ...

  7. 批量添加删除Windows server DNS服务 恶意域名 * A记录 指向 127.0.0.1(2019年6月5日更新)

    下载链接:https://pan.baidu.com/s/1OUHyvnIfXYF0PdiT-VRyHw  密码:7gjj 注意!本解决方案在本地的Windows server服务器上把恶意域名指向1 ...

  8. 如何在windows server上安装 Windows评估和部署工具包

    此文是<.NET内存宝典>一书的售后服务系列文章之一. 在<.NET内存宝典>一书(目前我还在翻译本书,预计年底出版)的第3章 “内存测量”里的“Windows性能工具包”一节 ...

  9. Windows Server上部署IoTdb 集群

    本文是参考官方的 IoTDB 集群版(1.0.0)的安装及启动教程:https://iotdb.apache.org/zh/UserGuide/V1.0.x/Cluster/Cluster-Setup ...

  10. Nagios 监控windows server Apache 服务

    监控机需要使用check_apachestatus.pl插件插件下载地址:https://exchange.nagios.org/directory/Tutorials/Other-Tutorials ...

随机推荐

  1. 【赵渝强老师】大数据分析引擎:Presto

    一.什么是Presto? 背景知识:Hive的缺点和Presto的背景 Hive使用MapReduce作为底层计算框架,是专为批处理设计的.但随着数据越来越多,使用Hive进行一个简单的数据查询可能要 ...

  2. 基于AIOps实现智慧园区极简IT运维

    随着物联网.云平台.大数据.人工智能等技术的发展,并逐步投入到智慧园区的建设,传统园区数字化转型加快.园区的形式包括产业园区.教育园区.制造业园区.科研园区.社区等等,园区形态不断演进和发展,园区网承 ...

  3. 一些OI常用小技巧啊

    1.卡常 \[---总有人以为自己比编译器聪明 \;\;\;by\;\;bezel \] 我们可能确实没有编译器聪明,但是,为了防止CCF的老人机出现什么问题,卡一卡常还是有必要的. 如果实在被逼无奈 ...

  4. 将Vscode添加右键打开文件夹功能

    1. wan + r 输入 regedit 打开注册表 注册表编辑 2. 找到 HKEY_CLASSES_ROOT\*\shell分支 3. 在shell下新建"VisualCode&quo ...

  5. (系列六).net8 全局异常捕获机制

    说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...

  6. activiti教程

    一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者之间按照某种预定义的规则自动进行传递文档.信息或任务的过程,从 ...

  7. 二叉树遍历Java版(前中后序的递归,迭代,Morris以及两种特殊的先序遍历)

    二叉树的遍历 先序 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode l ...

  8. Redis的发布订阅Pub/Sub

    发布订阅 Redis 发布订阅(publish/subscribe)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 ...

  9. NOIP2015 提高组 子串

    NOIP2015 提高组 子串 感觉是最长公共子序列模型的变式. 容易想到记 \(f[i][j][k]\) 表示 \(A\) 走到了第 \(i\) 位,\(B\) 匹配上了 \(1 \sim j\), ...

  10. html换行的方法

    1.使用<br> 1 <html> 2 <body> 3 <p> 4 春眠不觉晓,<br />处处闻啼鸟.<br />夜来风雨声 ...