springcloud组件之间的交互关系是什么?springcloud能解决哪些问题?

Spring Cloud是目前微服务架构领域的翘楚,springcloud有很多组件完成工作,每个组件都不是平白无故的产生的,是为了解决某一特定的问题而存在。那springcloud组件之间的交互关系是什么?下面来我们就来给大家讲解一下。

springcloud组件之间的交互关系.jpg

Eureka和Ribbon,是最基础的组件,一个注册服务,一个消费服务。

Hystrix为了优化Ribbon、防止整个微服务架构因为某个服务节点的问题导致崩溃,是个保险丝的作用。

Dashboard给Hystrix统计和展示用的,而且监控服务节点的整体压力和健康情况。

Turbine是集群收集器,服务于Dashboard的。

Feign是方便我们程序员些更优美的代码的。

Zuul是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息,加强安全保护的。

Config是为了解决所有微服务各自维护各自的配置,设置一个同意的配置中心,方便修改配置的。

Bus是因为config修改完配置后各个结点都要refresh才能生效实在太麻烦,所以交给bus来通知服务节点刷新配置的。

Stream是为了简化研发人员对MQ使用的复杂度,弱化MQ的差异性,达到程序和MQ松耦合。

Sleuth是因为单次请求在微服务节点中跳转无法追溯,解决任务链日志追踪问题的。

springcloud能解决哪些问题?

在使用SpringBoot开发分布式微服务时,我们面临的问题很少由Spring Cloud解决。

与分布式系统相关的复杂性 – 包括网络问题,延迟开销,带宽问题,安全问题。

处理服务发现的能力 – 服务发现允许集群中的进程和服务找到彼此并进行通信。

解决冗余问题 – 冗余问题经常发生在分布式系统中。

负载平衡 – 改进跨多个计算资源(例如计算机集群,网络链接,中央处理单元)的工作负载分布。

减少性能问题–减少因各种操作开销导致的性能问题。

其实springcloud能解决的问题还是比较多的,并且它还可以减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开发。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

java线程池工作原理是什么?java如何实现一个线程池?

grails框架技术特性和优劣有哪些?grails框架技术特性和优劣分析

java并发面试题有哪些?java并发面试题分享