1. 课程总结:
微服务在目前的技术发展中的地位 单体应用 -> 微服务 -> 服务网格(service mesh)《k8s》 ->云原生(serverless) go
重点内容
1. grpc - go语言中用的最多,生态最好的rpc框架
2. 分布式问题:
1. 分布式锁
2. 分布式事务
3. 链路追踪等为什么不使用已有的微服务框架
1. 弄清楚细节
2. 现有的微服务框架没有像spring cloud一样一统的框架
3. 自己搭建后去学习和使用其他的微服务框架很容易
4. 课程中用到的组件即使你不是微服务开发也可以在你的系统中用到,比如nacos、sentinel、jaeger等都有很大的用途现有的微服务框架:
1. go-micro: V3版本已经开始往云原生开发了
2. go-zero
3. dubbo-go
4. motan-go
5. rpcx
6. istio: 多语言
7. dapr: 多语言 云原生的项目使用多微服务
优点:
1. 代码分离,技术栈独立
2. 部署独立
3. 独立性能优化缺点:
1. 门槛高
2. 引入组件多
3. 链路长,性能受损
4. 多出来了分布式系统的问题
5. 版本管理问题 (商品服务(1.0), 用户服务(1.0))
6. 微服务不等于高性能如何选择
1. 看情况使用
2. 项目相互依赖,开发人员多,项目大就可以考虑使用
3. 项目小就别用了接下来学习
改进 - k8s
1. 能不侵入代码就解决链路追踪的问题吗?
2. 能不自己写负载均衡代码吗?
3. 能不自己写服务注册和发现吗?
4. 各个微服务能自己用其他语言写吗?
5. 云原生 (多语言)