go小白入门 | 青训营笔记

61 阅读2分钟

青训营课程笔记

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天,今天主要学习了微服务架构与字节服务治理实践。

微服务架构

架构的三大要素:1.服务治理 2.可观测性 3.安全。在之前分布式的学习中了解了关于前后端分离的知识,在这里就不再重复了。总结:在前后端分开之后,web程序员又分为前端程序员与后端程序员拉分。分开的后端程序员只负责编写界面,再用JSON格式和前端进行互动。那么,前端程序员是做什么的?前端程序员承担页面渲染与交互任务,如需进行操作则利用JavaScript对后端启动异步请求。

微服务系统具备功能

反向代理:系统非常庞大时候,可以采用多级负载均衡。 API 网关:使用SpringCloud API Gateway,或者Zuul。 服务注册中心:维护这些信息的地方。 服务配置中心:线上改完配置不需要重启服务就生效。 负载均衡:多实例时,负载均衡来决定哪个服务来处理请求。 断路器:将失败调用隔离在某个微服务内部。 链路追踪:追踪业务,查找并清理bug。 量度监控:随时查看服务、接口的状态。

字节服务治理实践

探讨到关于调用时候重试的必要,该行为可以检查参数是否非法、边界case问题、机器负载高、调度超时问题等,极大提高了service-level agreement。

作用:降低错误、降低长尾延时、容忍暂时性错误、避开下游故障实例。但是重试容易导致多次请求结果不一致、同时数级也会上涨,超时设置也难定夺。针对上述问题和对重试作用的看重,所以通常采用限制重试比例、防止链路重试。

微服务案例如下:github.com/shusheng007…