一种SOA架构的实现

一、RPC (远程服务调用)

        通过http,tcp/udp亦或者是其他什么网络协议来调用在不同服务上面的方法,就被称为Remote Procedure Call。RPC非常简单,首先就是数据的编码和解码,简单的来说就是一个对象如何去变成二进制在网络或者存储设备上传输以及从二进制流中解码出对象。

        RPC有很多别人已经写好的框架,譬如 thrift,web services 等等。


二、RPC与RMI区别

        RMI全称是Remote  Method  Invocation  ,实现了在不同JVM实例上面相互调用方法。和RPC的却别主要就是RPC跟语言无关的,比如你调用一个http接口,但是你可以不关心http的接口具体是用什么语言实现的。


三、对服务进行优化

        一个非常大的项目是有非常非常多不同的服务提供方,每个服务提供方可能有非常多的节点,提供相同的服务。相同的服务也可能有不同的版本。等等这样,会非常复杂繁杂,不利于管理和排错。

    1.简单的点对点服务:

190635_7QhW_2250599.png

    2.服务治理


191946_l4oC_2250599.png


1)首先要有一个注册中心,可以使用Zookeeper,来维护和提供服务方的地址,

2)服务节点启动之后向Zookeeper去注册服务。Zookeeper与各服务节点维持心跳检测。可及时检测到挂掉的节点。

3)消费者获取所有服务节点,缓存到Map中,依据轮询的方式来轮流使用相同的服务节点达到负载均衡。

    

四、RPC的选择

可以选择Thrift来作为RPC方式,非常简单实用,我在之前的博客中已经提供了Thrift的使用方式以及简单原理。具体代码还没有写,只是提供一个思路,回头把代码写好了,在提供出来。

转载于:https://my.oschina.net/u/2250599/blog/475306

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值