1.客户从服务总线请求获取服务对象。
2.服务总线根据已注册的数据来找到该服务对象信息,如和客户端不在一个服务器类,返回一个远程代理,如在一个服务器类,返回一个包含本地服务对象的本地代理总之都是返回一个代理,对用户来说是透明的
3.客户调代理的方法, 如该代理是本地代理,直接调本地服务对象方法,并返回就结束
4.如是远程代理,远程代理先获取该远程服务器在本地对应的远程处理对象,如没有则创建一个,并缓存它
5.远程处理对象根据这次请求生成一个唯一的sessionid,封装到session对象中,
6.如第一次连接远程机器,则创建连接socket,并缓存到该远程处理对象中,远程处理对象同时起另外一个监视线程来监视socket输入流信息
7.按照请求消息体得格式,将请求报文写入到socket的输出流中,并刷新流
8.获取响应(如响应还没有到,。session对象阻塞)
9.监视线程获取到了响应后,将按照响应消息体格式将响应一次读出来。并根据响应中的sessionid来匹配缓存中的Session对象。并唤醒此对象
10.session对象解析响应报文,并重新序列化成对象
11.远程代理将返回结果返回给调用者
注意:如果采用字节流传输,而字节是8位的,所以像Java的int (32位) 等都需要通过移位与反移位将其转化为字节来传输,否则就是失去数据
分享到:
相关推荐
分布式服务调用链客户端在Java开发的分布式应用中扮演着至关重要的角色。它主要用于记录和追踪微服务架构中的服务调用流程,以便于理解和优化系统的性能、定位问题以及实现更高级别的监控。在这个场景下,"eva233man...
在这个"Java Socket 通信服务与客户端完整示例"中,我们可以深入理解Socket通信的原理以及如何在实际项目中应用。 1. **Socket基本概念** - **ServerSocket**: 服务器端使用的类,用于监听客户端的连接请求。 - *...
在本项目中,"C#使用SuperSocket实现自定义协议实现CS架构服务器和客户端程序设计"),开发者利用C#编程语言以及SuperSocket开源库构建了一套C/S(客户端/服务器)架构的应用。SuperSocket是一个轻量级、高度可扩展的...
- **设计复杂度**:实现TCC模式需要对业务流程有深入的理解,并设计相应的事务处理逻辑,这可能会增加系统的复杂度。 - **错误恢复**:虽然TCC模式提供了错误恢复机制,但在某些极端情况下可能仍难以完全避免数据不...
### 分布式-多活数据中心...通过对DNS原理和技术细节的理解,我们可以更好地设计和优化DNS配置,以实现高效、稳定的网络服务。特别是在负载均衡和故障恢复方面,DNS发挥着不可替代的作用,为企业提供了强大的技术支持。
总之,这个项目通过Java RMI展示了如何实现一个简单的天气查询服务,让客户端能够在不了解服务器内部实现细节的情况下,方便地获取天气信息。然而,实际应用中,还应考虑更多的因素,如性能优化、错误处理和安全性...
### DCOM与CORBA对比分析 #### 一、引言 ...两种模型都旨在简化分布式系统的开发,但在实现细节和技术选择上有所不同。对于希望了解这两种模型差异性的开发者来说,掌握这些基本信息是非常有帮助的。
接着,启动客户端程序,输入服务器的地址和端口,建立连接后,客户端可以向服务器发送请求,服务器接收到请求后处理并返回响应,这样就实现了基本的服务器-客户端通信流程。 总的来说,这个项目提供了一个学习和...
这些接口使得客户端能够识别和调用远程对象的服务。 2. **远程对象(Remote Object)**:实现了远程接口的类实例,运行在服务器端,负责处理客户端的请求。 3. **ORB(Object Request Broker)**:虽然RMI自身不...
双工模式允许服务与客户端之间进行双向通信,即服务可以主动向客户端发送消息,而不仅仅是响应客户端的请求。 在双工通信中,我们需要使用一个能够支持双工契约的绑定,例如`NetTcpBinding`。双工契约可以通过两种...
- 代码透明性:客户端无需知道远程对象的实现细节,只需调用接口即可。 - 自动处理网络通信:RMI库负责数据的序列化、网络传输和异常处理。 - 高效:由于Java字节码的特性,RMI可以实现高效的远程调用。 5. **...
- **客户端桩(Stub)**:客户端桩充当了一个代理角色,它封装了所有与远程服务交互所需的网络通信细节,使客户端能够像调用本地方法一样调用远程服务。 - **服务端框架(Skeleton)**:服务端框架则负责接收来自...
cpp-TANK的工作流程大致如下:首先,日志数据通过客户端API被发送到日志收集器;然后,收集器对数据进行预处理和压缩,再分发到多个存储节点;最后,存储节点按照时间序列或者其他索引策略保存日志,便于后续查询和...
RPC的通信流程如下:客户端调用远程过程时,会将调用信息封装成消息发送给服务端;服务端收到消息后,由服务端存根解析消息并执行相应的过程调用;调用完成后,将结果返回给客户端存根,客户端存根将结果传递给原始...
### 分布式服务协议Paxos原理 #### 1. Paxos原理简介 Paxos是一种基于消息传递的一致性算法,由Leslie Lamport在1990年提出,并在近年来得到了广泛应用。该算法的核心目标是在分布式系统中达成一致性的决策。尽管...
Java RMI(Remote Method Invocation,远程方法调用...通过分析提供的"RMI 远程方法调用"资源,你可以深入了解RMI的实现细节,包括创建远程接口和实现、注册远程对象、调用远程方法等步骤,从而在实际项目中灵活运用。
- 当接收到客户端数据时,服务器可以处理这些数据,并通过`EV_WRITE`事件向客户端发送响应。 3. **实现TCP客户端**: - 客户端需要连接到服务器,创建一个套接字,并将其注册到`libevent`,监听`EV_WRITE`事件,...
在“电信设备-服务端和客户端间通过服务管理进行进程间通信的方法及系统”这一主题中,我们将深入探讨如何在服务端和客户端之间有效地实现这一通信模式,特别是在电信设备的背景下。 首先,服务端和客户端架构是...
本示例着重讲解如何使用C++语言实现客户端与服务器之间的TCP通信。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,常用于需要稳定数据传输的场景。 首先,我们要理解...