怎么保证消息的幂等性 出现非幂等性的情况 1、生产者已把消息发送到mq,在mq给生产者返回确认消息的时候网络中断,故生产者未收到确定信息,生产者认为消息未发送成功,但实际情况是,mq已成功接收到了消息,在网络重连后,生产者会重新发送刚才的消息,造成mq接收了重复的消息 2、消费者在消费mq中的消息时 ...
分类:
其他好文 时间:
2020-12-24 11:54:26
阅读次数:
0
参考:尚硅谷相关课程 PPThttps://snailclimb.gitee.io/javaguide/#/docs/system-design/distributed-system/message-queue/Kafka%E5%B8%B8%E8%A7%81%E9%9D%A2%E8%AF%95%E9 ...
分类:
其他好文 时间:
2020-12-23 12:22:21
阅读次数:
0
最近项目上因为遇到数据量过大导致查询统计性能问题(oracle数据库、单表每月1亿多条车辆定位记录,由一个windows环境下的链路服务程序来接收车辆上传的定位数据写入oracle),急需使用大数据架构来解决。前期同事已经提出整体解决思路(修改链路服务程序,在写oracle的基础上同时写入kafka ...
简介RabbitMQ:接受消息再传递消息,可以视为一个"邮局"。发送者和接受者通过队列来进行交互,队列的大小可以视为无限的,多个发送者可以发生给一个队列,多个接收者也可以从一个队列中接受消息。coderabbitmq使用的协议是amqp,用于python的推荐客户端是pikapipinstallpika-ihttps://pypi.douban.com/simple/生产者:s
分类:
其他好文 时间:
2020-12-18 13:11:00
阅读次数:
3
前言之前写过一篇《从源码分析如何优雅的使用Kafka生产者》,有生产者自然也就有消费者。建议对Kakfa还比较陌生的朋友可以先看看。就我的使用经验来说,大部分情况都是处于数据下游的消费者角色。也用Kafka消费过日均过亿的消息(不得不佩服Kakfa的设计),本文将借助我使用Kakfa消费数据的经验来聊聊如何高效的消费数据。单线程消费以之前生产者中的代码为例,事先准备好了一个Topic:data-p
分类:
其他好文 时间:
2020-12-16 12:08:05
阅读次数:
2
消息丢失的场景如果KafkaProducer使用“发后即忘”的方式发送消息,即调用producer.send(msg)方法来发送消息,方法会立即返回,但此时并不能说明消息已经发送成功。消息发送方式详见初次邂逅Kafka生产者。如果在消息过程中发生了网络抖动,那么消息就会丢失;或发送的消息本身不符合要求,如大小超过Broker端的承受能力等(消息太大的情况在生产中实际遇到过,最后通过在发送前将消息分
分类:
其他好文 时间:
2020-12-08 12:53:00
阅读次数:
5
温馨提示:本文基于Kafka2.2.1版本。本文主要是以源码的手段一步一步探究消息发送流程,如果对源码不感兴趣,可以直接跳到文末查看消息发送流程图与消息发送本地缓存存储结构图。从上文初识KafkaProducer生产者,可以通过KafkaProducer的send方法发送消息,send方法的声明如下:Future<RecordMetadata>send(ProducerRecord&l
分类:
其他好文 时间:
2020-12-08 11:59:45
阅读次数:
3
温馨提示:整个KafkaClient专栏基于kafka-2.3.0版本。1、KafkaProducer概述根据KafkaProducer类上的注释上来看KafkaProducer具有如下特征:KafkaProducer是线程安全的,可以被多个线程交叉使用。KafkaProducer内部包含一个缓存池,存放待发送消息,即ProducerRecord队列,与此同时会开启一个IO线程将ProducerR
分类:
其他好文 时间:
2020-12-07 12:49:28
阅读次数:
11
Apache Kafka由Scala和Java编写,基于生产者和消费者模型作为开源的分布式发布订阅消息系统。它提供了类似于JMS的特性,但设计上又有很大区别,它不是JMS规范的实现,如Kafka允许多个消费者主动拉取数据,而在JMS中只有点对点模式消费者才会主动拉取数据 ...
分类:
其他好文 时间:
2020-12-04 11:04:22
阅读次数:
7
Java高级: 掌握多线程。 掌握并发包下的队列。 掌握JMS。 掌握JVM。 掌握反射和动态代理.并发包下的队列。 多线程: 多线程的两种实现方式: 1、继承Thread类。 2、实现Runnable接口。 (一)先申明一个类,继承Thread类;在类中重写run()方法;调用start函数。 p ...
分类:
编程语言 时间:
2020-11-11 16:05:14
阅读次数:
6