微服务框架 | 青训营笔记

147 阅读3分钟

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

一、目录

本节课主要分为四个部分:

1.微服务架构介绍

2.微服务架构原理及特征

3.核心服务治理功能

4.字节跳动服务治理实践

二、微服务架构介绍

系统架构的演进历史

互联网规模大,发展快,需求复杂,人员增加,所以系统架构不断演进。

单体架构

All in one process。

垂直应用架构

按照业务线垂直划分。

分布式架构

抽出与业务无关的公共模块。

SOA架构

面向服务。

微服务架构

彻底的服务化。

微服务架构概览

微服务架构区别于传统的单体软件架构,是一种为了适应当前互联网后台服务的「三高需求:高并发、高性能、高可用」而产生的的软件架构。

优点

1.易于开发和维护:一项服务只关注一项特定的业务功能,业务清晰,代码量少。开发维护单项微服务相当简单。整个应用程序由一些微型服务构建,因此整个应用程序处于可控状态。

2.单一服务启动快:单一服务代码少,启动快。

3.局部修改易于部署:单个应用程序只要有修改,就必须重新部署整个应用程序,微服务解决了这个问题。一般来说,修改某个微型服务,只需重新配置该服务。

4.技术堆栈不受限制:微服务结构可结合业务和团队特点,合理选择技术堆栈。例如,一些服务可以使用关系数据库Mysql,一些服务可以使用非关系数据库redis。甚至可以根据需服务可以使用JAVA开发,一些微服务可以使用Node.js开发。

5.按需收缩:可根据需要实现细粒度的扩展。例如,系统中的某个微服务遇到瓶颈,可以结合微服务的特点,增加内存,升级CPU,增加节点。

缺点

1.运输要求高:更多的服务意味着更多的运输投入。在单体结构中,只需保证一个应用程序的运行,在微服务中,需要保证几十到几百个服务器的正常运行和合作,这给运行维护带来了巨大的挑战

2.分布式固有的复杂性:使用微服务结构的是分布式系统。对于分布式系统,系统容错,网络延迟带来巨大挑战。

3.界面调整成本高:微服务之间通过界面通信。

三、微服务架构原理及特征

服务间通信

微服务之间通过网络进行通信,常见协议包括HTTP、RPC。

服务注册及服务发现

基本问题:服务间调用中,如何指定下游服务实例的地址。

服务注册发现:

新增一个统一的服务注册中心,用于存储服务名到服务实例之间的映射关系。

旧服务实例下线前,从服务注册中心删除该实例,下线流量。

新服务实例上线后,在服务注册中心注册该实例,上线流量。

四、核心服务治理功能

服务发布、流量治理、负载均衡、稳定性治理。

五、字节跳动服务治理实践