赞
踩
分布式微服务开发时的问题?
系统开销:网络问题,延迟开销,带宽问题,安全问题。
性能问题:由于各种运营开销导致的性能问题
服务发现:服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。
冗余问题:分布式系统中的冗余问题。
负载均衡:负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。
SpringCloud由什么组成?
Spring Cloud Eureka:服务注册与发现,包含服务注册中心,服务注册与发现机制的实现。
Spring Cloud Zuul:服务网关,提供智能路由,访问过滤功能
Spring Cloud Ribbon:客户端负载均衡的服务调用组件
Spring Cloud Feign:服务调用,给予Ribbon和Hystrix的声明式服务调用组件
Spring Cloud Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。(熔断、断路器,容错)
Spring Cloud Config:分布式统一配置管理
什么是Eureka?
Eureka服务注册中心,专注于微服务的服务注册与发现。
服务注册:每个服务都向 Eureka登记自己提供服务的元数据(服务的jp地址、端口号、版本号、通信协议等)。Eureka将各个服务维护在了一个服务清单中(双层Map,Map<服务名,Map<实例名,服务地址+端口>>)。同时对服务维持心跳,剔除不可用的服务, Eureka集群各节点相互注册每个实例中都有一样的服务清单。
服务发现:Eureka注册的服务之间调用不需要指定服务地址,而是通过服务名向注册中心咨询,并获取所有服务实例清单(缓存到本地),然后实现服务的请求访问。
Eureka集群(实现高可用AP),注册多个Eureka节点,然后把SpringCloud服务互相注册,客户端从Eureka获取信息时,按照Eureka的顺序来访问。这些节点都是平等的,当客户端向某一个节点注册时如果发现连接失败,会自动切换到其他节点。只要还有一台节点存在,服务就能正常工作(高可用),但是可能查询的信息不是最新的(不保证强一致性)。
Eureka的自我保护模式:
Eureka的客户端将其连接到Eureka的服务端中,并且保持心跳,这样工作人员可以通过Eureka的服务端来监控各个微服务是否运行正常。如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。
当Eureka发现85%以上的服务都没有心跳的话,Eureka 服务端就会认为自己的网络出问题了,进入自我保护模式,在该模式下Eureka 服务端会保护服务注册表中的信息,不在删除注册表中的数据,当网络故障恢复后,Eureka 服务端节点会自动退出自我保护模式(期间Eureka的客户端也会缓存服务信息)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。