ruby-kafka 0.4.0.beta1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kafka/producer.rb +9 -0
- data/lib/kafka/protocol.rb +25 -12
- data/lib/kafka/protocol/fetch_request.rb +1 -1
- data/lib/kafka/protocol/group_coordinator_request.rb +1 -1
- data/lib/kafka/protocol/heartbeat_request.rb +1 -1
- data/lib/kafka/protocol/join_group_request.rb +1 -1
- data/lib/kafka/protocol/leave_group_request.rb +1 -1
- data/lib/kafka/protocol/list_offset_request.rb +1 -1
- data/lib/kafka/protocol/offset_commit_request.rb +1 -1
- data/lib/kafka/protocol/offset_fetch_request.rb +1 -1
- data/lib/kafka/protocol/produce_request.rb +1 -1
- data/lib/kafka/protocol/sasl_handshake_request.rb +1 -1
- data/lib/kafka/protocol/sync_group_request.rb +1 -1
- data/lib/kafka/protocol/topic_metadata_request.rb +1 -1
- data/lib/kafka/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e5c2b78f0d4883922641e90ac150a738959c00e
|
4
|
+
data.tar.gz: 0166be6c6bef06356abdf4f771dd633043e996ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1207e355018718c240fabd89ba2286949dc156f5ce9734f9cf48635154ee9d20587d4401e4ca8c5f31edb4fda3b1e049766ad0a93030b5df99b8762e160f5970
|
7
|
+
data.tar.gz: 3c7b974bf3347c841d9bd85118dc8bf66dc892f6c48df7fc32599949bca6b1bf71d301559ce28709eac108dd92acced6a9f15557226d12d0c3311ac4b3c1115e
|
data/lib/kafka/producer.rb
CHANGED
@@ -334,11 +334,19 @@ module Kafka
|
|
334
334
|
|
335
335
|
def assign_partitions!
|
336
336
|
failed_messages = []
|
337
|
+
topics_with_failures = Set.new
|
337
338
|
|
338
339
|
@pending_message_queue.each do |message|
|
339
340
|
partition = message.partition
|
340
341
|
|
341
342
|
begin
|
343
|
+
# If a message for a topic fails to receive a partition all subsequent
|
344
|
+
# messages for the topic should be retried to preserve ordering
|
345
|
+
if topics_with_failures.include?(message.topic)
|
346
|
+
failed_messages << message
|
347
|
+
next
|
348
|
+
end
|
349
|
+
|
342
350
|
if partition.nil?
|
343
351
|
partition_count = @cluster.partitions_for(message.topic).count
|
344
352
|
partition = Partitioner.partition_for_key(partition_count, message)
|
@@ -357,6 +365,7 @@ module Kafka
|
|
357
365
|
exception: [e.class.to_s, e.message],
|
358
366
|
})
|
359
367
|
|
368
|
+
topics_with_failures << message.topic
|
360
369
|
failed_messages << message
|
361
370
|
end
|
362
371
|
end
|
data/lib/kafka/protocol.rb
CHANGED
@@ -3,19 +3,32 @@ module Kafka
|
|
3
3
|
# The replica id of non-brokers is always -1.
|
4
4
|
REPLICA_ID = -1
|
5
5
|
|
6
|
+
PRODUCE_API = 0
|
7
|
+
FETCH_API = 1
|
8
|
+
LIST_OFFSET_API = 2
|
9
|
+
TOPIC_METADATA_API = 3
|
10
|
+
OFFSET_COMMIT_API = 8
|
11
|
+
OFFSET_FETCH_API = 9
|
12
|
+
GROUP_COORDINATOR_API = 10
|
13
|
+
JOIN_GROUP_API = 11
|
14
|
+
HEARTBEAT_API = 12
|
15
|
+
LEAVE_GROUP_API = 13
|
16
|
+
SYNC_GROUP_API = 14
|
17
|
+
SASL_HANDSHAKE_API = 17
|
18
|
+
|
6
19
|
APIS = {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
20
|
+
PRODUCE_API => :produce,
|
21
|
+
FETCH_API => :fetch,
|
22
|
+
LIST_OFFSET_API => :list_offset,
|
23
|
+
TOPIC_METADATA_API => :topic_metadata,
|
24
|
+
OFFSET_COMMIT_API => :offset_commit,
|
25
|
+
OFFSET_FETCH_API => :offset_fetch,
|
26
|
+
GROUP_COORDINATOR_API => :group_coordinator,
|
27
|
+
JOIN_GROUP_API => :join_group,
|
28
|
+
HEARTBEAT_API => :heartbeat,
|
29
|
+
LEAVE_GROUP_API => :leave_group,
|
30
|
+
SYNC_GROUP_API => :sync_group,
|
31
|
+
SASL_HANDSHAKE_API => :sasl_handshake,
|
19
32
|
}
|
20
33
|
|
21
34
|
ERRORS = {
|
data/lib/kafka/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-kafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.0
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Schierbeck
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gssapi
|
@@ -357,9 +357,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
357
357
|
version: 2.1.0
|
358
358
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
359
359
|
requirements:
|
360
|
-
- - "
|
360
|
+
- - ">="
|
361
361
|
- !ruby/object:Gem::Version
|
362
|
-
version:
|
362
|
+
version: '0'
|
363
363
|
requirements: []
|
364
364
|
rubyforge_project:
|
365
365
|
rubygems_version: 2.4.5.1
|