• 微服务架构中各个组件都需要使用哪些技术?


    微服务架构中,不同的组件(包括微服务实例、注册中心和API网关等组件)需要根据不同的情况来选取相应的技术,那么我们可以使用哪些技术呢?本节将对微服务架构中各个组件可使用的技术进行简单介绍。

    1.微服务实例的开发

    微服务的开发可以选用的框架技术有Spring 团队的Spring Boot、Jboss公司的WildFlySwarm 和Java EE官方的微服务框架KumuluzEE等。2.服务的注册与发现

    架构中服务的注册与发现功能,可以使用的技术有 Spring Cloud Eureka、ApacheZookeeper、Consul、Etcd和Dubbo等,它们都是用于服务注册和发现的技术。

    3.负载地斯

    负载均衡可以使用的技术有Spring Cloud Ribbon和Dubbo等。
     

    4.服务容错

    服务容错的技术可以选用Hystrix,在Spring Cloud 的子项目中包含Spring Cloud Hystrix。

    5.API网关

    架构中的API网关服务,可以使用的技术有Spring Cloud Zuul、Spring Reactor、Netty或NodeJS等。

    6.分布式配置中心

    分布式配置中心可以使用Spring Cloud Config。

    7.调试

    微服务应用的测试工作可以使用Swagger。Swagger是当前最受欢迎的REST API文档生成工具之一,它提供了强大的页面测试功能来调试每个RESTful API。

    8.部署

    微服务的官方文档中推荐使用Docker来打包和部署微服务。由于Docker是一个开源的应用容器引擎,具有可移植性强、启动速度快等特点,所以适合跑一些轻量的应用。


    9.持续集成

    为了实现服务的自动化部署,我们可以通过Jenkins 搭建自动化部署系统,并使用Docker进行容器化封装。

    在上面的技术选型中,从微服务注册与发现、负载均衡、容错、API网关和分布式配置中心组件的可选技术内,我们都看到了 Spring Cloud的身影。实际上,Spring Cloud的子项目中,已经提供了构建微服务所需的所有解决方案。

    为了方便读者学习,并能快速地掌握微服务架构的使用,本书将使用 Spring Boot+SpringCloud+Docker技术来实现微服务架构。书中的主要技术选型如图1所示。

    图1 微服务架构的主要技术选型

    从图1中可以看出,我们会使用Spring Boot实现微服务实例的开发,使用Spring CloudEureka来实现服务的注册与发现,使用Spring Cloud Hystrix的断路器功能来实现服务容错,使用Spring Cloud Ribbon实现服务间的负载均衡,使用Spring Cloud Zuul实现服务网关,使用Spring Cloud Config作为分布式配置中心,使用Swagger 对微服务进行测试,并使用Jenkins的持续集成功能来实现自动化部署。

    微服务架构中各个组件的技术选型有很多,对于已经实施过微服务并且项目自成体系的公司来说,SpringCloud可能并没有太大的吸引力,但对于还未实施微服务或项目没有自成体系的公司来说,Spring Cloud将是一个非常好的选择。

    注意:除了Spring Cloud之外,Dubbo也是目前国内比较流行的分布式服务框架,它们都具备分布式服务治理相关的功能,都能够提供服务注册、发现、路由和负载均衡的能力。相比之下,SpringCloud提供了更加完整的一套企业级分布式云应用的解决方案,包含了微服务组件中的方方面面,并能够结合Spring Boor.Docker实现快开发的目的,而Dubbo只有Spring Cloud的一部分功能。由于二者具体的实现方式不同,因此并没有好坏之分。企业在选用时,需根据自身情况选择。

    需要注意的是,本书中只是针对Java中微服务技术进行的选型,其他开发语言也有着自己的微服务技术栈,在选用时,同样需要依据实际情况慎重考虑。

  • 相关阅读:
    CompletableFuture方法介绍及代码示例
    大健康行业千城万企信用建设工作启动大会在京召开
    淘宝商品链接获取淘宝商品评论数据(用 Python实现淘宝商品评论信息抓取)
    数字孪生技术助力水务行业实现智能化
    采用PHP开发的一套(项目源码)医疗安全(不良)事件报告系统源码:统计分析,持续整改,完成闭环管理
    Spring Cloud【实现用户鉴权(什么是JWT、JWT原理、用户微服务、JWT工具类、用户服务实现JWT鉴权)】(八)
    GO微服务实战第六节 Go 语言开发快速回顾:语法、数据结构和流程控制
    Spring AOP基于XML方式笔记整理
    c++ 可变参数模版 & 编译期排序
    mysql查看正在执行的sql语句并将其kill掉
  • 原文地址:https://blog.csdn.net/Blue92120/article/details/127963986