博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一种SOA架构的实现
阅读量:6873 次
发布时间:2019-06-26

本文共 734 字,大约阅读时间需要 2 分钟。

hot3.png

一、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

你可能感兴趣的文章
jsp---语句对象Statement
查看>>
RESTful API
查看>>
前端UI框架总结
查看>>
Atom 初识
查看>>
每日英语:Poor Chinese Schools Tell Students: Bring Your Own Desks
查看>>
HDU 4268
查看>>
JavaScript 生成Guid
查看>>
用c++和python写GUI程序(python嵌入方式)
查看>>
2013年8月3日第31周六
查看>>
Android使用隐藏api的方法(使用被@hide的api)
查看>>
Robert Penner's Easing Functions
查看>>
Parallel for loops in .NET C# z
查看>>
mysql alter修改字段的长度 类型sql语句
查看>>
第24周二
查看>>
如何处理数组越界而不会让程序崩溃?
查看>>
比较排序算法
查看>>
Quartz.NET作业调度框架详解
查看>>
Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
查看>>
C++内存未释放的情况
查看>>
请保护我们的地球
查看>>