消息中间件与RPC若干问题简析

来源:互联网 发布:淘宝哪里看直播 编辑:程序博客网 时间:2024/06/05 08:42
1、消息中间件和消息通信与RPC各自具有怎样的优势,如何互补
消息中间件主要实现的是异步、弹性消息以及队列,弹性消息有时可以借助于外存从而一定程度上可以实现峰值缓存,有效均衡服务器端压力,同时消息可以进行一定程度上的定于,从而实现了基于分组的广播,同时可以实现消息订阅;
RPC则是主要集中于外部的方法调用,通过某种通讯方式实现数据的集中调用与访问,以简单通讯协议为像本地方法一样完成远程方法调用;
ZeroMQ其实可以当成是一种互补的一种体现,首先定义通讯模式完成消息中间件中的访问,同时在通讯的过程中可以进行相应的转换,转换目的比较明确,所以可以以i提高访问的速度;
2、nanomsg里关于ZerocMQ的缺陷
在传输协议上,nanomsg构建了用于新传输协议的api,从而使用户不需要再囿于某种特定的传输协议,同时可以按照自己的实际需求动态插拔协议,从而使应用场景更加灵活;
在兼容性方面,现在实现了POSIX的完全兼容,同时API本身也从一定程度上带来简化;
nanomsg是县城安全的,与之对应,这也是ZerocMQ无法改变,ZeroMQ每个对象都被隔离自己的线程,并且通过消息进行传输,然而套接字的传输并非线程安全地;
nanomsg使用基数树的方式存储订阅关系,而并非想ZeroMQ一样建立trie结构,所以不需要进行拷贝,同时在拷贝过程中支持RDMA;
在调度方法方面ZeroMQ使用轮换,然而取法路径的感知,所以导致访问效率上可能会打一些折扣;
同时nanomsg提供了nanocat工具进行系统交互;
3、假如开发一个高吞吐的订单服务,需要手机端、网页端、以及其他第三方接口调用,为了保证高吞吐,如何用RPC+消息队列方式来实现
首先,项目的设计必须基于业务,首先需要将对业务进行分类,并且分析出业务可能存在的交互点,分析出那些业务的实时性比较高,那些业务并非需要实时计算;
其次,在进行订单提交的过程中可以一定程度上进行一定延时受理,即首先乐观地认为订单是全部受理的然后在后端构建一个分布式的订单处理队列,对用户提交订单进行受理;
再次,如果想增强体验的话可以在订单提交过程中同时使用RPC保持一个持久连接,在用户订单有一定效果的的时候给用户一定反馈;
最后,在进行访问的过程中需要在调用过程中注意一定的安全认证机制,必要时使用简化token方式进行交互,而类似于这样的业务可以使用rpc直接进行调用;
0 0
原创粉丝点击