工作中感受到的消息中间件在分布式系统中的使用场景
2015-09-09 00:18
549 查看
经历
以前在qunar实习,第一次接触消息中间件,那时候概念还不清楚,朦朦胧胧有个初步认识,现在正式工作了,又一次接触了消息中间件,初步总结几种场景。场景
1.分布式系统中,不同系统之间传递消息。比如系统B要监听系统A的消息,当A发出消息的时候,系统B根据消息,做相应的变化。这个场景很容易理解,就是不同系统之间的异步交互。
2.在系统A中,自己发消息,自己监听。这个场景是我在现在工作中遇见的,当时看到自己的系统监听消息,下意识就想,是哪个系统发送的消息呢?后来问了别人才知道,是自己系统发消息,自己监听。为什么要这样做,自己系统中,直接可以调用到自己内部的一些方法了呀?原来这样做的原因有如下,首先,发送消息可以实现异步做一些动作,比如我们对一些信息做了修改,这些信息要同步到另一个系统中,我们有一种方法是,在一个事务里,做完修改就立刻调用另一个系统的modify方法,但是这样有一个问题,如果这个事务中很多方法,很可能导致调用超时,或者我们这一个方法体中,有多个调用,会导致系统耦合性太强,如果我们通过发送消息的方式调用,就做到了在本方法体中减少了方法调用,调用移动到了消息监听者中。这样不仅方法体中调用减少,而且做到了松耦合。
以上是在工作中的感悟,但是我有一个担心,发送消息会不会导致消息丢失,这样的可靠性就需要一个高可靠的消息中间件来保持了,有利有弊吧。
相关文章推荐
- mysql函数之——控制流函数
- Ibatis和myIbatis 返回插入的主键ID
- zookeeper集群安装配置
- poj 2464(区间更新)
- Unity3D占用内存太大的解决方法
- 【Android】2015.09.08 第一行代码 Day6 Count:8
- PE格式详细讲解10 – 基址重定位
- 使用Python与openpyxl进行表格处理(一)——读取数据
- uva 11526 H(n)
- ps笔记
- 一元线性回归(原理)
- XML解析技术之VTD-XML 简介及代码实例
- Sbt仓库设置
- 复制文件夹内 所有文件 到另一个文件夹!!
- dig命令
- Mysql 的左连接与右连接区别
- 我的导航
- 控制器管理
- 以前写的一段aop,远程接口调用的日志。
- shell脚本是否作为单独的一个进程执行?