最近在使用集团内部的TimeTunnel时,查看了其订阅调度策略的背后原理,用到了一致性Hash技术,然后查阅了网上其相关的博客与资料,顺便说说自己的一些粗浅理解。 1. 应用场景      首先,如果从十几年前的名为“Consistent Hashing and Random Trees”论文中,可以看出一致性Hash算法的最初提出,是为了解决Web服            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-20 10:47:17
                            
                                58阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            简介一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。  但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人都知道,memcache            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-20 16:27:56
                            
                                119阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            转载请说明出处:     一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。       一致性hash算法提出了在动态变化的            
                
         
            
            
            
            网站响应速度优化包括集群架构中很多方面的瓶颈因素,这里所说的将页面静态化、实现分布式高速缓存就是其中的一个很好的解决方案...1)先来看看Nginx负载均衡Nginx负载均衡依赖自带的 ngx_http_upstream_module 、 ngx_http_memcached_module两大功能模块,其中一致性hash算法Nginx本身是不支持的,可以借助第三方模块            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-23 20:46:50
                            
                                273阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            配置https首先要有ssl证书,这个证书目前阿里有免费的,但如果自己做实验,也是可以自签证书,只不过不受信openssl genrsa -des3 -out server.key 1024             ##创建服务器私钥
openssl req -new -key server.key -out server.csr     ##创建签名请求的证书
cp server.key ser            
                
         
            
            
            
            session 粘滞性每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 upstream backserver {ip_hash;server 192.168.0.14:88;server 192.168.0.15:80;}但是有缺点,这存在单            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-10-28 21:25:00
                            
                                228阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            为什么80%的码农都做不了架构师?>>>     HTTP fastcgi模块fastcgi模块主要是将HTTP请求传递到fastcgi服务器配置文件示例:location / {
	fastcgi_pass  localhost:9000;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME /            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-02 20:37:22
                            
                                56阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1. Nginx重要算法介绍Nginx是什么,请自行百度。我们先介绍几个关键的算法,如果您还不了解这些算法在Nginx中所起的作用,请不要着急,本文后半部分将说明它们的作用。1.1 一致性Hash算法一致性Hash算法是现代系统架构中的最关键算法之一,在分布式计算系统、分布式存储系统、数据分析等众多领域中广泛应用。针对这个系列的博文,在负载均衡层、业务通信层、数据存储层都会有他的身影。hash算法            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-28 15:01:13
                            
                                58阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            背景可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有开源产品ZooKeeper实现的ZAB协议号称超越Paxos。在大数据场景下,分布式数据库的数据一致性管理是其最重要的内核技术之一,也是保证分布式数据库满足数据库最基            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-01 19:33:06
                            
                                232阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一致性hash解决的问题 在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进。   一            
                
         
            
            
            
            前言SOFA 内置负载均衡,支持 5 种负载均衡算法,随机(默认算法),本地优先,轮询算法,一致性 hash,按权重负载轮询(不推荐,已被标注废弃)。一起看看他们的实现(重点还是一致性 hash)。源码分析具体源码在 AbstractLoadBalancer 类中,子类需要实现 doSelect 方法:public abstract ProviderInfo doSelect(SofaReques            
                
         
            
            
            
            目录一、数据结构定义1. ngx_hash_elt_t hash表的元素结构2. ngx_hash_t hash表结构3. ngx_hash_init_t hash表初始化结构二、数据结构图三、具体函数实现1. 查找一个元素 ngx_hash_find2. 创建一个hash表 ngx_hash_initNginx的hash表结构和我们之前阅读memcached的时候看到的会有很大的差别。            
                
         
            
            
            
            1、nginx负载均衡中常见的算法及原理有哪些?nginx实现负载均衡需加载ngx_http_upstream_module模块,该模块提供服务器的分组分发、权重分配、状态检测、调度算法等高级功能。 算法: (1)轮询,相当于LVS中的RR;也可以设置权重,根据权重比实现轮询,相当于LVS中的WRR。(默认算法) (2)基于hash的调度算法。(consistent定义使用一致性hash运算)ha            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-13 17:36:07
                            
                                377阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一 数据一致性简介1 产生数据一致性的原因分布式系统中,存在多个服务节点,每份数据都有多份副本,每份副本对应一个服务节点如果网络、服务器或者软件出现故障,会导致部分节点写入成功,部分节点写入失败,最终导致各个节点之间的数据不一致 2 数据一致性的定义和分类数据一致性是指任一时刻,所有副本中的数据都保持一致强一致性:更新操作完成之后,任何时刻,所有副本中的数据都是更新后的数据。强一致性是程            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-24 22:33:42
                            
                                147阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Data LogicaI Consistency;
指数据在数据结构、数据格式和属性编码正确性方面,尤其是拓扑关系上的一致性。
逻辑一致性(logical consistency)与矛盾(Contradiction)相对; 
也即逻辑上的一致(logically consistent)= 没有逻辑矛盾(no logical contraction)            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-03-04 10:48:00
                            
                                1338阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Data LogicaI Consistency;
指数据在数据结构、数据格式和属性编码正确性方面,尤其是拓扑关系上的一致性。
逻辑一致性(logical consistency)与矛盾(Contradiction)相对; 
也即逻辑上的一致(logically consistent)= 没有逻辑矛盾(no logical contraction)            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-03-04 10:48:00
                            
                                1432阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            目录1、es5.0前,采用写入前检查存活shard的方式(1)consistency(2)quorum机制(3)quorum不齐全时不会直接拒绝写入2、es5.0后,采用写入后才确认的方式简单说就是primary shard写完,会同步到replica shard上,两者最终可能会出现不一致的情况。那es是如何确定主副分片的写一致性的呢?1、es5.0前,采用写入前检查存活shard的方式(1)c            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-15 16:38:42
                            
                                253阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            副本集基础  Replica Set是mongodb提供的一个去中心化的备份模式(同时mongodb还提供了主从部署和分片模式),每个mongod都可以是master,且副本集内会自动选举出一个primary,其他都暂时为seconary,primary挂掉后会自动选举出新的primary。副本集内所有mongod存储的都是数据全集,secondary节点会从primary同步数据操作以保证自己的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-11 09:51:05
                            
                                192阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Zookeeper如何保证数据一致性 虽说zk是比较老的框架了,但是其一致性的保证放在今天的中间件中依然是很强力的存在。其数据持久化的流程也是非常标准的流程,兼具了性能和一致性的取舍,非常值得我们学习。1 zk数据同步简述重要知识点:首先ZK的数据分为两部分,磁盘数据和内存数据磁盘数据:存储在物理介质上的数据(持久化数据),可能与内存数据不一致。内存数据:zk在启动时,会从磁盘上加载数据到内存中,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-08 08:38:03
                            
                                132阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ZAB(Zookeeper Atomic Broadcast) 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。ZAB协议包括两种基本模式,分别是:崩溃恢复和消息广播。崩溃恢复:当整个集群在            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-26 12:04:04
                            
                                97阅读
                            
                                                                             
                 
                
                                
                    