• [Java EE]Spring Boot 与 Spring Cloud的关系/过去-现在-未来


    1 微服务架构

    从【单体应用】向【微服务架构】的转型,已成为企业数字化转型的主流趋势。

    在微服务模式下,企业内部服务少则几个到几十个,多则上百个,每个服务一般都以集群方式部署。

    微服务架构的问题?

    分布式架构的4个核心问题?
    1 这么多服务,客户端如何访问? - 客户端访问 => API网关
    2 这么多服务,服务(端)之间如何通信? - 服务端通信 => HTTP/RPC调用
    3 这么多服务,如何治理? - 微服务治理 => 服务注册/发现
    4 服务挂了,该怎么办? - 容灾 => 熔断机制
    

    2 解决方案

    Spring Cloud 是一套生态,就是来解决上述分布式架构的问题的。
    
    1 Spring Cloud的生态中存在众多的解决方案/子框架
    	例如:
    		Spring Cloud Netflix
    		[ Apache Dubbo Zookeeper ]
    		Spring Cloud Alibaba
    		...
    2 想使用Spring Cloud,必须掌握Spring Boot,因为Spring Cloud是基于/依赖于 Spring Boot
    	=> Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring boot
    

    PS: 如果某不知名团队X,基于上述4个核心问题开发一套解决方案,也叫 Spring Cloud!

    • Spring Boot 与 Spring Cloud的关系?

      Spring Cloud 基于/依赖于 Spring Boot

      Spring Cloud 包含:

      • 微服务(Spring Boot) /
      • API网关: API Gateway /
      • 服务注册/发现 : Service Registry Center / Config Server /
      • 通信调用
      • 熔断机制
      • ...

    Spring Boot - Build Anything

    Spring Cloud - Coordinate(协调) Anything

    Spring Cloud Data Flow - Connect Everything

    2-1 Spring Cloud Netflix

    NetFlix: 出来了一套解决方案——Spring Cloud Netflix! 
    
    • API网关 - zuul组件 (NetFlix开源)

    • 网络通信/HTTP调用 - Feign (NetFlix开源)

      Feign --> 基于 HTTPClient --> HTTP的通信方式 [同步且阻塞]

    • 服务注册/发现 - Eureka (NetFlix开源)

    • 熔断机制 - Hystrix (NetFlix开源)

    Hystrix [hɪst'rɪks],译为 豪猪(因其背上长满棘刺,从而拥有了自我保护的能力)

    Hystrix是Netflix开源的一款容错框架,同样具有自我保护能力。

    2018年底,NetFlix宣布无限期停止维护。

    开源软件不再维护,就会脱节,乃至被社区和生态弃用? 下一步怎么走?

    2-2 Apache Dubbo Zookeeper

    Alibaba: 出来了一套解决方案——Apache Dubbo Zookeeper!
    

    Alibaba开源的, 一款基于Java的、高性能的RPC通信框架

    http://dubbo.apache.org/zh-cn/ / https://zookeeper.apache.org/

    • API网关 -

    需使用第三方组件 或 自己实现

    • 网络通信/RPC调用 - Dubbo (Alibaba开源)
    • 服务注册/发现 - Zookeeper

    Zookeeper: 动物园管理者 (Hadoop / Hive / ...)

    • 熔断机制 - Hystrix (NetFlix开源)

    继续 借用 Hystrix

    2-3 Spring Cloud Alibaba

    Alibaba: 又出来了一套解决方案——Spring Cloud Alibaba
    

    ...

    2-4 Future: 服务网格——Service Mesh

    目前,又提出了一种解决方案————服务网格(下一代微服务标准, Service Mesh)
    	代表性的具体解决方案: Istio (未来,可能需要掌握)
    

    3 小结: Spring Cloud

    万变不离其宗,一通百通!

    • API网关 - 服务路由

    Tyk / Kong / Orange / Netflix zuul / apiaxle / api-umbrella /

    • 通信/调用 - HTTP/RPC框架 (同步/异步 | 阻塞/非阻塞)

    RPC调用框架: Dubbo(Alibaba/Java) / gRPC(Google/支持多语言) / Thrift (Facebook/支持多语言) / Tars(Tencent/C++) / ...

    若项目涉及多个语言平台之间的相互调用,就应该选择跨语言平台的 RPC 框架。

    HTTP调用框架: Feign(from NetFlix)

    注: RestFul API规范

    底层网络通信框架: Netty / ...

    • 服务注册/发现 - 解决高可用/...

    Nacos / Eureka / Zookeeper / consul

    • 熔断机制 - 解决服务降级(服务崩溃后怎么办?)

    Hystrix /

    X 参考/推荐资料

  • 相关阅读:
    HDU1041
    HDU1005
    HDU1231
    MYSQL入门总结
    oracle性能问题排查~记一个单实例的问题
    mysql案例~关于mysql的配置文件个人见解
    数据恢复系列~恢复方案制定
    mysql架构解读~mysql的多源复制
    mysql 案例~select引起的性能问题
    遭遇Bad version number in .class file
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/13809320.html
Copyright © 2020-2023  润新知