•
把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
1、一些列的独立的服务共同组成系统
2、单独部署,跑在自己的进程中
3、每个服务为独立的业务开发
4、分布式管理
5、非常强调隔离性
•目的:有效的拆分应用,实现敏捷开发和部署,支持水平扩充
•
RPC能够让本地应用简单、高效地调用服务器中的过程(服务)
1. 通信:假设通信的为A机器与B机器,A与B之间有通信模型。
2. 接口(服务)定位:使用给定的通信方式,与确定IP与端口及方法名称确定具体的过程或方法;
3. 远程代理对象:本地调用的方法(服务)其实是远程方法的本地代理,因此可能需要一个远程代理对象,对于Java而言,远程代理对象可以使用Java的动态对象实现,封装了调用远程方法调用;
4. 序列化:将对象名称、方法名称、参数等对象信息进行网络传输需要转换成二进制传输,这里可能需要不同的序列化技术方案。
•Spring Cloud
•Dubbo、DubboX(淘宝、当当)
•thrift(apache)
•Zero Ice
•grpc(google主导)