引⼊spring cloud config后,我们的外部配置⽂件就可以集中放置在⼀个git仓库⾥,再新建⼀个config server,⽤来管理所有的配置⽂件,维护的时候需要更改配置时,只需要在本地更改后,推送到远程仓库,所有的服务实例都可以通过config server来获取配置⽂件,这时每个服务实例就相当于配置服务的客户端config client,为了保证系统的稳定,配置服务端config server可以进⾏集部署
6、Nginx
⽤来做反向代理、负载均衡,当有请求的时候,根据配置的调度策略(加权轮询、IP哈希、最少连接数、⼀致性哈希)给请求者返回相应的服务器IP。
7、Zuul服务⽹关
zuul的核⼼是⼀系列的filters, 其作⽤可以类⽐Servlet框架的Filter
Zuul的主要功能是路由和过滤器。是各种服务的统⼀⼊⼝,同时还会⽤来提供监控、授权、安全、调度等等;可以通过扩展ZuulFilter,在执⾏⽅法之前,做各种检查⼯作。
⼀:什么是微服务(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 的服务,⽤于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。
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。
springboot框架的作用
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:组件⽀持丰富,功能齐全

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