分布式架构-一、基础篇
一、基础篇--前言
我将带大家从分布式架构基础入手,一步步探究分布式架构。
1、先来看几个概念
-
RPC:
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC的协议有很多,比如Java RMI、WebService的RPC风格、Hession、Thrift、REST API。
RPC框架代表有Dubbo,DubboX等 -
RMI:
RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个
Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。RMI只用于Java,支持传输对象。 -
JMS:
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
常用的消息中间件:ActiveMQ/RabitMQ/Kafka等。 -
WebService:
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。 -
RESTful:
一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST代表作品就是SpringBoot,分布式框架就是SpringCloud。
这几个概念贯穿了整个分布式架构,所以也是比较重要的。
2、比较SpringCloud和Dubbo
这两种框架各有优劣,SpringCloud功能比较完善,社区更新速度也比较快。Dubbo社区更新慢,功能也不完善。但是Dubbo配置简单,容易上手,阿里开源,源码看起来不吃力,很符合国人编码风格。SpringCloud版本更新交替太快,反而让程序员跟随版本无法适应,加之配置很多,维护成本随之增加,源码看起来吃力许多。