学建设网站,lnmp wordpress,免备案主机,江苏网站设计SpringCloud介绍
SpringCloud是在SpringBoot的基础上构建的,用于简化分布式系统构建的工具集。
该工具集为微服务架构中所涉及的配置管理,服务发现,智能路由,断路器,微代理和控制总线等操作提供了一种简单的开发方式。
SpringCloud中包含了多个子项目#xff1a;
Spring …SpringCloud介绍
SpringCloud是在SpringBoot的基础上构建的,用于简化分布式系统构建的工具集。
该工具集为微服务架构中所涉及的配置管理,服务发现,智能路由,断路器,微代理和控制总线等操作提供了一种简单的开发方式。
SpringCloud中包含了多个子项目
Spring Cloud Config配置管理开发工具包可以让你把配置放到远程服务器目前支持本地存储、Git以及SubversionSpring Cloud Bus事件、消息总线用于在集群例如配置变化事件中传播状态变化可与Spring Cloud Config联合实现热部署Spring Cloud Netflix针对多种Netflix组件提供的开发工具包其中包括Eureka、Hystrix、Zuul、Archaius等 Netflix Eureka云端负载均衡一个基于 REST 的服务用于定位服务以实现云端的负载均衡和中间层服务器的故障转移 Netflix Hystrix容错管理工具旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力 Netflix Zuul边缘服务工具是提供动态路由监控弹性安全等的边缘服务 Netflix Archaius配置管理API包含一系列配置管理API提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能 Spring Cloud for Cloud Foundry通过Oauth2协议绑定服务到CloudFoundryCloudFoundry是VMware推出的开源PaaS云平台Spring Cloud Sleuth日志收集工具包封装了Dapper,Zipkin和HTrace操作Spring Cloud Data Flow大数据操作工具通过命令行方式操作数据流Spring Cloud Security安全工具包为你的应用程序添加安全控制主要是指OAuth2Spring Cloud Consul封装了Consul操作consul是一个服务发现与配置工具与Docker容器可以无缝集成Spring Cloud Zookeeper操作Zookeeper的工具包用于使用zookeeper方式的服务注册和发现Spring Cloud Stream数据流操作开发包封装了与Redis,Rabbit、Kafka等发送接收消息Spring Cloud CLI基于 Spring Boot CLI可以让你以命令行方式快速建立云组件 除了以上这些还有很多且在不断地增加。
SpringCloud的五大组件
服务发现——Netflix Eureka实现服务治理服务注册与发现客服端负载均衡——Netflix Ribbon主要提供客户侧的软件负载均衡算法。断路器——Netflix Hystrix断路器保护系统控制故障范围。服务网关——Netflix Zuulapi网关路由负载均衡等多种作用。分布式配置——Spring Cloud Config配置管理 注意
以下Spring Cloud Netflix模块和相应的启动程序将进入维护模式停止更新
spring-cloud-netflix-archaius spring-cloud-netflix-hystrix-contract spring-cloud-netflix-hystrix-dashboard spring-cloud-netflix-hystrix-stream spring-cloud-netflix-hystrix spring-cloud-netflix-ribbon spring-cloud-netflix-turbine-stream spring-cloud-netflix-turbine spring-cloud-netflix-zuul 官方建议将以下内容作为这些模块提供的功能的替代品。 SpringCloud的最大特点
使用方便。 功能齐全。 易于扩展和维护 适用于各种环境
微服务架构是什么
微服务架构是一种架构风格和架构思想将系统业务按照功能拆分为更加细粒度的服务所拆分的每一个服务都是一个独立的应用这些应用对外提供公共的API可以独立承担对外服务的职责。通过此种思想方式所开发的软件服务实体就是“微服务”围绕着微服务思想构建的一系列体系结构包括开发、测试、部署等称之为“微服务架构”。 在上图中部署了一系列的微服务每个微服务都会访问自己的数据库Database。当这些微服务启动时会将其信息注册到服务注册中心Service Registry在客户端发送请求时请求首先会被API网关API GateWay拦截API网关会读取请求数据并从注册中心获取对应的服务信息然后API网关会根据服务信息调用所需的微服务。
微服务架构的技术选型在微服务架构中不同的组件包括微服务实例、注册中心和API网关等组件需要根据不同的情况来选取相应的技术那么我们可以使用哪些技术呢
微服务实例的开发
微服务的开发可以选用的框架技术有Spring团队的Spring Boot、Jboss公司的WildFly Swarm和Java EE官方的微服务框架KumuluzEE等。
服务的注册与发现
架构中服务的注册与发现功能可以使用的技术有Spring Cloud Eureka、Apache Zookeeper、Consul、Nacos、Etcd和Dubbo等它们都是用于服务注册和发现的技术。
负载均衡
负载均衡可以使用的技术有Spring Cloud Ribbon和Dubbo等。
服务容错
服务容错的技术可以选用Hystrix在SpringCloud的子项目中包含Spring Cloud Hystrix。
API网关
架构中的API网关服务可以使用的技术有Spring Cloud Zuul、Spring Reactor、Netty或NodeJS等。
分布式配置中心
分布式配置中心可以使用Spring Cloud Config、Nacos。
调试
微服务应用的测试工作可以使用Swagger。Swagger是当前最受欢迎的REST API文档生成工具之一它提供了强大的页面测试功能来调试每个RESTful API。
部署
微服务的官方文档中推荐使用Docker来打包和部署微服务。由于Docker是一个开源的应用容器引擎具有可移植性强、启动速度快等特点所以适合跑一些轻量的应用.
持续集成
为了实现服务的自动化部署我们可以通过Jenkins搭建自动化部署系统并使用Docker进行容器化封装。在上面的技术选型中从微服务注册与发现、负载均衡、容错、API网关和分布式配置中心组件的可选技术内我们都看到了Spring Cloud的身影。实际上Spring Cloud的子项目中已经提供了构建微服务所需的所有解决方案。 从上图中可以看出我们会使用Spring Boot实现微服务实例的开发使用Spring Cloud Eureka来实现服务的注册与发现使用Spring CloudHystrix的断路器功能来实现服务容错使用Spring Cloud Ribbon实现服务间的负载均衡使用Spring Cloud Zuul实现服务网关使用SpringCloud Config作为分布式配置中心使用Swagger对微服务进行测试并使用Jenkins的持续集成功能来实现自动化部署。
除了Spring Cloud之外Dubbo也是目前国内比较流行的分布式服务框架它们都具备分布式服务治理相关的功能都能够提供服务注册、发现、路由和负载均衡的能力。相比之下Spring Cloud提供了更加完整的一套企业级分布式云应用的解决方案包含了微服务组件中的方方面面并能够结合Spring Boot、Docker实现快速开发的目的而Dubbo只有Spring Cloud的一部分功能。由于二者具体的实现方式不同因此并没有好坏之分。企业在选用时需根据自身情况选择。