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

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



