
中间件
文章平均质量分 71
中间件
存在,及合理
记录点点滴滴,汇成山河大海
展开
-
中间件目录
RabbitMQ Documentation | RabbitMQhttps://gitee.com/middleware_drl/message原创 2024-08-04 19:27:22 · 211 阅读 · 0 评论 -
kafka-事务
和普通的Producer 代码相比,事务型Producer 的显著特点是调用了一些事务API 如:initTransaction(事务初始化)、beginTransaction(事务开始)、commitTranscation(事务提交)、abortTransaction(事务终止)。read_uncommitted:这是默认值,表明Consumer能够读取到Kafka写入的任何消息,在用事务型Producer时,对应的consumer 就不要使用这个值。当然它也能看到非事务型Producer 写入的消息。原创 2024-10-03 17:05:55 · 608 阅读 · 0 评论 -
KafkaConsumer
【代码】KafkaConsumer。原创 2024-10-03 16:05:08 · 390 阅读 · 0 评论 -
kafka消费策略
那个partition由哪个consumer来消费不同的消费策略其实都是可能会出问题 主要原因是消费组消费的主题不一致消费者组中其实有一个管理者的,称之为Coordinator主要用于管理消费者组Kafka会选择位移主题的Leader(Broker)作为CoordinatorCoordinators会将第一个加入的Consumer作为Leader,其他flo Leader来决定消费策略后,将策略上传到Coordinator 其他消费者在Join后,可以获取消费策略。原创 2024-10-03 15:55:20 · 485 阅读 · 0 评论 -
kafka-心跳机制
如果组内的消费者出现故障,那么必须重新分配资源 将重新分配的操作称之重平衡重平衡操作特别耗性能,所以能不做就不做。原创 2024-10-03 15:18:57 · 552 阅读 · 0 评论 -
kafka 消费者组与重平衡与offset
消费能力不足时,可以在消费者组,扩展消费者一个topic 可以被多个消费者组消费消费者是消费组的一部分。消费组保证每个分区只能被一个消费者使用,避免重复消费单个Partition只能由消费者组中某个消费者消费消费者数量不应该大于主题的分区数量,因为没有意义消费者都隶属于同一个消费组,相当于点对点模型消费者都隶属于不同的消费组,相当于发布/订阅模式的应用。原创 2024-10-03 14:47:25 · 784 阅读 · 0 评论 -
kafka 消费者-ConsumerConfig
如果设置了 read_uncommitted (默认值), 消费者的poll方法返回所有的消息,即使是已经取消的事务消息。消息总是以偏移量的顺序返回。结果, read_committed 模式,如果有为提交的事务, 消费者不能读取到直到HW的消息。消费者批量拉取消息,如果第一个非空消息批次的值比该值大, 消息批也会返回,以让消费者可以接着进行。如果'enable.auto.commit'为true,则消费者偏移自动提交给Kafka的频率(以毫秒为单位),默认值为5000(自动确认offset的时间间隔)原创 2024-10-03 08:04:53 · 915 阅读 · 0 评论 -
KafkaProducer 示例-拦截器- 分区 KafkaProducer-序列化器
日志 或错误的记录implements ProducerInterceptor序列化器实现了接org.apache.kafka.common.serialization.serializer的key序列化类 实现了接口org.apache.kafka.common.serialization.serializer的value序列化类 分区源码KafkaProducer自定义分区 KafkaProducer示例原创 2024-10-02 22:44:08 · 561 阅读 · 0 评论 -
kafka-消息发送-业务流程
业务流程主线程消息收集器RecoderAccumulator为每个分区都维护了一个Deque<ProducerBatch> 类型的双端队列。ProducerBatch 可以理解为是 ProducerRecord的集合,批量发送有利于提升吞吐量,降低网络影响 由于生产者客户端使用 java.io.ByteBuffer 在发送消息之前进行消息保存,并维护 了一个 BufferPool 实现 ByteBuffer 的复用;该缓存池只针对特定大小(batch.size 指定)的原创 2024-10-02 21:59:09 · 842 阅读 · 0 评论 -
kafka-生产者配置-消息发送
long型值,默认:60000,可选值:[0,...]在向一个指定的主题分区重发消息的时候,重试之间的等待时间。该设置会限制单个请求中消息批的消息个数,以免单个请求发送太多的数据。对于每个连续的连接失败,每台主机的退避将成倍增加,直至达到此最大值。如果该值大于1,且存在失败的请求,在重试的时候消息顺序不能保证。实现了接口 org.apache.kafka.clients.producer.Partitioner 的分区器实现类。TCP接收缓存(SO_RCVBUF),如果设置为-1,则使用操作系统默认的值。原创 2024-10-02 21:45:12 · 937 阅读 · 0 评论 -
AdminClient
建议设置auto.create.topics.enable=false。建议设置delete.topic.enable:=true。原创 2024-10-02 19:10:04 · 267 阅读 · 0 评论 -
kafka 为什么快
对消息进行压缩可以极大地减少网络传输 量、降低网络I/O,从而提高整体的性能。实际IO读写,需要进行IO中断,需要CPU响应中断(内核态到用户态转换),尽管引入DMA(DirectMemory Access,直接存储器访问)来接管CPU的中断请求,但四次copy是存在“不必要的拷贝”的。ead-ahead,提前将一个比较大的磁盘块 读入内存) 和后写(write-behind,将很多小的逻辑写操作合并起来组成一个大的物理写操作)技术。对消息进行分区,提高了数据生产与消费的并行度,有效的提升了数据的吞吐量。原创 2024-10-02 18:52:38 · 965 阅读 · 0 评论 -
kafka Replica
为保证producer发送的数据,能可靠的发送到指定的topic,topic的每个partition收到producer发送的数据后,都需要向producer发送ack(acknowledgement确认收到),如果producer收到ack,就会进行下一轮的发送,否则重新发送数据。leader发生故障之后,会从ISR中选出一个新的leader,之后,为保证多个副本之间的数据一致性,其余的follower会先将各自的log文件高于HW的部分截掉,然后从新的leader同步数据。原创 2024-10-02 16:14:48 · 1112 阅读 · 0 评论 -
kafka-SpringBoot
【代码】kafka-SpringBoot。原创 2024-10-02 14:15:55 · 383 阅读 · 0 评论 -
kafka-exactly-once
如果broker恰好在消息已经成功写入Kafka topic后,发送ack前,出了故障,生产者的重试机制就会导致这条消息被写入Kafka两次,从而导致同样的消息会被消费者消费不止一次。比如,在成功消费一条消息后,你又把消费的offset重置到之前的某个offset位置,那么你将收到从那个offset到最新的offset之间的所有消息。在各种类型的失败普遍存在的分布式系统环境下,保证业务层面一个整体的消息集合被原子的发布和恰好一次处理,是数据一致性在 Kafka 生态系统的实际要求。原创 2024-10-02 12:46:38 · 206 阅读 · 0 评论 -
kafka基本架构与文件存储机制-Zookeeper在Kafka中的作用
Kafka集群中有一个broker会被选举为Controller,负责管理集群broker的上下线,所有topic的分区副本分配和leader选举等工作。针对每个消息的 Key 进行整合,对于有相同 Key 的不同 Value 值,只保留最后一个版。按照一定的删除策略,将不满足条件的数据进行数据删除。当日志文件达到阈值则滚动到新文件上。日志允许串行的追加消息到文件最后。原创 2024-10-02 12:37:33 · 633 阅读 · 0 评论 -
kafka的安装单机 图形管理工具
访问地址:http://服务器IP:9001/ DEFAULT_USERNAME:默认账号admin DEFAULT_PASSWORD:默认密码admin。原创 2024-10-01 23:01:32 · 366 阅读 · 0 评论 -
kafka介绍
Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基于zookeepert协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache:基金会并成为顶级开源项目。主要应用场景是:日志收集系统和消息系统。有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。大部分的消息系统选用发布-订阅模式对于消息中间件,消息分推拉两种模式。Kafka。原创 2024-09-29 20:54:24 · 985 阅读 · 1 评论 -
kafka 官网原生配置文件(参考)
nametasks.max1topics##localhost9092group.id# it totruetrue11110000nametasks.max1filetopicsnametasks.max1filetest.txttopic%L)%nERRORclustersA, BA_host19092B_host19092true。原创 2024-09-28 22:23:37 · 1331 阅读 · 1 评论 -
消息-协议
当然,也有可能不止一个B对A的更新信息感兴趣,可能会有N个类似B的应用程序想从A中获取更新的信息。JMS即Java消息服务(JavaMessageService)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Destination的意思是消息的生产者的消息发送目标或者说消息消费者的消息来源。服务器发送了消息,然后就不管了;:JMS天生就是异步的,客户端获取消息的时候,不需要主动发送请求,消息会自动发送给可用的客户端。原创 2024-09-28 00:12:34 · 724 阅读 · 0 评论 -
消息-协议-AMQP
Advanced Message Queuing Protocol高级消息队列协议,也是一个消息代理的规范,兼容JMSRabbitMQ是AMQP的实现。原创 2024-09-28 00:12:02 · 1082 阅读 · 0 评论 -
消息-邮件springMail
【代码】消息-邮件springMail。原创 2024-09-28 00:04:16 · 233 阅读 · 0 评论 -
Artemis- 安装
指定的文件下/home/hy/broker创建artemis的broker。并且绑定httphost为。原创 2024-09-27 23:53:24 · 418 阅读 · 0 评论 -
消息-主题和队列
队列是先进先出(FIFO, First-In-First-Out)的线性表(Linear List)。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为 rear)进行插入操作,在前端(称为 front)进行删除操作,第一个是先进先出,在消息入队出队过程中,需要保证这些如果有多个生产者往同一个队列里面发送消息,这个队列中可以消费到的消息,就是这些生产者生产的所有消息的合集。。如果有多个消费者接收同一个队列的消息,这些消费者之间实际上是,每个消费者只能收到队列中的一部分消息,也就是说任何一条消息。原创 2024-09-27 23:49:23 · 671 阅读 · 0 评论 -
消息队列要求与选择
ActiveMQ最 “老”, 老牌,但维护较慢RabbitMQ最 “火”, 适合大小公司,各种场景通杀RocketMQ最 “猛” 功能强,但考验公司的运维能力Kafka最 “强” 支持超大量的数据,但消息可靠性弱。原创 2024-09-27 22:15:09 · 1238 阅读 · 0 评论 -
为什么需要消息队列
随着业务不断发展,这些订单下游系统不断的增加,不断变化,并且每个系统可能只需要订单数据的一个子集,负责订单服务的开发团队不得不花费很大的精力,应对不断增加变化的下游系统,不停地修改调试订单系统与这些下游系统的接口。加一个“令牌发生器”来实现:令牌发生器按照预估的处理能力,匀速生产令牌并放入令牌队列(如果队列满了则丢弃令牌),网关在收到请求时去令牌队列消费一个令牌,获取到令牌则继续调用后端秒杀服务,如果获取不到令牌则直接返回秒杀失败。减少等待,自然实现了步骤之间的并发,提升系统总体的性能。原创 2024-09-27 21:37:02 · 1056 阅读 · 0 评论 -
Rabbit-运维单机安装
【代码】Rabbit-运维单机安装。原创 2024-08-04 19:21:40 · 134 阅读 · 0 评论 -
es001 常用资源
es restFul模式全部。ApiPost更懂中国程序员。原创 2023-07-22 21:45:49 · 170 阅读 · 1 评论