微服务架构原理|青训营笔记

40 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第8天

1、微服务概述:

1.1、什么是微服务?

微服务架构风格是一种将单体应用开发为一套小型服务的方法,

每个服务都在自己的进程中运行,并使用轻量级的通信机制(通常

是HTTP类型的API)进行通信。这些服务是围绕业务能力构建的,

并且可以通过全自动化的部署机制进行独立部署。这些服务可以

不同的编程语言编写,也能使用不同的数据存储技术

1.2、微服务架构的优势:

  • √快:更注重敏捷开发、持续交付
  • √准:服务粒度小、服务质量精准可控
  • √狠:适用于互联网时代,产品迭代周期更短

1.3、微服务的困难:

分布式系统的复杂性

服务依赖管理

数据的一致性保障

测试更加艰难

对DevOps等基础设施的高要求

1.4、服务划分的三种规则:

按业务职能(Business Capability)划分。

由公司内部不同部门提供的职能。例如客户服务部门提供客户服务的职能,财务部门提供财务相关的职能。

按DDD的限界上下文(Bounded Context)划分

限界上下文是DDD中用来划分不同业务边界的元素

这里业务边界的含义是“解决不同业务问题“的问题域和对应的解决方案域

为了解决某种类型的业务问题,贴近领域知识,也就是业务。

CQRS将系统中的操作分为两类,即「命令」(Command)与「查询」(Query)。

命令则是对会引起数据发生变化操作的总称,即我们常说的新增,更新,删除这些操作,都是命令。

而查询则和字面意思一样,即不会对数据产生变化的操作,只是按照某些条件查找数据。

CQRS的核心思想是将这两类不同的操作进行分离,然后在两个独立的「服务」中实现。

这里的「服务」一般是指两个独立部署的应用。在某些特殊情况下,也可以部署在同一个应用内的不同接口上。

1.5、 微服务架构

1.6、微服务核心组件

API网关

服务通信

服务注册中心

服务治理

配置中心

服务监控