目前还没标准的方案,都在探索
微服务
-
基本思路:把每个功能细化拆分 开发、部署、运维 全拆分开。
-
大量的服务应用 产生了一系列问题:
- 这么多应用如何相互调用
- 这么多应用 风险怎么管,一个宕了影响其他怎么办
- 这么多应用 请求入口都不一样,前端都看懵了
- 这么多应用 一个个改配置文件多麻烦
- 怎么看一个请求 到底调了哪些服务
- 这么多应用 排查日志一个个找要多费时
-
并产生了一套解决思路:
- 服务注册中心 + 服务提供者 + 服务消费者
- 熔断器 + 限流 + 流量调度
- 路由网关
- 配置中心
- 服务链路追踪
- 日志汇总查看
解决思路有了,但具体怎么实现?
目前业界有很多探索,都有人在用,都在发展,还没有一个标准答案
方案1:把微服务要具备的功能耦合在框架里实现
代表:spring cloud,Dubbo
方案2:微服务与框架无关,用网络代理实现微服务功能
代表: istio
问题:代理损耗性能