草庐IT

同步到Kafka

全部标签

java - 为什么消费者在使用 Java 客户端 API 在 DC/OS 上使用来自 Kafka 的消息时挂起?

我在AWS上的DC/OS(Mesos)集群上安装了Kafka。启用三个代理并创建一个名为“topic1”的主题。dcoskafkatopiccreatetopic1--partitions3--replication3然后我编写了一个Producer类来发送消息和一个Consumer类来接收它们。publicclassProducer{publicstaticvoidsendMessage(Stringmsg)throwsInterruptedException,ExecutionException{MapproducerConfig=newHashMap();System.out.p

java - Apache Kafka 根据消息的值对窗口消息进行排序

我正在尝试找到一种方法来重新排序主题分区内的消息并将排序后的消息发送到新主题。我有Kafka发布者发送以下格式的字符串消息:{system_timestamp}-{event_name}?{parameters}例如:1494002667893-client.message?chatName=1c&messageBody=hello1494002656558-chat.started?chatName=1c&chatPatricipants=3此外,我们为每条消息添加一些消息key,以将它们发送到相应的分区。我想做的是根据消息的{system-timestamp}部分并在1分钟的窗口内

java - spring boot kafka LocalDateTime

我有一个包含java.time.LocalDateTime的基本POJO:packagefoo.bar.asire.api.model;importjava.time.LocalDateTime;publicclassAddress{privateLongid;privateIntegerhouseNumber;privateStringaddress;privateLocalDateTimecreated;publicAddress(){super();}publicAddress(Longid,IntegerhouseNumber,Stringaddress,LocalDateTi

java - Kafka 0.11 中 sendOffsetsToTransaction 的含义

新的Kafka版本(0.11)支持exactly-once语义。https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging我在Java中使用kafka事务代码设置了一个生产者,就像这样。producer.initTransactions();try{producer.beginTransaction();for(ProducerRecordrecord:payload){producer.send(record);}Mapgrou

java - 同步块(synchronized block)是否有最大可重入限制?

众所周知,ReentrantLock有最大重入限制:Integer.MAX_VALUE;是否synchronized块也有可重入限制吗?更新:我发现很难为同步重入编写测试代码:publicclassSyncReentry{publicstaticvoidmain(String[]args){synchronized(SyncReentry.class){synchronized(SyncReentry.class){//...writesynchronizedblockforever}}}}任何人都可以帮助编写一些用于同步重入限制测试的代码吗? 最佳答案

java - 同步访问静态字段

JoshBloch在EffectiveJava的Item67中提到,如果一个方法修改了一个静态字段,你必须同步对该字段的访问,因为客户端不可能对这样的方法执行外部同步。不太明白为什么客户端不能在静态方法上执行外部同步?内部同步实现:publicclassSerial{privatestaticintserialNumber=0;publicsynchronizedstaticvoidincSerial(){serialNumber++;}}如果没有实现内部同步,客户端可以进行外部同步:synchronize(Serial.class){Serial.incSerial();}有什么想法

java - 线程池、共享数据、Java同步

比如说,我有一个数据对象:classValueRef{doublevalue;}每个数据对象存储在主集合中的位置:CollectionmasterList=...;我还有一个作业集合,其中每个作业都有一个本地数据对象集合(其中每个数据对象也出现在masterList中):classJobimplementsRunnable{CollectionneededValues=...;voidrun(){doublesum=0;for(ValueRefx:neededValues)sum+=x;System.out.println(sum);}}用例:for(ValueRefx:masterL

java - 同步:为什么优先锁定一个private final静态对象而不是类的类对象?

简单问题:为什么这是首选:publicclassFoo{finalprivatestaticObjectfoo=newObject();publicstaticvoiddoSomething(){synchronized(Foo.foo){//code}}}关于这个:publicclassFoo{publicstaticvoiddoSomething(){synchronized(Foo.class){//code}}}或者这个:publicclassFoo{publicsynchronizedstaticvoiddoSomething(){//code}}?对我来说,这些看起来基本相

java - 如何找到哪个消费者分配给kafka中主题的哪个分区?

我正在构建一个kafka管理器工具,我需要检查哪个主题分区分配给了消费者组中的哪个消费者。假设有消费者组group-A消费主题topic-A,n个分区,那么在group-A托管在不同的VM中。那么如何找到哪个分区分配给哪个消费者主机呢?在kafka0.9.1中可以吗?提前致谢。 最佳答案 您可以检查$KAFKA_HOME/bin/kafka-consumer-groups.sh的工作原理并将其实现集成到您的kafka管理器工具中,该工具将向您展示详细信息组所有者信息(例如,分区分配、滞后、IP)。小组主题分区CURRENT-OFFS

java - 如何使用 Java 中的结构化流从 Kafka 反序列化记录?

我使用Spark2.1。我正在尝试使用SparkStructuredStreaming从Kafka读取记录,反序列化它们并在之后应用聚合。我有以下代码:SparkSessionspark=SparkSession.builder().appName("Statistics").getOrCreate();Datasetdf=spark.readStream().format("kafka").option("kafka.bootstrap.servers",kafkaUri).option("subscribe","Statistics").option("startingOffset