HTTPS协议详解与Hash算法详解(二)(重点)

------------ 在继续上次HTTPS传输协议的加密方法的学习中,我们可以顺带来学习一下什么是HASH算法
1.先了解几个概念:CARP:Common Access Redundancy Protocol公用地址冗余协议,能够使多态主机共享一个IP地址,这样可以提高可用性,或实现负载均衡
2.负载均衡(相关技术为Nginx,博主:Sugar执着-----https://blog.csdn.net/tsummerb/article/details/79248015
首先了解一下什么是Nginx是一款自由的,开源的,高性能的HTTP服务器和反向代理服务器,进行网站的发布处理,作为反向代理进行负载均衡的实现
所谓代理,就是一个代表,一个渠道,两个角色:被代理角色和目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作。专卖店是代理,厂家是被代理角色,用户就是目标角色
正向代理:访问国外的网站,通过浏览器不行,操作FQ进行访问,FQ的主要方式是找到一个可以访问国外网站的代理服务器,请求发送给代理服务器,这就是正向代理,客户端非常明确要访问的服务器地址,正向代理模式屏蔽或隐藏真实客户端信息
反向代理如大天朝的某报网,单个服务器不足够满足,就出现分布式部署,大部分功能直接使用nginx进行反向代理部署实现,封装它和其他组件命名为Tengine
这里提到的客户端发送的,nginx反向代理服务器接受到的请求数量,就是我们所说的负载量。请求数量按照一定的规则进行分发到不同服务器处理的规则,就是一种均衡规则,负载均衡有硬件负载均衡(中国移动)和软甲你负载均衡(消息队列分发机制)
nginx支持的负载均衡调度算法:
1.weiight轮询(默认):接受到的请求信息按照一定顺序逐个分配到不同的后端服务器,可以给不同的后端服务器设置一个权重值,用于调整不同的后端服务器上请求的分配率
2ip_hash:每个请求按照发起客户端的ip的hash结果进行匹配,这样的下一个固定ip地址的客户端总会访问到同一个后端服务器,解决了集群部署下session共享的问题
说到session,我们需要来了解一下Cookie/Session机制详解
-------------------------------------分割线--------------------------------------
----博主:fangaoxin-----链接:https://blog.csdn.net/fangaoxin/article/details/6952954
绘画(Session)跟踪是web程序中常使用的技术,用来跟踪用户的整个会话。Cookie它通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
Cookie机制
理论上一个用户的所有请求操作都应该属于同一个会话,购物车属于一个会话。而WEb应用程序是使用HTTP协议传输数据的,HTTP协议是无协议的协议,一旦数据交换完毕,客户端与服务端的链接就会关闭,再次交换数据需要建立新的连接,也就是服务器无法连接上跟踪会话。如A在购物车购买了一件东西后,再次购买时服务器已经无法判断购买行为是A还是B,需要引入一种机制。弥补HTTP协议无状态的不足。
什么是Cookie
甜饼,由W3C组织提出,已称为一种标准,浏览器支持。由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份,给客户端办法一个通行证,每人一个,这样服务器就能通过通行证确认客户身份。实际上就是一小段文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来,当浏览器再次请i去该网站时,浏览器把请求网站的地址桶盖Cookie一同交给服务器,服务器检查该cookie,依次来辨认用户状态,服务器还可以根据需要修改该Cookie的内容。产看某个网站颁发的Cookie很容易:再浏览器地址输入:javascript:alert(document.cookie)就可以了,javascript脚本会弹出。
Java中把Cookie封装成了javax.servelt.http.Cookie类,每个Cookie都是该Cookie类的对象,服务器通过操作Cookie类对象对客户端Cookie进行操作。Cookie对象使用key-value属性对的保存用户状态,Cookie具有不可跨域名性
Session是另外一种记录客户端状态的机制,不同的是Cookie保存再客户端浏览器中,而Session保存再服务器上,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录再服务器上。通过检查客户细表来确认客户身份,Session相当于程序再服务器上建立的一份客户档案,客户来访的时候只需查询客户档案表就可以了。**新开的浏览器窗口会生成新的Session,但是子窗口除外,子窗口会共用父窗口的Session。
------详细了解session的还可以参考博文—站在村口的黄书记—https://blog.csdn.net/h19910518/article/details/79348051
--------------------------------------okokokokok-----------------------------------------
--------------------------回到我们之前的hash算法大佬的博客,这个大佬是linux的大佬,它的每天进步一点点的博客价值非常之高,其算法水平也是非常的高潮,可以像之前学习java109天的博客一样,值得我们每天来白嫖一点东西哈哈哈,博主:cywosp http://blog.csdn.net/cywosp/article/details/23397179
----------chankouba菜鸟们---------------------
**一致性哈希算法,设计目标是为了解决因特网中的热点,初衷与CARP十分相似。一致性哈希修正了简单哈希,一致性哈希提出再动态的cache环境中,判断哈希好坏的四个定义:1.平衡性使得缓存空间都得到充分的利用
2.单调性(Monotonicity)如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到系统中,哈希的结果怕保证源先分配的内容可以被映射到原来的或新的缓冲当中去。
3.分散性:相同的内容被不同的终端映射到不同的缓冲区,应该避免
4.负载:从另外一个角度看待分散性问题,对于一个特定的缓冲区可能被不同的用户映射为不同的内容
再分布式集群中,对于机器的添加或机器故障后自动脱离集群这个操作是分布式集群管理最基本的功能。如果采用常用的hash(object)%N算法,那么机器添加或者删除后,很多原有的数据就无法找到了,这样严重违反了单调性原则。一致性哈希算法来了:
环形Hash空间:
按照常用的hash算法来将对应的key哈希到一个具有2^32次方个桶的空间,将数字头尾相连,闭合环状。我们将object1,2,3,4 4个对象通过按照特定的hash函数计算出对应得key值,然后散列到hashhuan上:
将机器通过hash算法映射到环上
在采用一致性哈希算法得分布式集群中将新得机器加入,其原理是通过使用与对象存储一样得hash算法将机器也映射到换上,采用机器得ip或者别名作为输入值,然后以顺时针方向计算,将所有对象分别存储到离自己最近得机器中。
平衡性
yizhixing哈希算法虽然满足了单调性和负载均衡得特性以及一般hash算法得分散性,但是这还不能作为广泛应用得历有,因为还缺少平衡性。就是多个对像没有非常均匀得分布在各个节点上,这样一致性哈希算法引入了虚拟节点(virtual node)是实际节点(机器)在hash空间得复制品(replica),一个实际节点对应若干虚拟节点。
-----------------------------对于更详细得hash算法原理可以参考博客:汤商----https://blog.csdn.net/tanggao1314/article/details/51457585
-------------------分别gex-------------------------------------------------------------
处理哈希碰撞冲突—拉链法或者线性探测法—

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值