ruby-kafka 0.4.0.beta1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|