asynclogging类: 作用: 这是一个异步日志类:前端多个线程只管向这个日志类的缓冲区中写入日志,后端利用一个线程把缓冲区中的日志写入文件因此:日志数据流向过程是 [日志->缓冲区->文件]这是一个多生产者,单消费者的任务场景,多生产者负责把日志写入缓冲区,单消费者负责把缓冲区中数据写入文件 ...
分类:
其他好文 时间:
2020-09-04 17:22:47
阅读次数:
44
1.模式说明 应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度 只有3个角色:P:生产者,也就是要发送消息的程序C:消费者:消息的接受者,会一直等待消息到来。queue:消息队列,图中红色部分 2.应用举例 Producer: 1 /** 2 * 发送消息 3 */ 4 pu ...
分类:
其他好文 时间:
2020-08-18 13:51:39
阅读次数:
63
yuanwenlianjie:https://www.cnblogs.com/wt645631686/p/13473186.html 什么是消息延迟? 消息队列在消费过程中大量堆积就是消息延迟,也就是消费的频率跟不上生产。比方说,生产者向队列中一共生产了1000条消息,某一个消费者消费进度是900条 ...
分类:
其他好文 时间:
2020-08-12 15:57:39
阅读次数:
57
一重复消息为什么会出现消息重复?消息重复的原因有两个:1.生产时消息重复,2.消费时消息重复。1.1生产时消息重复由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动,生产者没有收到确认,实际上MQ已经接收到了消息。这时候生产者就会重新发送一遍这条消息。生产者中如果消息未被确认,或确认失败,我们可以使用定时任务+(redis/db)来进行消息重试。@Component@Slf4Jpublicc
分类:
其他好文 时间:
2020-08-06 20:53:42
阅读次数:
162
nacos 架构图 keyi 服务 一个或一组功能关键,不同的调用者可以以不同的目的重用这些服务。例如gRPC|Duboo|spring cloud RESTful service 服务注册中心 服务注册中心也是一个服务。服务实例在启动时候注册到注册表,关闭时在注册表注销。服务消费者或生产者或者路由 ...
分类:
其他好文 时间:
2020-08-06 09:20:01
阅读次数:
63
mq的作用主要是用来解耦,削峰,异步, 增加MQ,系统的复杂性也会增加很多, 也会带来其他的问题,比如MQ挂了怎么办,怎么保持数据的幂等性 幂等性问题通俗点讲就是保证数据不被重复消费,同时数据也不能少, 也就是数据一致性问题。 下面是MQ丢失的3种情况 1,生产者发送消息至MQ的数据丢失 解决方法: ...
分类:
其他好文 时间:
2020-08-04 14:12:11
阅读次数:
86
乱序执行的目的就是尽可能的防止分发停顿,比如真正的写后读相关时,流水线必须停顿。思路就是让相关的指令离独立的指令远一点。 乱序执行的条件 需要在值的生产者和消费者之间建立通信,这里消费者指的是当前这条指令,生产者指的是在与这条指令相关的指令。 寄存器重命名:给每个值一个tag。 需要给指令提供缓冲区 ...
分类:
其他好文 时间:
2020-08-02 16:16:21
阅读次数:
97
前言 Java中的线程池是一个很重要的概念,它的应用场景十分广泛,可以被广泛的用于高并发的处理场景。J.U.C提供的线程池:ThreadPoolExecutor类,可以帮助我们管理线程并方便地并行执行任务。因此了解并合理使用线程池非常重要。 本文对线程池采用 3W 的策略结合源码进行思考逐层分析,即 ...
分类:
编程语言 时间:
2020-08-01 21:28:20
阅读次数:
85