微服务

微服务架构下,服务调用主要依赖下面几个基本组件:

  服务描述

    服务调用首先要解决的问题就是服务如何对外描述。

    常用的服务描述方式包括RESTful API、XML配置以及IDL文件三种。

    其中,RESTful API方式通常用于HTTP协议的服务描述,并且常用Wiki或者Swagger来进行管理。

  注册中心

    有了服务的接口描述,下一步要解决的问题就是服务的发布和订阅,就是说你提供了一个服务,如何让外部想调用你的服务的人知道。这个时候就需要一个类似注册中心的角色,服务提供者将自己提供的服务以及地址登记到注册中心,服务消费者则从注册中心查询所需要调用的服务的地址,然后发起请求。

  服务框架

    通过注册中心,服务消费者就可以获取到服务提供者的地址,有了地址后就可以发起调用。

  服务监控

    一旦服务消费者与服务提供者之间能够正常发起服务调用,你就需要对调用情况进行监控,以了解服务是否正常

  服务追踪

    除了需要对服务调用情况进行监控之外,你还需要记录服务调用经过的每一层链路,以便进行问题追踪和故障定位

  服务治理

    服务监控能够发现问题,服务追踪能够定位问题所在,而解决问题就得靠服务治理了。服务治理就是通过一系列的手段来保证在各种意外情况下,服务调用仍然能够正常进行

----------------------------------

微服务组件:

  服务发布和引用

    RESTful API  :http/https协议形式

    XML配置 : 

    IDL文件 : IDL主要是用作跨语言平台的服务之间的调用,有两种最常用的IDL:一个是Facebook开源的Thrift协议,另一个是Google开源的gRPC协议。无论是Thrift协议还是gRPC协议,它们的工作原理都是类似的

注册和发现服务:

  注册中心原理

      在微服务架构下,主要有三种角色:服务提供者(RPC Server)、服务消费者(RPC Client)和服务注册中心(Registry),三者的交互关系请看下面这张图,我来简单解释一下。

    •   RPC Server提供服务,在启动时,根据服务发布文件server.xml中的配置的信息,向Registry注册自身服务,并向Registry定期发送心跳汇报存活状态。

    •   RPC Client调用服务,在启动时,根据服务引用文件client.xml中配置的信息,向Registry订阅服务,把Registry返回的服务节点列表缓存在本地内存中,并与RPC Sever建立连接。

    •   当RPC Server节点发生变更时,Registry会同步变更,RPC Client感知后会刷新本地内存中缓存的服务节点列表。

    •   RPC Client从本地缓存的服务节点列表中,基于负载均衡算法选择一台RPC Sever发起调用。

原文地址:https://www.cnblogs.com/yifan72/p/11251558.html