Spring Cloud(Spring复习四)

1. Spring Cloud之Eureka

  • 作用:将应用根据不同的功能划分成不同的服务,方便维护和复用,但是服务如何找到需要的服务地址较为麻烦,在配置文件中写死,硬编码并不可取。该组件的功能就是提供一个服务的注册和发现的功能。特点:高可用,由以下几点保证,1.客户端会缓存服务的注册表信息,2.服务端会向客户端发起心跳,确认是否断开,3.可以存在多个服务端,他们之间的数据可以相互同步。
  • 实现:
    • 创建Eureka Server(注册中心)
      1. 创建Maven工程
      2. 引入Cloud的依赖,加入eureka-server的包
      3. 编写启动类
      4. application.yml配置文件中进行配置
      5. 启动
    • 创建Eureka Client
      1. 创建Maven工程
      2. 引入Cloud的依赖,加入eureka-server的包
      3. 编写启动类,启动类上加入@EnableDiscoveryClient注解
      4. application.yml配置文件中进行配置服务端的地址,从而注册
      5. 注入DiscoveryClient,并通过服务ID获取服务实例,从而获取IP和端口
      6. 启动
  • 原理:客户端将服务的信息注册到注册中心,Eureka Server会将这些信息存储在自己的注册表中,当有其他的Eureka Server注册时,注册表中的内容会进行同步,并且Eureka Server会定时对客户端发起心跳,确保客户端可用的状态。客户端也会缓存一份服务端的注册表,即使注册中心和客户端间出现网络故障,客户端依然能够找到需要的服务的地址,从而保证系统高可用。

springcloud(十三):注册中心 Consul 使用详解

2. Spring Cloud之Ribbon

  • 作用:可切换服务间调用的负载均衡算法

  • 实现:

    1. 引入Ribbon的依赖
    2. 在定义RestTemplate的实例方法上加@LoadBalanced注解
  • 原理:底层使用了拦截器,在调用服务时,会经过Ribbon的拦截器,将服务名解析为服务的地址:IP+端口的形式替换原有的服务名,从而完成调用

  • 负载均衡的策略

策略类命名描述
RandomRule随机策略随机选择server
RoundRobinRule轮询策略按照顺序选择server(ribbon默认策略)
RetryRule重试策略在一个配置时间段内,当选择server不成功,则一直尝试选择一个可用的server
BestAvailableRule最低并发策略逐个考察server,如果server断路器打开,则忽略,再选择其中并发链接最低的server
AvailabilityFilteringRule可用过滤策略过滤掉一直失败并被标记为circuit tripped的server,过滤掉那些高并发链接的server(active connections超过配置的阈值)
ResponseTimeWeightedRule响应时间加权重策略根据server的响应时间分配权重,响应时间越长,权重越低,被选择到的概率也就越低。响应时间越短,权重越高,被选中的概率越高,这个策略很贴切,综合了各种因素,比如:网络,磁盘,io等,都直接影响响应时间
ZoneAvoidanceRule区域权重策略综合判断server所在区域的性能和server的可用性,轮询选择server并且判断一个AWS Zone的运行性能是否可用,剔除不可用的Zone中的所有server

3. Spring Cloud之Hystrix

  • 作用:解决因其中的一个服务挂掉而无法调用,导致级联故障,整个系统都无法使用,从而产生雪崩的结果,提供容错保护的机制,
  • 实现:
    1. 引入Hystrix的依赖
    2. 在应用上加入@EnableHystrix注解
    3. 在调用服务的Service方法上加入@HystrixCommand注解,并标明备用方法
    4. 实现备用方法,调用即可
  • 原理:发起请求通过Histrix线程池,不同的服务调用会走不同的线程池,实现了服务调用的隔离,在调用达到容错的阈值时,会调用备用的方法进行处理,避免级联故障

4. Spring Cloud之Feign

  • 作用:使用Spring MVC申明式注解调用,基于Ribbon实现,有负载均衡的功能,还整合了Hystrix,但在Dalston版本中是关闭的
  • 实现:
    1. 引入Feign的依赖
    2. 在应用上加入@EnableFeignClients注解
    3. 在调用服务的Service类上加上@FeignClient注解,标注服务名,并根据Spring MVC的注解格式注解接口的方法
    4. 调用服务,直接调用上述的接口方法即可
  • 原理:通过动态代理实现,实际调用的是根据注解解析生成的一个代理,代理实现的功能是找到服务地址,调用后再将数据组装返回

5. Spring Cloud之Zuul

  • 作用:对外提供统一的网关功能,统一的调用方式,校验、权限控制、负载均衡的功能
  • 实现:
    1. 创建项目,引入zuul依赖
    2. 在应用上加入@EnableZuulProxy注解
    3. 配置路由规则
    4. 配置ZuulFilter
    5. 启动测试
  • 原理:在服务调用前,先通过一层网关,统一封装了网关的功能

6. Spring Cloud之Config

  • 作用:集中管理服务的配置,提高了复用性和维护性
  • 实现:
    • 创建Config Server
      1. 引入Cloud的依赖,加入config-server的包
      2. 编写启动类
      3. application.yml配置文件中进行配置,配置获取配置文件的方式和位置
      4. 启动
    • 创建Config Client
      1. 引入Cloud的依赖,加入config和actuator(加入refresh配置的功能)的包
      2. bootstrap.yml配置文件中加入配置服务的地址,在application.yml配置文件中启用actuator
      3. 通过注解的方式引入配置,在类上加入@RefreshScope的功能
      4. 调用refresh请求会进行配置文件的刷新
  • 原理(猜测):客户端在启动时,会首先根据配置的Config服务取获取相应的配置文件,当收到refresh方法时,会再去获取一遍参数,进行更新

7. Spring Cloud之Bus

  • 作用:统一的通知所有的服务或者配置的维度的服务
  • 实现:
    1. 在conifg-server中加入bus-amqp依赖
    2. 配置文件中加入rabbitmq配置
    3. web-hook地址修改为config-server地址/bus/refresh
    4. 启动测试
  • 原理:会将refresh统一分发出去

8. Spring Cloud与Dubbo区别

  1. spring cloud集成的组件更多,本身含有注册中心,而dubbo的注册中心是zookeeper
  2. 服务和注册中心间的连接协议不同,spring cloud是http,而dubbo的协议更加多样,基于长连接的方式交互,性能相对更好
  3. spring cloud通过心跳通知服务的消费者,而zookeeper通过长连接通知服务的变更
  4. dubbo是RPC,依赖关系更大,需要接口相同,而spring cloud是REST方式,更为轻量化,但是容易导致接口定义和文档不一致,但可通过swagger解决

dubbo

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值