主动数据传输与远程过程调用:分布式事务环境下的技术解析
1. 网络资源连接风格
会话、消息传递和远程过程调用(RPC)是网络资源连接的不同风格。它们各有优势:
- 会话 :速度更快且更安全,但固定不变,缺乏灵活性。
- RPC :编写和执行更简单,风格更灵活,但需要知识工程机器周期来保证性能。
为防止重复调用,采用远程过程机制的解决方案需谨慎避免重复执行调用。通常,调用者会在数据包上添加唯一的调用者标识和调用序列号,接收者则跟踪每个调用者的最后序列号。若调用者等待回复,可询问接收者情况,若接收者无响应,最好中止事务。此外,ACKINAK(确认/不确认)存在通信开销,建议采用端到端的确认策略,而非逐包确认。
在单机上,可使远程过程调用与本地过程调用一样快,但受地址空间切换成本的限制。在多机之间,优化包括将调用封装在一个数据包中,并确保服务器执行时间足够短。
以Tuxedo实现为例,在通过事务性RPC执行客户端 - 服务器通信时,监视器会传播事务上下文,通过RPC发送请求并获取回复,系统调用运行时例程进行编组。每个节点都有公告板,名称到服务器的映射在共享内存中进行节点内处理,消息发送到Unix消息队列,每个服务器进程有一个队列。为实现负载均衡,Tuxedo在公告板上记录服务器统计信息,并按服务名称设置优先级,动态优先级方案会覆盖静态方案。
2. 远程过程调用的机制
实现交互式事务需要与参与事务处理的设备建立敏捷的通信路径,可采用不同方法,其中之一是程序间通信。在数据库密集型操作中,实现交互式事务处理机制有多种替代方法和模型,最
分布式事务中的RPC与数据传输解析
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



