生产者消费者模式-->管程法 public class TestPC { public static void main(String[] args) { SynContainer container = new SynContainer(); new Productor(container).st ...
分类:
其他好文 时间:
2020-06-26 19:51:16
阅读次数:
70
什么是分区再分配: 如果该topic的分区大于1,那么生产者生产的数据存放到哪个分区,完全取决于key值,比如key=A,那么存到分区0,key=B,那么存到分区1,如果key为null,那么负载均衡存储到每个分区! 分区再分配监听器代码: end. ...
分类:
编程语言 时间:
2020-06-25 21:15:18
阅读次数:
65
Java 多线程基础(十二)生产者与消费者 一、生产者与消费者模型 生产者与消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”、“消费者”、“仓库”和“产品”。他们之间的关系如下: ①、生产者仅仅在仓储未满时候生产,仓满则停止生产。②、消费者仅仅在仓储有产品时候才能消费,仓空则等待。③、 ...
分类:
编程语言 时间:
2020-06-25 16:03:33
阅读次数:
69
1)引入maven依赖 我这里使用的是springboot 2.1.3.RELEASE 版本: <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </depe ...
分类:
其他好文 时间:
2020-06-25 12:20:32
阅读次数:
155
消息队列 为什么用? 解耦,削峰,异步 基本模型 生产者 -> MQ -> 消费者 Kafka 十万级/s 适用于大数据领域实时计算,日志采集, ActiveMQ 万/s , RabbitMQ 万/s , RocketMQ 十万/s 造成问题及解决 1.系统可用性降低 (MQ发生故障,全崩了) 2. ...
分类:
其他好文 时间:
2020-06-24 19:24:18
阅读次数:
68
import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ThreadLocalRandom; import java.util.concurr ...
分类:
编程语言 时间:
2020-06-24 00:45:51
阅读次数:
75
Java线程池Executor框架可以视为一个生产者消费者模型,但是如何正确保持生产者和消费者平衡,也就是向线程池投递任务的速度和线程池处理任务能达到一个平衡关系,被投递的任务能够及时的被处理,不会因为超过线程池负载出现任务丢失甚至导致程序崩溃。由于Executor框架默认提供了空闲线程回收机制,所 ...
分类:
编程语言 时间:
2020-06-24 00:20:55
阅读次数:
90
前言 此处的代码只是简化理解,实际项目会结合Spring使用。 一、队列模式特点 客户端包括生产者和消费者 队列中的消息只能被一个消费者消费 消费者可以随时消费队列中的消息 二、创建过程 1.创建连接Connection2.创建会话Session3.通过Session来创建其它的(MessagePr ...
分类:
其他好文 时间:
2020-06-23 18:57:12
阅读次数:
45
Kafka架构在硬件选择方面,以重要性顺序考虑以下4点: 1) 磁盘(最重要)。影响最大的事生产者,读写速度。需参考多个分区、多个目录,如一个分区每天生产1TB数据,10天就是10GB,再乘以分区数量。 2)网络。生产者、消费者写入、读取速度 3)内存。影响消费者,因为生产者如果写不了内存可以写磁盘 ...
分类:
其他好文 时间:
2020-06-22 01:34:55
阅读次数:
49
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。 这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当 队列满时,存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消 费者是从队列里拿元素的线程。阻塞队列就是生产 ...
分类:
其他好文 时间:
2020-06-21 16:04:43
阅读次数:
78