美文网首页
Spring Cloud微服务

Spring Cloud微服务

作者: 载zai | 来源:发表于2019-01-30 10:28 被阅读0次

    一个归档包包含了应用所有功能的应用程序, 我们通常称之为单体应用

    架构单体应用的架构风格, 我们称之为单体架构, 这是一种比较传统的架构风格。

    缺点:复杂性逐渐变高、技术债务逐渐上升、部署速度逐渐变慢、阻碍技术创新、无法按需伸缩

    架构的演进:单体架构-SOA-微服务

    微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。

    特性

    每个微服务可独立运行在自己的进程里;

    一系列独立运行的微服务共同构建起了整个系统;

    每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等;

    微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。

    优点:易于开发和维护、启动较快、局部修改容易部署、技术栈不受限、按需伸缩。

    缺点:运维要求较高、分布式的复杂性、接口调整成本高、重复劳动。

    设计原则:单一职责原则,服务自治原则,轻量级通信原则,接口明确原则。

    rpc(remote procedure call)远程过程调用:一个计算机通信协议,允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。

    例:Java RMI(Java Remote Method Invocation是Java编程语言里,一种用于实现远程过程调用应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。

    Java RMI极大地依赖于接口。在需要创建一个远程对象的时候,程序员通过传递一个接口来隐藏底层的实现细节。客户端得到的远程对象句柄正好与本地的根代码连接,由后者负责透过网络通信。这样一来,程序员只需关心如何通过自己的接口句柄发送消息。

    接口的两种常见实现方式是:最初使用JRMP(Java Remote Message Protocol,Java远程消息交换协议)实现;此外还可以用与CORBA兼容的方法实现。RMI一般指的是编程接口,也有时候同时包括JRMP和API(应用程序编程接口),而RMI-IIOP则一般指RMI接口接管绝大部分的功能,以支持CORBA的实现。

    最初的RMI API设计为通用地支持不同形式的接口实现。后来,CORBA增加了传值(pass by value)功能,以实现RMI接口。然而RMI-IIOPJRMP实现的接口并不完全一致。

    远程过程调用是一个分布式计算客户端-服务器(Client/Server)的例子,它简单而又广受欢迎。远程过程调用总是由客户端服务器发出一个执行若干过程请求,并用客户端提供的参数。执行结果将返回给客户端。由于存在各式各样的变体和细节差异,对应地派生了各式远程过程调用协议,而且它们并不互相兼容。

    相关文章

      网友评论

          本文标题:Spring Cloud微服务

          本文链接:https://www.haomeiwen.com/subject/tfyqsqtx.html