SpringCloud微服务----运维
Spring Cloud微服务----运维
相关概念:
分布式:将集中部署的架构进⾏分离部署
⾼可⽤:1.后端服务器
2.代理服务
3.集
4.负载均衡
微服务概念:
⼀种架构风格,⼀个⼤型复杂软件应⽤有⼀个或多个微服务组成。系统中的各个微服务可被独⽴部署,各个微服务之间是松耦合的。每个微服务仅关注于完成⼀件任务并很好地完成该任务。在所有情况下每个⼈物代表着⼀个⼩的业务能⼒
spring boot:是⼀个框架,⼀种全新的编程规范,他的产⽣简化了框架的使⽤,所谓简化是指简化了spring众多框架中所需的⼤量且繁琐的配置⽂件,所以spring boot是⼀个服务于框架的框架,服务范围是简化配置⽂件
spring cloud:基于spring boot提供了⼀整套微服务的解决⽅案,包括服务注册与发现,配置中⼼,全链路监控,服务⽹关负载均衡,熔断器等组件。spring cloud利⽤boot的开发便利性巧妙地简化了分布式系统的基础设施开发,spring cloud为开发⼈员提供了快速构建分布式系统的⼀些⼯具,包括配置管理、服务发现、断路器、路由、微代理、事件总线,他们都可以⽤boot的开发风格做到⼀键启动和部署
Cloud和Boot的区别:
Boot:专注于快速⽅便的开发单个个体微服务(关注微观)
微服务注册中心有哪些Cloud:关注全局的微服务协调治理框架,将Boot开发的⼀个个单体微服务组合并管理起来(关注宏观)
Boot可以离开Cloud独⽴使⽤,但是Cloud不可以离开Boot,属于依赖关系
Fegin(接⼝调⽤):微服务之间通过Rest接⼝通讯,Spring Cloud提供Fegin框架来⽀持Rest的调⽤,Fegin使得不同进程的Rest接⼝调⽤⼀样
eureka(注册中⼼):微服务模式下,⼀个⼤的web应⽤通常都被拆分为很多⽐较⼩的web应⽤(服务),这个时候就需要⼀个地⽅保存这些服务的相关信息,才能让各个⼩的应⽤彼此知道对⽅,这个时候就需要在注册中⼼注册⾃⼰的信息(IP地址,端⼝号,服务名称等信息),注册中⼼将他们保存起来,服务间相互调⽤的时候,通过服务名称就可以到注册中⼼到对应的服务信息,从⽽进⾏通讯。注册与发现服务为微服务之间的调⽤带来了⽅便,解决了硬编码的问题。服务间只通过对⽅的服务id,⽽⽆需知道其IP和端⼝既可以获取对⽅服务
Ribbon(负载均衡):Netflix发布的负载均衡器,有助于控制HTTP和TCP客户端的⾏为。为Ribbon配置服务提供者的地址列表后,Ribbon就可基于某种负载均衡算法,⾃动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。当然我们也可为Ribbon实现⾃定义的负载均衡算法。在Spring Cloud中国,当Ribbon于Eureka配合使⽤时,Ribbon可⾃动从EurekaServer获取服务提供者的地址列表,并基于负载均衡算法,请求⼀个服务提供者的实例(为了服务的可靠性,⼀个微服务可能部署多个实例)
Hystrix(熔断器):当服务提供者相应⾮常缓慢,那么消费者对提供者的请求就会被强制等待,直到提供者响应或超时。在⾼负载场景下如果不做任何处理,此类问题可能会导致服务提供者的资源耗竭甚⾄整个系统的崩溃。Hystrix正是为了防⽌此类问题发⽣。
Zuul(微服务⽹关):不同的微服务⼀般会有不同的IP地址,⽽外部客户端可能需要调⽤多个服务的接⼝才能完成⼀个业务需求。例如⼀个电影购票的⼿机APP,可能调⽤多个微服务的接⼝才能完成⼀次购票的业务流程,如果让客户端直接与各个微服务通信,会有以下问题:客户端会多次请求不同的微服务,增加了客户端的复杂性。存在跨域请求,在⼀定场景下处理相对复杂认证复杂,每个服务都需要独⽴认证。某些微服务可能使⽤了对防⽕墙/浏览器不友好的协议,直接访问时会有⼀定的困难。以上问题可以借助微服务⽹关解决
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论