spring Cloud的优缺点?
优点:
- 耦合度比较低,不会影响其他模块的开发
- 减轻团队成本,可以并行开发
- 微服务跨平台,可以使用任何一种语言开发
缺点:
- 部署比较麻烦
- 数据管理较麻烦
- 系统集成测试较麻烦
Spring cloud五大组件有哪些?
Eureka:注册中心
Ribbon:负载均衡
Feign:远程调用
Hystrix:服务熔断
Gateway:网关
什么是Eureka?
Eureka是服务注册中心,系统中的服务使用Eureka客户端将其注册到Eureka Service中,并且保持心跳,这样工作人员可以通过Eureka Service来监控各个微服务是否运行正常。
服务注册和服务发现是什么意思?Spring Cloud如何实现服务注册发现?
主要是三大功能:服务注册、服务发现、服务状态监控
服务注册:服务者把自己的信息注册到Eureka,由Eureka来保存这些信息,比如服务名称、端口等
服务发现:消费者向Eureka拉取服务列表信息,如果服务提供者有集群,则消费者就会利用负载均衡选择一个发起调用
服务监控:服务提供者每隔30秒向Eureka发送心跳,报告健康状态,如果Eureka服务90秒没有接收到心跳,将会从Eureka剔除
Nacos与Eureka的区别?
共同点:
Nacos与Eureka都支持服务注册和服务拉取,都支持服务提供者心跳方式做健康监测
区别:
- Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测
- 临时实例心跳不正常会被剔除,非临时实例不会被剔除
- Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
如何实现负载均衡?
在服务调用过程中负载均衡一般使用spring Cloud的Ribbon组件实现,Feign的底层已经集成了Ribbon,使用起来很简单
当发起远程调用时,Ribbon先从注册中心拉取服务地址列表,然后按照一定的路由策略选择一个服务发起调用,默认采用轮询策略
Ribbon负载均衡策略有哪些?
- RoundRobinRule:简单轮询服务列表来选择服务器
- WeightedResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小
- RandomRule:随机选择一个可用的服务器