分布式系统的那些事儿(四) - MQ时代的通信

之前在讲RPC通信的各种好处,特别好用,但是RPC并不是万能的,也并不是适用于各种场景的,因为他是同步的;现如今很多场景下的调用都是异步的,系统A调用B后,并不需要知道B的结果,而且对B的结果无所谓,甚至你B挂了都无所谓,那么这个时候使用消息队列是十分OK的。

最简单的场景就是发送短信和email,主机不需要知道是否发送成功与否,就算失败了,哪怕再发一次也无所谓。

常见的MQ主要有JMS,RabbitMQ,ActiveMQ,Kafka以及RocketMQ,值得一提的是RocketMQ是阿里出的开源消息队列,很好用噢。

简单来说MQ可以支持点对点,点对多,订阅模式的各种消息,非常使用。举个非常我们自己使用过的例子,我们每周一三五的凌晨会有运维人员手动来执行一些数据操作,每个操作的实际大约20分钟,任务有先后顺序,执行完后需要查看上一个操作是否完毕再进行下一个操作,这样导致运维人员会很累,所以后来采用MQ来做这些任务,定时任务开始运行后,那么每个任务完成后只要调用对应的MQ就能达到人工的效果。一举两得。

关于消息队列的一些文章在之前都有写过,具体可以参考以下链接:

RabbitMQ 整合Spring 实现多客户端发送消息队列

RabbitMQ 一二事(5) - 通配符模式应用

RabbitMQ 一二事(4) - 路由模式介绍

RabbitMQ 一二事(3) - 订阅模式(微信公众号模式)的应用

RabbitMQ 一二事(2) - 工作队列使用

RabbitMQ 一二事 - 简单队列使用

分布式系统的数据一致性(在这里先不讲事务的一致性,后面会讲)

当数据被分在多地存储的时候,那么数据被读取的时候的一致性对用户是需要做保障的。这里分为强一致性和弱一致性

强一致性:保证用户不论何时何地,在华北还是华南,中国还是美国,同一时间访问到的数据是一致的,并不会出现差异性,这样的做法其实不多,消耗代价十分绝大,对运维团队的考验也十分严格。

弱一致性:保证用户访问数据的速度是OK的,但是数据内容可能随着时间的不同地点的不同会有差异。比如我在公司VPN环境下访问到的一些电商数据基本是实时的,更新速度很快。而我在下班以后在家访问却发现白天发布的数据并没有更新,需要在凌晨访问的时候数据才会更新过来,这样的做法就是数据的持续更新,服务端不会在乎客户访问的内容如何,虽然有时间地点的偏差,但是保证你能够访问到即可。

原文发布于微信公众号 - BeJavaGod(wxleechenxiang)

原文发表时间:2017-06-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

APT攻击演练之捕鱼人的构想

两个环节:beef-xss钓鱼环节(建议使用服务器)、Nday钓鱼环节(很好用)、钓鱼框架环节(便携好用)

1154
来自专栏腾讯技术工程官方号的专栏

你不知道的Android SDK安全测试

image.png 作者介绍:anglia,2014年加入腾讯TEG,一直致力于信鸽和MTA两款产品的移动终端 引言 作为Android手机用户中的一枚残粉...

2525
来自专栏游戏杂谈

PhoneGap Build的使用

      纯粹属于闲折腾的结果,只是这中间还遇到一些问题,记录一下。因为没有IOS的开发key,所以这里只发布成功Android系统的安装程序。之前写过一篇构...

2533
来自专栏安恒信息

邮箱安全服务专题 | 发现那些对钓鱼邮件安全意识淡薄的员工

上一期我们介绍了针对邮箱应用层和协议层面的安全检测,目前针对邮箱系统自身风险的服务内容已经向大家介绍完了。然而保障了邮箱自身的系统安全还是远远不够的,每一篇邮件...

40510
来自专栏Python中文社区

QQ空间爬虫最新分享,一天 400 万条数据

前言 本文为作者对其开源项目QQSpider的说明文档。主要替换了程序里一些不可用的链接,对登录时的验证码作了处理,对去重队列作了优化。并且可以非常简单地实现爬...

4307
来自专栏FreeBuf

记一次服务器被入侵的调查取证

*本文原创作者:fish1983,本文属FreeBuf原创奖励计划,未经许可禁止转载

7021
来自专栏依乐祝

.NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练

上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概...

1020
来自专栏企鹅号快讯

bt、磁力怎么下载?老司机飙车终极思路……

百度云解析失败,迅雷也是如此?无法下载BT!5大高分下载神器,你用过几个? ——wit小学生 最近好多小伙伴们向小学生吐槽,下载的BT不是没进度就是提示敏感资源...

6.7K10
来自专栏FreeBuf

浅谈开源web程序后台的安全性

一、前言 不知怎的最近甚是思念校园生活,思念食堂的炒饭。那时会去各种安全bbs上刷刷帖子,喜欢看别人写的一些关于安全技巧或经验的总结;那时BBS上很多文...

2049
来自专栏从零开始的linux

web

Web网络服务也叫 WWW(World Wide Web),一般是指能够让用户通过浏览器访问到互联网中文档等资源的服务。目前提供WEB网络服务的程序Ap...

3236

扫码关注云+社区