网站故障转移的意思简单理解就是当您的网站发生不可访问时,自动将业务转移到备用服务器上,与对对应的技术有负载均衡,备份服务器,自动漂移等
其中有个主要的连接池概念,是的,说的是连接池,玩Internet架构,连接池是必须掌握的。
连接池是什么?
建立和管理连接缓冲池的技术,其本质是资源重用,无需频繁地创建连接就可以提高性能。
demo:数据库连接池,服务连接池,所有连接池。
在微服务层次结构中,连接池起着非常重要的作用。
如上所示
(1)上面的虚线框,即网络集群;
(2)低层的虚线框,即service集群;
(3)绿色框,表示上游和下游建立的连接;
(4)表示连接池的蓝色框;
在这种情况下,一个调用者将建立与服务节点的2个连接,服务集群有3个集群,因此连接池总共有6个连接,从c1到c6。
除了将连接池中的收发信息从上层的调用端访问到下游的服务之外,在Internet架构中,还有哪些技术点与连接池有关?
一、故障转移和服务发现。
如上所示
(1)故障转移:假设旧的服务节点s1发生故障,c1和c2连接就会失效,并将其从连接池中清除,并且不再将后续请求发送到故障节点;
(2)服务发现:如果建立了新的服务节点s4连接,然后将c7和c8连接添加到连接池中,并将后续请求发送给新添加的节点;
用新增加的连接动态删除连接,即动态连接池。
该服务发现,如何识别新节点s4连接?
详情请参阅“改变配置,不想重启,怎么整?”
二、负载平衡。
使用轮询策略,在连接池中逐个使用连接,可以实现对下游服务访问的负载平衡。
使用完全随机策略,同样可以达到负载平衡。
如上所示
将每个连接的权值相等,在取连接到下游时,使用随机算法,将哪个网格连接用哪个连接,或上面的例子:
n=random()%6+1;
还有。
n=[1,2]访问s1;
n=[3,4]访问s2;
n=[5,6]访问s3;
3段宽度相同,即下落到某段服务的概率相等,负载均衡。
因此,如果服务节点的服务能力各不相同,有些处理能力很强,那么该怎么办?
三、重量静态负载平衡。
如上所示
为每个服务配置不同的权值,当连接池初始化时,不同服务的间隔大小不一样,在取连接访问下游时,从一个网格访问下一个网格的概率也有所不同:
n=random()%16+1;
还有。
n=[1,2]访问s1;
n=[3,6]访问s2;
n=[7,16]访问s3;
3段宽度与服务的权重成正比,即落到某一服务的概率等同权。
画外音:nginx就是支持这样的,但是静态的重量实在是太重了。
所以,如果服务节点的服务能力不同,但是很难用静态权重来识别,该怎么办?
四、动态负荷负荷平衡。
如上所示:连接池初始化时,动态权值被分配给连接。
绘图音:不再需要配置服务。
负载仍然按前一种方法分配,只是:
(1)连接处理超时,动态权重降低;
(2)成功的连接处理,动态重量增加;
更为详细的细节,请参见“异构服务器的负载平衡,如何设计?”
这样,根据服务的实际处理能力来分配负载的能力,会有什么意义吗?
故障恢复,服务发现,负载平衡,静态重量/动态重量负载均衡,你有收获吗?
建筑师之路——共享技术理念。
有关文章:
“改变了配置,不想重新启动,怎么整?”
不同服务器之间的负载平衡,如何设计?
调查:贵公司改用了底层连接池吗?