zoukankan      html  css  js  c++  java
  • 微服务

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

      服务描述

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

        常用的服务描述方式包括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发起调用。

  • 相关阅读:
    Linux安装svn
    spring低版本报错:java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class [*] are only available on
    linux下nproc的作用
    Oracle存储过程--案例
    Oracle存储过程
    LoadRunner 11 安装
    BZOJ 1061 志愿者招募(最小费用最大流)
    ZOJ 1015 Fishing Net(判断弦图)
    BZOJ 1049 数字序列(LIS)
    topcoder srm 620 div1
  • 原文地址:https://www.cnblogs.com/yifan72/p/11251558.html
Copyright © 2011-2022 走看看