Spring Cloud基于Spring Boot开发,提供一套完整的微服务解决方案,具体包括服务注册与发现,配置中心,全链路监控,API网关,熔断器,远程调用框架,工具客户端等选项中立的开源组件,并且可以根据需求对部分组件进行扩展和替换。
Service Mesh,这里以Istio(目前Service Mesh具体落地实现的一种,且呼声最高)为例简要说明其功能。 Istio 有助于降低这些部署的复杂性,并减轻开发团队的压力。它是一个完全开源的服务网格,可以透明地分层到现有的分布式应用程序上。它也是一个平台,包括允许它集成到任何日志记录平台、遥测或策略系统的 API。Istio的多样化功能集使你能够成功高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。
如果是小型项目,轻业务、重流量、需求快速变化,可以参考我之前写的文章 轻量型互联网应用架构方式 ,语言层面选择 Node.js + Mongodb/Mysql.
如果项目属于业务复杂类型,语言层面可以选择 Java with Kotlin。
当然,全新项目,容器化是必须的。
Service Mesh 一步到位的落地时间可能稍长,建议先把项目服务容器话,在 k8s 上部署起来,此时已经能够享受 k8s 带来的一部分服务治理能力了。例如:
服务发现
负载均衡
API 网关
TODO