关于使用消息系统解耦系统集成的问题

问题描述

假使现在系统结构如图:1. Main App 发条TOPIC消息给各个应用系统;2. 收到后开始处理具体的业务,并将结果通过短信回复的方式返给main app;3. main app等待所有信息都返回成功结果,开始提交事务;现在主要的问题:1. 事务在什么时候提交? 是每个app自身处理业务的时候就提交,还是等main app再发消息去提交?2. 假使App1成功,App2,app3都失败了怎么处理?2. 假使app1, app2, app3都成功了,main app发送事务提交,然后有失败怎么处理?是通过JTA的方式去处理吗。。? 这样的速度能忍受么?求指点, 有相关资料最好! 谢谢!

解决方案

感觉这种场景不适合消息系统,因为消息系统是解耦合的,也就是说,需要解耦合的系统一般和主系统是没什么关系的,而你的场景是主系统需要等各个副系统的返回,所以建议直接在主系统调用各个系统的接口进行处理
解决方案二:
消息中心:1、解耦系统;2、削峰如果采用消息中心,不应该用技术的事务来解决业务,应该站在业务的本身去设计合理的业务流程和业务事务

时间: 2024-09-29 15:25:43

关于使用消息系统解耦系统集成的问题的相关文章

如何用消息系统避免分布式事务?(转)

http://www.cnblogs.com/LBSer/p/4715395.html 前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了. 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增

如何用消息系统避免分布式事务?

前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了. 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增加一条记录外,还得去商家账户表中找到这个商家并扣除广告费吧,怎么保证?!等等,相信大家或

使用xmlhttp和Java session监听改善站内消息系统

session|xml 使用xmlhttp和Java session监听改善站内消息系统 bromon 原创  引自:http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=25340 这个题目含有许多需要解释的概念,最容易说明的是"站内消息",这是很多论坛都有的功能,可以通过web向其他的在线用户发送消息,很多用户都使用过.站内消息的第一个好处是大家都不需要安装客户端,你不用知道对方的MSN或

xmlhttp和Java session监听改善消息系统

session|xml 这个题目含有许多需要解释的概念,最容易说明的是"站内消息",这是很多论坛都有的功能,可以通过web向其他的在线用户发送消息,很多用户都使用过.站内消息的第一个好处是大家都不需要安装客户端,你不用知道对方的MSN或者QQ,就能与他联系,称赞他的观点或者是给他一顿臭骂. 第二个好处是客户管理方便,利用session来维护在线名单,各种脚本都已经把session操作封装得很易用了,不用像其他无状态的即时通信工具(比如使用UDP通信的工具)一样,要费一些脑细胞来解决在线

.net 怎么做消息系统.....

问题描述 .net 怎么做消息系统..... 新人...老大叫我做oA中的一个消息系统 不知道怎么动手...求大神们指点...在线等 解决方案 要实时的还是非实时的消息系统? 解决方案二: Asp.net实现即时消息通讯(Ajax) http://blog.csdn.net/yanghua_kobe/article/details/5451910 解决方案三: 可以参考别人现成的: http://download.csdn.net/download/linginging000/2285517ht

Apache Kafka是分布式发布-订阅消息系统

转自: http://www.infoq.com/cn/articles/apache-kafka?utm_source=infoq&utm_medium=popular_links_homepage 简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交日志服务. Apache Kafka与传统消息系统相比,有以下不同: 它被设计为一个分布式系统,易

分布式消息系统jafka快速起步(转)

Jafka 是一个开源的/性能良好的分布式消息系统.在上一篇文章中有所简单介绍.下面是一篇简单的入门文档.更多详细的文档参考wiki. Step 1: 下载最新的安装包 完整的安装指南在这里.最新的发行版地址在:https://github.com/adyliu/jafka/downloads $wget https://github.com/downloads/adyliu/jafka/jafka-1.0.tgz $tar xzf jafka-1.0.tgz $cd jafka-1.0 可选配

Kafka(分布式发布订阅消息系统)

http://kafka.apache.org/ 目前越来越多的开源分布式处理系统如Apache Storm.Spark都支持与Kafka集成. 使用场景:设想这样一个情景:想分析用户在网站上的的浏览行为.这些浏览日志,存数据库浪费,直接存硬盘又怕到时候操作效率低. 此时,消息系统就是一个选择. 1.组件 Broker ['brəʊkə] n.经纪人 Kafka集群包含一个或多个服务器,这种服务器被称为broker.Topic 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic

《Spark大数据分析:核心概念、技术及实践》一1.4 消息系统

  本节书摘来自华章出版社<Spark大数据分析:核心概念.技术及实践>一书中的第1章,第1.4节,作者[美] 穆罕默德·古勒(Mohammed Guller),更多章节内容可以访问"华章计算机"公众号查看. 1.4 消息系统 数据通常从一个应用流向另一个.一个应用产生数据,而后被一个或多个其他应用使用.一般来讲,生成或发送数据的应用叫作生产者,接收数据的则叫作消费者. 有时候,产生数据的应用数量和使用数据的应用数量会出现不对称.比如,一个应用可以产生数据,而后被多个消费者