微服务02 SpringBoot & Spring Cloud
开发工具推荐 Spring Tool Suite(STS) 基于 eclipse, 或者是 IntelliJ IDEA.
因为 SpringBoot 中已经继承 Tomcat, 所以, 只需要执行 java -jar xxx.jar 就可以启动服务了. (当然有时候还是需要打成 war 包)
Spring Cloud
熔断器 Spring Cloud Hystrix
最开始 A 发生故障, 但是 C, D 的部分服务依赖于 B, B 的部分服务依赖于 A, A 有问题, 导致 B 出问题, 进而导致 C,D 也出问题, 最后整个系统故障.
熔断器类似我们生活中的“保险丝”, 熔断器的开关由关闭到打开的状态是通过当前服务健康状况(请求失败数/请求总数) 和 设定阈值(默认是10秒20次故障)比较决定的。如果当前健康状况高于设定阈值,熔断器保持关闭时, 请求可以正常进行,当健康状况低于设定阈值,熔断器打开,请求被禁止通过;如果设置了 fallback方法,会进入fallback流程.(类似处理故障的流程), 当熔断器开关处于打开状态一段时间后,熔断器会进入半开状态,这时只允许一个请求通过;当该请求调用成功时,熔断器会恢复到关闭状态;如果该请求失败,熔断器会继续保持打开状态,接下来的请求会被禁止。
API 网关
图中两种服务, serviceA, service B 分别有3个实例运行(这种就类似原来单应用的 duplication 的方式了, 纯复制/粘贴就可以)
为了应用安全, 需要有校验功能