摘要:一、基本结构 工作原理: 所有中间件技术都是基于 TCP/IP 协议基础之上进行构建新的协议规范,RabbitMQ遵循的是AMQP协议(Advanced Message Queuing Protocol - 高级消息队列协议)。 生产者发送消息流程: 1、生产者和Broker建立TCP连接; 2、生
阅读全文
摘要:一、前言 Zookeeper服务端集群启动,Leader选举是很重要的一部分。 二、Leader选举 2.1 Leader选举概述 Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。 (1) 服务器初始化启动。
阅读全文
摘要:节流(throttling)和防抖(debouncing) 一、概念节流(throttling)和防抖(debouncing)是在处理用户输入和其他事件时常用的两种性能优化技巧。它们的主要目的是控制事件触发的频率,以避免不必要的重复操作,减轻系统负担,提高用户体验。 1.节流(Throttling)
阅读全文
摘要:一、流程实例 什么是流程实例 流程实例(ProcessInstance)代表流程定义的执行实例。 一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。 启动流程实例 并添加Businesskey(业务标识)流程定义部署在activiti后,就可以在系统中通过acti
阅读全文
摘要:一、工作流介绍1.1 概念工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。 1.2 工作流系统一个软件系统中具有工作流的功能,我们把它称为
阅读全文
摘要:思维导图 基于内存实现 这点在一开始就提到过了,这里再简单说说。 Redis 是基于内存的数据库,那不可避免的就要与磁盘数据库做对比。对于磁盘数据库来说,是需要将数据读取到内存里的,这个过程会受到磁盘 I/O 的限制。 而对于内存数据库来说,本身数据就存在于内存里,也就没有了这方面的开销。 高效的数
阅读全文
摘要:settings.xml文件是干什么的,为什么要配置它?从settings.xml的文件名就可以看出,它是用来设置maven参数的配置文件。并且,settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。Settings.xml中包含类似本地仓储位置、修改远程仓储
阅读全文
摘要:缓存穿透:指查询一个一定不存在的数据。由于缓存命不中时会去查询数据库,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决方案: 1.是将空对象也缓存起来,并给它设置一个很短的过期时间,最长不超过5分钟2.采用布隆过滤器,将所有可能存在的数据哈希到一个足
阅读全文
摘要:0、排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数
阅读全文