Spring Cloud alibaba
-
springcloud的版本说明:
- springcloud项目是由多个独立项目集合而成的,每个项目都是独立的,各自进行自己的迭代和版本发布
- springcloud的F版本是基于springboot的2.0.x构建,之前的是基于springboot的1.5.x构建
-
SpringCloud的5大核心组件:
- Eureka:注册中心
- Zuul:服务网关
- Ribbon:负载均衡
- Feign:服务调用
- Hystix:熔断器
-
将微服务划分为外部服务和内部服务
- 外部服务:以终端划分的外部服务,如api-admin、api-pc、api-applets、api-app、api-h5,提供对外(用户)的API 接口数据 。
- 外部服务提供Feign服务通信调用内部服务获取数据。
- 内部服务:如订单服务、用户服务、商品服务、内容服务等内部服务,提供增删改查(搜索)等基本数据库操作
-
微服务介绍
-
微服务架构,重点在一个微字,简单的说就是将单体服务拆分成更多更小的服务,每个服务都是一个独立的,可以运行的项目。我们来看一张图:
-
这么拆有什么好处?
- 没有拆分之前,你修改一个功能,进行测试,部署上线,可能要一个月,要考虑对其他服务的影响,考虑其他人改动代码的影响,还要对整个系统功能全量回归测试,费事费力,可能上线基本上就得1个月,那么服务拆分之后,可以独立打包,测试,部署,升级,只需要关心自己的功能,随时可以安排上线。而且每个微服务都有清晰的任务划分,利于扩展。总之,拆分之后对于开发人员来说是非常爽的一件事。
- 有好处那就有缺点,服务多了之后,要考虑怎么管理维护,使用的架构也不一样,技术学习成本也会上升。
-
-
微服务架构常见的问题
- 一旦决定采用微服务架构系统,就会面临以下几个不能饶过的问题:
- 这么多服务,怎么管理?
- 这么多服务,他们之间怎么通讯?
- 这么多服务,用户应该怎么访问他们?
- 这么多服务,一旦出现问题了,怎么进行自处理?
- 这么多服务,一旦出现问题了,怎么进行问题排查?
- 上面的这些问题,是任何一个微服务设计者都绕不过去的,市面上一些微服务架构产品就是提供了一系列的组件来解决上述问题。
- 来看一个常见的微服务架构图
- 一旦决定采用微服务架构系统,就会面临以下几个不能饶过的问题: