Go语言-微服务架构原理与治理实践 | 青训营笔记

87 阅读2分钟

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

前言

本文主要介绍:

微服务架构

架构介绍

微服务 (Microservices) 就是一些协同工作小而自治的服务。

2014年,Martin Fowler 与 James Lewis共同提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模的集中管理 (例如Docker) 能力,服务可以用不同的编程语言与数据库等组件实现 。

单体架构

all in one process

优势:

1.性能最高

2.冗余小

劣势:

  1. debug困难

  2. 模块相互影响

  3. 模块分工、开发流程

垂直应用架构

按照业务线垂直划分

优势:

1.业务独立开发维护

劣势:

1.不同业务存在冗余

2.每个业务还是单体

分布式架构

抽出业务无关的公共模块

优势:

1.业务无关的独立服务

劣势:

1.服务模块bug可导致全站瘫痪

2.调用关系复杂

3.不同服务冗余

SOA架构

SOA架构(Service Oriented Architecture)

面向服务

优势:

1.服务注册

劣势:

1.整个系统设计是中心化的

2.需要从上至下设计

3.重构困难

微服务架构

彻底的服务化

优势:

1.开发效率

2.业务独立设计

3.自下而上

4.故障隔离

劣势: 1.治理、运维难度

2.观测挑战

3.安全性

4.分布式系统

微服务架构核心要素

服务治理

服务注册

服务发现

负载均衡

扩缩容

流量治理

稳定性治理

可观测性

日志采集

日志分析

监控打点

监控大盘

异常报警

链路追踪

安全

身份验证

认证授权

访问令牌

审计

传输加密

黑产攻击