在微服务架构中,不同的组件(包括微服务实例、注册中心和API网关等组件)需要根据不同的情况来选取相应的技术,那么我们可以使用哪些技术呢?
1. 微服务实例的开发
微服务的开发可以选用的框架技术有 Spring 团队的 Spring Boot、Jboss 公司的 WildFly Swarm和Java EE官方的微服务框架KumuluzEE等。
2. 服务的注册与发现
架构中服务的注册与发现功能,可以使用的技术有 Spring Cloud Eureka、Apache Zookeeper、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+Spring Cloud+Docker技术来实现微服务架构。
我们会使用Spring Boot实现微服务实例的开发,使用Spring Cloud Eureka来实现服务的注册与发现,使用Spring Cloud Hystrix的断路器功能来实现服务容错,使用Spring Cloud Ribbon实现服务间的负载均衡,使用Spring Cloud Zuul实现服务网关,使用Spring Cloud Config作为分布式配置中心,使用Swagger对微服务进行测试,并使用Jenkins的持续集成功能来实现自动化部署。
微服务架构中各个组件的技术选型有很多,对于已经实施过微服务并且项目自成体系的公司来说,Spring Cloud可能并没有太大的吸引力,但对于还未实施微服务或项目没有自成体系的公司来说,Spring Cloud将是一个非常好的选择。
除了Spring Cloud之外,Dubbo也是目前国内比较流行的分布式服务框架,它们都具备分布式服务治理相关的功能,都能够提供服务注册、发现、路由和负载均衡的能力。相比之下,Spring Cloud提供了更加完整的一套企业级分布式云应用的解决方案,包含了微服务组件中的方方面面,并能够结合Spring Boot、Docker实现快速开发的目的,而Dubbo只有Spring Cloud的一部分功能。由于二者具体的实现方式不同,因此并没有好坏之分。企业在选用时,需根据自身情况选择。推荐了解java中级程序员培训课程。
猜你喜欢:
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253608.html