springcloud

dubbo和 cloud

dubbo,高内聚,设计优美,spi可以自定义环节,支持http,rmi调用。
spring cloud功能全,config,zuul,gateway,springboot配置简单,不用处理依赖。

Eureka

注册中心+客户端+服务端,3种项目身份。
注册中心存储服务端服务列表。

eureka:
  server:
    eviction-interval-timer-in-ms: 60000

服务端提供服务,上线后会注册自己到注册中心,之后还有维护心跳监测,一个心跳周期后没有发现心跳,服务剔除。

 eureka:
   instance:
    instance-id: ae-usm-product
    #设置心跳的时间间隔
    lease-renewal-interval-in-seconds: 30
    lease-expiration-duration-in-seconds: 90

客户端
调用流程-> feign-> ribbon返回机器地址端口(eureka注册中心列表,负载均衡)。

eureka和zookeeper区别
zookeeper 遵守 cp
集群中有 master 节点挂掉了 其他节点会选举新的主节点 期间可能几分钟 zookeeper是挂掉的状态
eureka遵守 ap
强调可用性 集群节点都是平等的 节点失败 会启动用其他的节点
只有有一台 能用就可以继续使用
client 服务的提供者
https://mp.weixin.qq.com/s/MoVNY7i6NeHQ7aqp1cYytg
启动流程
http://www.saily.top/2020/03/15/springcloud/eureka01/

Zuul

如果前端、移动端要调用后端系统,统一从 Zuul 网关进入,由 Zuul 网关转发请求给对应的服务。可以做统一的降级、限流、认证授权、安全

ribbon

https://blog.csdn.net/hry2015/article/details/78357990
http://www.saily.top/2020/03/31/springcloud/ribbon01/
https://segmentfault.com/a/1190000021893974
https://blog.csdn.net/hry2015/category_9270400.html

feign

@RequestMapping(value = "/usm/approval/getApprovalTime", method = RequestMethod.POST)
String getApprovalTime(@RequestParam("orderId") String orderId);
1.如果写成
String getApprovalTime(String orderId);
orderId接收不到一直为null
@RequestParam是必须的

负载均衡

按照功能实现分类:
客户端负载均衡
robbin
dubbo
服务端负载均衡
一种是硬件负载均衡
F5
还有一种是软件负载均衡
nginx
常用的负载均衡策略:
随机+权重
轮询+权重
最小活跃数 看谁比较闲 就给谁
一致性hash 客户端访问服务端 机器固定

你可能感兴趣的:(springcloud)