什么是微服务?
- 简单说就是把应用程序细分成一个个的独立服务
- 服务被模块化,单一化,每一个服务都可以独立启动或销毁
- 可以根据各个服务的需求选择最适合自己的开发语言和环境。
- 让开发更高效,每一个微服务一个小团队就可以开发
- 更安全,每一个微服务放在不同的环境里,且有备用环境。
微服务有哪些难题?
- 用户如何访问我们的微服务?(网关API解决如zuul)
- 服务之间如何通信?(如Apache的Dubbo)
- 怎么管理这些服务?(Zookeeper等)
- 怎么制止雪崩,熔断机制?(Hystrix等)
现在的解决方案
-
Spring Cloud NetFlix 一站式解决方案(已经停更)
-
zuul
-
feign
-
Eureka
-
Hystrix
-
-
Apache Dubbo Zookeeper 半自动的,只能解决通信和注册中心的问题,其他两个问题需要求助别的技术(Dubbo停更5年重启)
-
Spring Cloud Alibaba 最新的一站式解决方案,简单易用,近两年才推出的。
什么是Spring Cloud?
- 为了解决微服务问题所形成的生态环境,提供微服务的全家桶
- 整合了各个经得住考验的,稳定的解决方案,将其整合为SpringBoot风格,易使用,易维护。
- 依赖于SpringBoot,SpringBoot专注于开发单个微服务,SpringCloud关注协调管理这些微服务。
- 主要提供配置管理,熔断器,路由,服务发现,微代理,事件总线,全局锁,分布式会话等服务
Spring Cloud中文文档:https://www.springcloud.cc/spring-reference.html
需要注意的是,Spring Cloud的版本号是以伦敦地铁站名字命名,版本号按字母排序,标记GA的版本为稳定版。