这是我参与「第五届青训营 」伴学笔记创作活动的第 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。
服务注册及服务发现
基本问题:服务间调用中,如何指定下游服务实例的地址。
服务注册发现:
新增一个统一的服务注册中心,用于存储服务名到服务实例之间的映射关系。
旧服务实例下线前,从服务注册中心删除该实例,下线流量。
新服务实例上线后,在服务注册中心注册该实例,上线流量。
四、核心服务治理功能
服务发布、流量治理、负载均衡、稳定性治理。
五、字节跳动服务治理实践
略