微服务学习之路(一)——微服务架构

最近一直在学习微服务,毕竟现在大家都在说分布式,集群等,分布式和集群的基本前提是微服务,所以有比较掌握微服务的基本原理。

先看一下微服务架构图,如下图:

 

微服务主要由以下几个基本组件:

服务描述、注册中心、服务框架、服务监控、服务追踪、服务治理。

1、服务描述

  服务调用首先要解决的问题是服务如何对外描述。常用的服务描述包括RESTful API、XML配置已及IDL文件。

  通常情况下,如果企业内部之间的服务,都是Java语言,选择XML配置最简单。如果内部存在多个服务,并且服务采用的是不同语言平台,建议使用IDL文件方式进行描述服务。如果还存在对外开放服务调用的话,使用RESTful API方式更加通用。

服务描述方式 使用场景 缺点
RTSTful API 跨语言平台,组织内外皆可使用 使用了HTTP作为通讯协议,相比于TCP协议,性能较差
XML配置 Java 平台,一般用于组织内部 不支持跨语言平台
IDL 跨语言平台,组织内外皆可使用 修改或者删除PB字段不能向前兼容

2、注册中心

  注册中心解决服务的发布和订阅。服务提供者将自己提供的服务以及地址登记到注册中心,服务消费者则从注册中心查询所需调用的服务地址,发起请求。

3、服务框架

  发起调用之前,需要解决问题:通讯协议?数据传输方式?数据压缩格式?

4、服务监控

  监控服务调用情况。需要指标收集、数据处理、数据展示。

5、服务追踪

  记录服务调用经过的每一层链路,进行问题追踪和故障定位。

  服务追踪原理:服务消费者发起调用,本地按照一定的规则生成一个requestid,发起调用时,将requestid当作请求参数的一部分,传递给服务提供者;服务提供者接收请求,记录这次请求的requestid,然后处理请求。如果服务提供者还要继续请求其他服务,还会再本地生成一个自己的requestid,然后把两个requestid当作请求参数继续传递下去。

6、服务治理

  服务监控发现问题,服务追踪定位问题,服务治理解决问题。

  生成环境常见故障:单机故障、单IDC故障、依赖服务不可用。

原文地址:https://www.cnblogs.com/gzhcsu/p/11372434.html