分布式架构-一、基础篇

我将带大家从分布式架构基础入手,一步步探究分布式架构。

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版本更新交替太快,反而让程序员跟随版本无法适应,加之配置很多,维护成本随之增加,源码看起来吃力许多。