《springcloud从看不懂到放弃》由微信公众号【不如假如】发布,以下是舍得街不如假如会员收集整理的springcloud从看不懂到放弃作者不如假如2017.08.0800:39*字数3053why当我们使用一个新技术的时候,应该首先问的一个问题就是why:为什么要使用这...,希望对您有帮助.

springcloud从看不懂到放弃(最新篇)

springcloud从看不懂到放弃作者:不如假如2017-08-08收录到我的专题why...自然,这种问题可以设置调用超时来一定程度上解决,但是springcloud可以...

springcloud从看不懂到放弃(精选篇)

why

当我们使用一个新技术的时候,应该首先问的一个问题就是why:为什么要使用这个技术?或者问:这个技术是可以解决什么问题。
我也想写篇微服务的文章,以及微服务的优缺点
在微服务架构中,当一个大型系统被拆分成微服务系统以后,不仅包括功能拆分,还包括系统拆分、代码拆分、数据库拆分、缓存拆分等,多个系统的部署、维护、调用关系、调度、监控、fail over就会成为一系列问题。同时微服务系统划分越多,调用链路可能会越长,调用链监控、全链路trace也会成为问题。
自然和自然的法则在黑夜中隐藏,上帝说让牛顿诞生吧,于是一切都被照亮。spring cloud 就是这样诞生的。spring cloud为服务治理而生。

举个栗子,当一个大型系统被拆分成5个小业务系统以后,最容易想到的后端架构是:



前端需要维持多个系统

这样问题很明显,client需要维持5个业务系统地址,可能经常出现某个动作需要调用超过1个业务系统才能完成,而且无法保证事务性。于是出现了下面一个架构:



各个子系统之间不具有强关联关系
api gateway和各个业务系统之间通过负载均衡发生调用关系,client只需要调用api gateway。
看起来好像解决了拆分问题、调用问题和client端问题。但是因为负载均衡设备的存在,各个子系统之间不再有强关联关系,子系统看起来像是互不关联的系统一样,各提供各的服务,当某一个子系统响应变慢时,可能会造成api gateway或者其他调用者系统也变慢,甚至会造成整个架构雪崩。自然,这种问题可以设置调用超时来一定程度上解决,但是spring cloud可以提供更优雅的方案。这种结构,要想解决调度、监控、fail over、全链路trace等问题,也需要接入其他第三方系统或工具,而spring cloud针对这些问题提供了一套完整的解决方案。 spring cloud简介

先来看一下spring cloud包含了什么组件:













这6张图来自http://springcloud.cc/ 包括了spring cloud现在有的所有组件,以及每个组件的作用。我这里粗浅介绍10个。

  1. spring cloud config

  2. spring cloud bus

  3. eureka

  4. consul

  5. ribbon:

  6. feign

  7. hystrix

  8. zuul

  9. turbine

  10. Spring Cloud Starters

我们现阶段的后台系统中,上述除了spring cloud bus、consul和zuul,其他都使用到。Talking is cheap, github地址: http://github.com/chxfantasy/spring-cloud-demo