这是我参与「第五届青训营 」伴学笔记创作活动的第5天
今天的课程主要讲的是有关架构的知识和实现
知识点:
1.有关微服务架构的知识
细节
微服务架构的核心
-
服务治理:服务发现,服务注册,负载均衡,动态扩缩容,流量治理。
-
服务检测:链路追踪,日志分析,日志采集。
-
安全:认证授权,传输加密
微服务架构,主要是中间层分解,将系统拆分成很多小应用(微服务),微服务可以部署在不同的服务器上,也可以部署在相同的服务器不同的容器上。当应用的故障不会影响到其他应用,单应用的负载也不会影响到其他应用
而微服务主要有以下特点:
易于开发和维护:一个微服务只会关注一个特定的业务功能,所以它业务清晰、代码量较少。开发和维护单个微服务相对简单。
技术栈不受限:不同的团队可以使用不同的技术栈,只需要根据文档提供相应接口即可。
可用性更好:由于服务拆分,如果单个服务出现故障并不会使整个系统崩掉。
服务注册与发现
基本概念
- 服务(service):一组具有相同逻辑的运行实体
- 实例(instance):一个服务中,每个运行实体即为一个实例
- 集群(cluster):通常指服务内部的逻辑划分,包含多个实例
- 有状态 & 无状态服务:服务的实例是否存储可持久化数据
微服务的核心即是服务间的信息通信,即网络通信
流量治理
在网关层面我们不仅可以做服务转发,同时配置鉴权,以及限流操作。常用的有ip限流,令牌桶算法等等。
服务发布
服务发布一般指一个服务升级运行新的代码的过程
我们有以下几种方式来帮助服务发布
- 蓝绿部署(分蓝区和绿区,升级的时候切换为另一区。主要缺陷为两倍资源)
- 灰度发布(一个个发布并测试,试探性。主要缺点为错误回滚)