分布式集群,Elastic-Job分布式任务调度,Session一致性

本文探讨了分布式和集群环境下的关键技术,包括一致性Hash算法、负载均衡策略、Nginx的一致性Hash配置,以及集群时钟同步。重点介绍了Elastic-Job分布式调度框架,讲解了其轻量级去中心化的特点、任务分片、弹性扩容等,并解决了Session共享问题,提出了Spring Session作为Session共享策略的解决方案。
摘要由CSDN通过智能技术生成

分布式和集群

1.基本概念:分布式和集群是不一样的,分布式一定是集群,但是集群不一定是分布式。
2.分布式是一个大系统拆分成多个小模块,而集群是实例的复制。

一致性Hash算法

1.有多种形式:除留余数法,开放寻址法,直接寻址法,线性构造Hash算法。
2.Hash算法在很多分布式集群产品中都有应用,比如分布式集群架构Redis、
  Hadoop、ElasticSearch,Mysql分库分表,Nginx负载均衡等
小结:一致性Hash算法主要的应用场景归纳起来两个:
		1.请求的负载均衡(比如nginx的ip_hash策略)。
		2.分布式存储

负载均衡(Hash算法应用)

1.普通Hash算法存在的问题:当服务器数量发生了变化(扩容/缩容),之前所有的求模都需要重新计算。		
  大量用户的请求会被路由到其他的目标服务器处理,用户在原来服务器中的会话都会丢失。
2.一致性Hash算法:首先有一条直线,直线开头和结尾分别定为为1和2的32次⽅减1,这相当于一个地址,
  对于这样一条线,弯过来构成一个圆环形成闭环,这样的圆环称为hash环。我们把服务器的ip或者主机名求
  hash值然后对应到hash环上,那么针对客户端用户,也根据它的ip进行hash求值,对应到环上某个位置,然后
  以顺时针获取最近的服务器,从而达到大部分的请求可以落到同一个服务器。避免了大量请求迁移。
  问题分析:有可能会存在请求倾斜的问题的,由于服务器数量较少分布不均匀导致的。
3.一致性Hash算法+虚拟节点:为了解决这种数据倾斜问题,一致性哈希算法引入了虚拟节点机制,即对每个服务
  节点计算多个哈希,每个计算结果位置都放置一个此服务节点,称为虚拟节点。当客户端被路由到虚拟节点的时候其实是被
  路由到该虚拟节点所对应的真实节点。

Nginx 配置一致性Hash负载均衡策略

1.ngx_http_upstream_consistent_hash 模块是个负载均衡器,使用一个内部一致性hash算法来选择合适的后端节点。 
  该模块可以根据配置参数采取不同的⽅式将请求均匀映射到后端机器,
  consistent_hash $remote_addr:可以根据客户端ip映射
  consistent_hash $request_uri:根据客户端请求的uri映射
  consistent_hash $args:根据客户端携带的参数进⾏映
  ngx_http_upstream_consistent_hash 模块是个第三方模块,需要我们下载安装后使用。 
2.我们已经编译安装过nginx,此时进入当时nginx的源码目录,执行如下命令:
  ./configure —add-module=/root/ngx_http_consistent_hash-master; make; make install;
  在nginx.conf文件负载均衡配置中添加:consistent_hash $request_uri
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值