SpringCloud微服务分布式架构之组件和概念介绍
⼀:什么是微服务(Microservice)
微服务英⽂名称Microservice,Microservice架构模式就是将整个Web应⽤组织为⼀系列⼩的Web服务。这些⼩的Web服务可以独⽴地编译及部署,并通过各⾃暴露的API接⼝相互通讯。它们彼此相互协作,作为⼀个整体为⽤户提供功能,却可以独⽴地进⾏扩。
微服务架构需要的功能或使⽤场景
1:我们把整个系统根据业务拆分成⼏个⼦系统。
2:每个⼦系统可以部署多个应⽤,多个应⽤之间使⽤负载均衡。
3:需要⼀个服务注册中⼼,所有的服务都在注册中⼼注册,负载均衡也是通过在注册中⼼注册的服务来使⽤⼀定策略来实现。
4:所有的客户端都通过同⼀个⽹关地址访问后台的服务,通过路由配置,⽹关来判断⼀个URL请求由哪个服务处理。请求转发到服务上的时候也使⽤负载均衡。
5:服务之间有时候也需要相互访问。例如有⼀个⽤户模块,其他服务在处理⼀些业务的时候,要获取⽤户服务的⽤户数据。
6:需要⼀个断路器,及时处理服务调⽤时的超时和错误,防⽌由于其中⼀个服务的问题⽽导致整体系统的瘫痪。
7:还需要⼀个监控功能,监控每个服务调⽤花费的时间等。
⽬前主流的微服务框架:Dubbo、 SpringCloud、thrift、Hessian等,⽬前国内的中⼩企业⽤的⼤多数都是Dubbo,SpringCloud估计很少,也许有些开发同学都没听说过。
⼆:SpringCloud项⽬简介
springCloud是基于SpringBoot的⼀整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集状态管理等组件。最重要的是,跟spring boot框架⼀起使⽤的话,会让你开发微服务架构的云服务⾮常好的⽅便。
SpringBoot旨在简化创建产品级的 Spring 应⽤和服务,简化了配置⽂件,使⽤嵌⼊式web服务器,含有诸多开箱即⽤微服务功能
** spring cloud⼦项⽬包括:**
Spring Cloud Config:配置管理开发⼯具包,可以让你把配置放到远程服务器,⽬前⽀持本地存储、Git以及Subversion。
* Spring Cloud Bus:事件、消息总线,⽤于在集(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
* Spring Cloud Netflix:针对多种Netflix组件提供的开发⼯具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
* Netflix Eureka:云端负载均衡,⼀个基于 REST 的服务,⽤于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。
springboot框架的作用
* Netflix Hystrix:容错管理⼯具,旨在通过控制服务和第三⽅库的节点,从⽽对延迟和故障提供更强⼤的容错能⼒。
* Netflix Zuul:边缘服务⼯具,是提供动态路由,监控,弹性,安全等的边缘服务。
* Netflix Archaius:配置管理API,包含⼀系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
* Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
* Spring Cloud Sleuth:⽇志收集⼯具包,封装了Dapper,Zipkin和HTrace操作。
* Spring Cloud Data Flow:⼤数据操作⼯具,通过命令⾏⽅式操作数据流。
* Spring Cloud Security:安全⼯具包,为你的应⽤程序添加安全控制,主要是指OAuth2。
* Spring Cloud Consul:封装了Consul操作,consul是⼀个服务发现与配置⼯具,与Docker容器可以⽆缝集成。
* Spring Cloud Zookeeper:操作Zookeeper的⼯具包,⽤于使⽤zookeeper⽅式的服务注册和发现。
* Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
* Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令⾏⽅式快速建⽴云组件。
SpringCloud特点
1:约定优于配置
2:开箱即⽤、快速启动
3:适⽤于各种环境
4:轻量级的组件
5:组件⽀持丰富,功能齐全
三: SpringBoot了解
Spring Boot让我们的Spring应⽤变的更轻量化。⽐如:你可以仅仅依靠⼀个Java类来运⾏⼀个Spring引⽤。你也可以打包你的应⽤为jar 并通过使⽤java -jar来运⾏你的Spring Web应⽤。
由于SpringCloud依赖SpringBoot,所以在学习SpringCloud框架之前需要了解下SpringBoot。
SpringBoot的主要优点:
1:为所有Spring开发者更快的⼊门
2:开箱即⽤,提供各种默认配置来简化项⽬配置
3:内嵌式容器简化Web项⽬
4:没有冗余代码⽣成和XML配置的要求

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。