摘要: 一、ES集群模式 ES使用主从模式,因为ES的典型场景中的另一个简化是集群中没有那么多节点。通常节点数量远远小于单个节点能够维护的连接数,并且网络环境并不需要经常处理节点的加入和离开。 1、选举算法 ES中主要使用Bully算法作为选举算法(优点是易于实现) Bully算法:假定所有的节点都有一个唯 阅读全文
posted @ 2024-02-18 20:09 此木|西贝 阅读(965) 评论(0) 推荐(0)
摘要: 什么是ES? 是一个高可用分布式的搜索引擎。可以用于实时存储、检索数据。 底层是使用Lucene全文检索框架。 基本概念 存储结构:由_index _type和 _id标识唯一的一个文档 _index:指向一个或多个物理分片的逻辑命名空间 _type:用于区分同一个集合中的不同的细分(ES6.X中只 阅读全文
posted @ 2024-01-28 18:30 此木|西贝 阅读(30) 评论(0) 推荐(0)
摘要: synchronized是什么? java中使用synchronized关键字实现加锁/解锁,来保证多线程对共享资源的访问,防止多个线程同时访问共享资源导致数据问题。 synchronized是重量级锁还是轻量级锁? java早期版本中synchronized是重量级锁,无论是否发生了锁竞争,都会进 阅读全文
posted @ 2024-01-07 13:07 此木|西贝 阅读(45) 评论(0) 推荐(0)
摘要: 锁作用 java中的锁是用来控制多个线程访问共享资源的方式。一般来说一个锁能够防止多个线程同时访问共享资源(读写锁,读锁是共享锁允许多个线程读共享资源)。 锁的分类 乐观锁:在访问资源时,认为竞争不总是存在,所以在访问共享资源时不加锁,而是在更新数据时判断共享资源是否被其他线程修改(根据版本号/时间 阅读全文
posted @ 2024-01-07 09:06 此木|西贝 阅读(26) 评论(0) 推荐(0)
摘要: 一、线程池的优势 降低资源消耗。通过复用已创建的线程降低创建和销毁造成的消耗 提高响应速度。当任务到达后,任务可以不需要等待线程创建就能立即执行。 提高线程的可管理性。无节制的、随意的、不可控的创建线程会降低系统的稳定性以及提供不可控性。使用线程池可以统一管理、监控。 二、创建线程池的参数 core 阅读全文
posted @ 2024-01-01 17:07 此木|西贝 阅读(164) 评论(0) 推荐(0)
摘要: 定义 单例模式:确保一个类只有一个实例,并提供一个全局访问点。 适用场景 类中的方法是与状态无关的,且需要控制实例数目,节省系统资源 常用于数据库连接池、日志对象、缓存等 单例模式的实现方式 1、使用spring的bean容器管理进行创建,创建的实例默认都是单例,且线程安全。(推荐) 2、懒汉式-非 阅读全文
posted @ 2023-12-13 22:22 此木|西贝 阅读(22) 评论(0) 推荐(0)
摘要: 通过工厂模式,我们可以将对象的创建封装起来,达到提高重用和与业务代码解耦的目的。 工厂模式主要分为两类类 工厂模式 抽象工厂 开发中还会经常用到一个将对象的创建抽象出来的方案,就是简单工厂,他不算是一个具体设计模式。 简单工厂 定义 简单工厂:不算是一个真正的设计模式,却是一个常用的,将对象的创建和 阅读全文
posted @ 2023-12-12 22:35 此木|西贝 阅读(23) 评论(0) 推荐(0)
摘要: 使用JAP进行数据库操作时,出现ObjectOptimisticLockingFailureException “Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; 阅读全文
posted @ 2023-12-03 11:48 此木|西贝 阅读(3211) 评论(0) 推荐(1)
摘要: PostgresSql 备份表/数据,无索引与约束 (CREATE TABLE AS) CREATE TABLE [if not exists] 新表名 AS table 旧表 [with [no] data] if not exists:判断表是否存在,如果不存在进行创建,存在则不进行创建 wit 阅读全文
posted @ 2023-11-19 11:52 此木|西贝 阅读(817) 评论(0) 推荐(1)