
分布式知识
文章平均质量分 84
分布式知识
酱学编程
系统架构师,软件设计师
展开
-
日志系统实践
Logback是一个功能强大且广泛使用的Java日志框架,用于控制Java应用中日志的输出格式、级别以及输出目标等方面。,说明在每条日志记录后面会添加换行符,使每条日志在控制台输出时各占一行,便于查看和区分不同的日志记录。及以上级别的日志输出到控制台,并且对日志的时间戳、JSON格式的具体样式等做了相应的规范设置。,也就是按照年-月-日 时:分:秒.毫秒这样精确到毫秒的格式来记录日志产生的时间。,则输出的JSON会有缩进等美化排版,方便查看,但会占用更多空间)。标签定义了时间戳的格式,设置为。原创 2025-01-14 23:02:02 · 820 阅读 · 0 评论 -
ES搜索原理
搜索引擎的检索过程是通过倒排索引来实现的,这个过程可以分为几个关键步骤,让我们逐步解析搜索引擎如何利用倒排索引进行检索,并强调倒排索引在快速定位相关文档方面的高效性。遍历每个文档,对于文档中的每个关键词,将其映射到文档的唯一标识符(文档ID)。遍历每个文档,对于文档中的每个关键词,将其映射到文档的唯一标识符(文档ID)。如果查询包含多个关键词,搜索引擎会对这些关键词的倒排列表进行交集操作,得到包含所有关键词的文档ID列表。将词语还原为其词干形式,去除词尾,以便将相关的词汇映射到同一词根,减少索引的大小。原创 2024-12-21 11:11:36 · 1208 阅读 · 0 评论 -
【java技术】定时任务的实现原理 优先级队列,时间轮算法
优先队列更适合任务数量相对较少的场景,插入和删除操作的效率较高。适用于需要频繁插入和删除任务的情况。时间轮算法更适合大规模并发任务的调度,特别是任务数量巨大且需要低延迟调度的情况。特别适用于需要定期执行的任务,例如每分钟、每小时等周期性任务。在实际应用中,可以根据具体的需求和场景选择合适的算法来实现定时任务的调度。例如,在 Xxl-Job 中,虽然没有明确提到使用优先队列或时间轮算法,但其调度机制可能采用了类似的技术来实现高效的任务调度。原创 2024-07-24 22:58:33 · 706 阅读 · 0 评论 -
【java技术】xxl-job的实现
Xxl-Job 通过调度中心和执行器的配合,实现了分布式任务的调度和执行。调度中心负责任务的管理和调度,执行器负责具体的任务执行逻辑。这种设计使得 Xxl-Job 能够高效地管理大量的任务,并且具备高可用性和扩展性。通过使用 HTTP 协议进行通信,Xxl-Job 提供了一个灵活且易于集成的解决方案。原创 2024-07-24 22:50:34 · 564 阅读 · 0 评论 -
消息队列-概述-JMS和AMQP
一条消息只能被一个消费者使用,未被消费的消息在队列中保留直到被消费或超时。比如:我们生产者发送 100 条消息的话,两个消费者来消费一般情况下两个消费者会按照消息发送的顺序各自消费一半(也就是你一个我一个的消费。,是应用层协议的一个开放标准,为面向消息的中间件设计,兼容 JMS。JMS(JAVA Message Service,java 消息服务)是 Java 的消息服务,JMS 的客户端之间可以通过 JMS 服务进行异步的消息传输。发布者发布一条消息,该消息通过主题传递给所有的订阅者。原创 2024-06-16 17:08:47 · 405 阅读 · 0 评论 -
集群与分布式的概念及区别
集群是将多台服务器集中在一起,实现同一业务**;而分布式是将不同的业务分布在不同的地方。在实际应用中,可以结合使用集群和分布式,根据业务需求搭建更为稳健和高效的系统架构。原创 2023-12-22 00:04:26 · 2134 阅读 · 0 评论 -
本地缓存与分布式缓存
缓存,消息队列,分库分表是高并发解决方案三剑客。对于应用系统来讲,我们经常将缓存划分为本地缓存和分布式缓存。原创 2023-12-17 22:43:18 · 1065 阅读 · 1 评论 -
缓存与分布式锁,Redision
问题:redis.get(“lock”) 的网络可能会消耗一定的时间,比如给这个key设置了10s的过期时间,前面的业务执行话了9.5S,在获取原来的值的时候的过程中,过期被另一个线程获取了,这个时候删除的就是别的线程的锁了。问题:在删锁的时候,删的可能不是自己的锁,例如,如果设置锁的过期时间为10,但是改业务已经执行了30s,自己的锁已经过期了,但是现在还能删除,说明删除的是别人占用的锁。● 定义:数据库中的数据已经更新了,但是缓存中的还没更新,导致用户访问到的还是旧的数据,造成了数据的不一致。原创 2023-12-03 20:07:50 · 1002 阅读 · 2 评论