Skip to content

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. 云原生 (多语言)