您的位置:首页 > 运维架构 > 网站架构

一种SOA架构的实现

2015-07-06 00:00 246 查看
摘要: 一、RPC (远程服务调用)
二、RPC与RMI区别
三、对服务进行优化
四、RPC的选择

一、RPC (远程服务调用)

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

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

二、RPC与RMI区别

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

三、对服务进行优化

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

1.简单的点对点服务:



2.服务治理



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

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

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

四、RPC的选择

可以选择Thrift来作为RPC方式,非常简单实用,我在之前的博客中已经提供了Thrift的使用方式以及简单原理。具体代码还没有写,只是提供一个思路,回头把代码写好了,在提供出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息