java中间件学习5-java远程通信基本原理

1、采用透明代理与调用者、服务提供者直连的解决方案

这里写图片描述

     如图,调用者只是从注册中心获取对应服务提供者的物理地址,通过对应的地址与服务提供者直连,这个时候就与注册中心无关,后期的调用对应接口就不会通过注册中心。
     这个里面使用最多的就是
     1、注册中心提供所有的服务提供者地址给调用者,然后调用者自己通过算法来连接服务提供者(可能通过轮询,随机,负载均衡设置);
     2、注册中心自己通过算法(可能通过轮询,随机,负载均衡设置),然后得出一个服务提供者地址,然后将地址返回给服务调用者。

这里说的各种算法,可能会根据不同的接口执行时间,方法调用次数,参数的的路由算法,主要根据是自己本身特征进行调用,比如一个类提供两个不同的方法,可能方法1执行时间50ms 方法2执行时间5s,如果不通过方法进行路由,那么可能造成方法1进行阻塞;具体路由方法可以考虑

2、服务端调用流控
在具体工程实践会有很多一次情况,我们需要控制系统流量保证系统的稳定性。主要控制调用服务端的流量。通常有两种:1、0-1的开光;2、设置阀值,控制一定数量
基于的维度大概两个:1、根据服务的端自身的接口、方法控制;2、根据来源做控制

3、序列化与反序列化处理
系统通过路由获取了对应的接口,那么是怎么调用远程接口的通信。
**首先,调用方通过一个约定的格式,将数据传递到服务端,其中包装调用的接口,方法,参数;其中约定格式可是 xml文件类型 也可以是json格式。
然后将格式序列化为二进制发送到服务端,服务端在接收数据以后,通过反序列化获取自己执行方法需要的数据,然后将结果封装到约定格式中,将数据序列化传递给调用者,通过这个流程来完成一个远程调用流程**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值