前言:本文为参考他人的文章,是一篇学习记录型博客。理解linux的系统缓存机制有助于理解elasticsearch实时更新的原理。一、缓存机制为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘。缓存机制优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-04 09:25:54
                            
                                68阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            与其它操作系统一样,GNU/Linux 已经实现了内存的高效管理.但是如果有进程已经占用了内存并且你想清理它,Linux也提供了刷新或者清理缓存的方式。如何清理Linux的缓存?每个Linux系统都有三种方式去清理缓存并且在不中断任何程序或者服务的情况下.清理页面缓存 # sync; echo 1 > /proc/sys/vm/drop_caches清理 dentries 和 inodes.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 11:26:29
                            
                                130阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Zookeeper是可以存储数据的,所以我们可以把它理解一个数据库,实际上它的底层原理本身也和数据库是类似的。数据库的原理我们知道,数据库是用来存储数据的,只是数据可以存储在内存中或磁盘中。而Zookeeper实际是结合了这两种的,Zookeeper中的数据即会存储在磁盘中以达到持久化的目的,也会同步到内存中以到达快速访问的目的。事实上,用过Zookeeper的同学应该知道,Zookeeper中有            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-22 09:10:31
                            
                                43阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ZooKeeper基础整理一概述基本特性节点(Znode)节点特点节点类型节点信息命令ACL(权限控制机制)4种认证方案(scheme)5种操作权限(permission)权限相关命令超级权限管理员Watcher机制(观察与通知)Watcher工作过程& 特性集群服务角色角色状态ZAB协议 概述ZooKeeper是分布式协调服务程序, 可以实现分布式协调& 通知, 命名服务, 负            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-26 15:37:47
                            
                                33阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            什么是分布式缓存重建并发冲突问题?很简单,多个缓存服务实例提供服务,发现缓存失效,那么就会去重建,这个时候回出现以下几种情况:多个缓存实例都去数据库获取一份数据,然后放入缓存中新数据被旧数据覆盖缓存 a 和 b 都拿了一份数据,a 拿到 12:00:01 的数据,b 拿到 12:00:05 的数据缓存 b 先写入 redis,缓存 a 后写入。以上问题有多重解决方案,如:利用 hash 分发相同商            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-28 13:53:10
                            
                                76阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                    当SessionTracker的会话超时检查线程整理出一些已经过期的会话后,那么就要开始进行会话清理了。会话清理的步骤大致可以分为以下7步。标记会话状态为“已关闭”由于整个会话清理过程需要一段的时间,因此为了保证在此期间不再处理来自该客户端的新请求,SessionTracker会首先将该会话的isClosing属            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-21 13:08:57
                            
                                127阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            上一篇 分布式缓存重建并发冲突问题以及zookeeper分布式锁解决方案, 主要讲解了分布式缓存重建冲突原因及利用zookeeper分布式锁解决缓存重建冲突问题,本篇接着上篇,实现上篇思路,带你利用zookeeper代码实现分布式锁解决重建缓存冲突问题。缓存重建分析图从上图我们可以看出:缓存主动更新 我们监听kafka中的缓存操作消息队列,当接收到一个商品变更消息后,我们会立即根据源数据服务获取商            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-27 16:15:26
                            
                                235阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            简介Curator是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等等。Patrixck Hunt(Zookeeper)以一句“Guava is to Java that Curator to Zookeeper”给Curator予高度评价。  引子            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-28 10:31:23
                            
                                42阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            zookeeper注意:zookeeper虽然可以存储数据,但其主要职责是协调服务,因此一般不在zookeeper上的znode存储大量数据,ZooKeeper 给出的上限是每个结点的数据大小最大是 1M特点顺序一致性: 从同一客户端发起的事务请求,最终将会严格地按照顺序被应用到 ZooKeeper 中去。原子性: 所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,也就是说,要么整个            
                
         
            
            
            
            目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-16 09:35:26
                            
                                54阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            对于mysql,redis,Kafka,zookeeper磁盘缓存技术使用分析大部分组件是基于磁盘存储的,但由于CPU速度和磁盘速度之间的鸿沟,都会使用缓存技术来提高性能,缓存简单来说就是一块内存区域,首先将从磁盘读到的数据放在缓存中,之后查询或修改时直接操作缓存,对于缓存中的数据则以一定的频率刷新到磁盘上,怎样缓存,缓存多少,何时刷新,这些影响着整个组件的性能。在看过一些关于mysql等组件的架            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-15 09:29:08
                            
                                119阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                   内存溢出对于我们做开发的人来说肯定是听说过的,但是对于java开发程序员想要遇到一次真正的内存溢出还挺不容易的。因为java自己会有内存回收机制,所以我们一般都是分配好内存后只管使用,不管回收,不用担心内存的问题。而这次居然让我碰上了一次。可得好好记录一下。        首先问题的表象是这样的。项目中有            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-23 16:51:16
                            
                                240阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            zookeeper是一个分布式(集群)应用程序协调系统,具有分布式以及开源的特性,也是大数据hadoop生态中的一个基础服务,但不去不止用于hadoop系统。本次实验记录zookeeper集群的部署,扩容,缩容,基本操作以及监控,本文档将实验结果记录下来,作为研究档案,供将来差缺补漏。1. zookeeper集群结构与服务器信息在前面一节记录 zookeeper集群管理(1) zookeeper集            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-14 22:32:37
                            
                                157阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 崩溃恢复a). leader选择过程可以保证新leader是ZXID最大的节点
    b). ZAB协议确保丢弃那些只在leader上被提出的事务,场景 leader发出PROPOSAL收到ACK,但是发出COMMIT前产生崩溃,则新的群组会丢弃这条消息2. Leader选举过程2.1 服务器状态LOOKING 系统刚启动或Leader崩溃后选举状态,认为当前集群中没有leader,因此要            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-15 05:33:40
                            
                                48阅读
                            
                                                                             
                 
                
                             
         
            
            
            
               
  一. 软件架构的演变        软件架构的发展经历了由单体架构,垂直架构,SOA架构到微服务架构的演变过程。(一) 单体架构1. 概述        单体架构就是将所有的功能都放在一个项目中。 2. 优点        单体架构结构简单,前期的开发成本低,开发周期            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-07 11:52:37
                            
                                52阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            默认配置的zookeeper 3.5.5会占用8080端口场景今天下载了stable 3.5.5版本的zookeeper,启动的时候发现zookeeper讲8080端口给占用了?日志如下2019-09-10 16:22:59,991 [myid:] - INFO [main:JettyAdminServer@112] - Started AdminServer on address 0.0.0.0            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-20 14:44:12
                            
                                59阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在使用zookeeper过程中,我们知道,会有dataDir和dataLogDir两个目录,分别用于snapshot和事务日志的输出(默认情况下只有dataDir目录,snapshot和事务日志都保存在这个目录中,关于这两个目录的详细说明,请看《ZooKeeper管理员指南 》)。 正常运行过程中,ZK会不断地把快照数据和事务日志输出到这两个目录,并且如果没有人为操作的话,ZK自己是不会清理这些文            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-18 21:54:02
                            
                                407阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Zookeeper一、入门1.1概述zookeeper是一个为分布式应用提供协调服务的项目Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,比如服务器的状态。然后接受观察者客户端的注册,一旦这些数据的状态发生变化 ,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。1.2特点1)Zookee            
                
         
            
            
            
            ZooKeeper是分布式应用中的一种框架。ZooKeeper能干什么哪?我总结了一句话,就是:ZooKeeper是用来保证数据在集群间的事务性一致。我们细细品一下这句话,可以获得以下认识:ZK是集群部署的;集群之间是传递数据的;集群之间传递的数据必须保证在各个节点之间的事务性一致;这是我们获得的认识。下面谈一谈,ZK到底是怎么一回事?简单地讲,ZK是一个文件系统,类似于linux的文件,有根路径            
                
         
            
            
            
            缓存架构SpringBoot集成Curator实现zookeeper分布式锁这篇文章其实是下篇文章缓存架构之实战演练基于zk分布式锁解决分布式缓存并发冲突问题做理论铺垫的,下篇文章我们就会利用该工具解决分布式缓存并发冲突问题,就是下面这个架构,下篇文章我们会重点讨论:   
 一、分布式锁简介   
 1、什么是锁在单机环境下,当存在多个线程可以同时改变某个共享变量时,就需要同步来实现该            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-06 00:00:49
                            
                                59阅读
                            
                                                                             
                 
                
                                
                    