karafka 2.5.6 → 2.5.9
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/CHANGELOG.md +22 -0
- data/LICENSE-COMM +4 -2
- data/config/locales/pro_errors.yml +1 -0
- data/lib/karafka/admin/replication.rb +36 -4
- data/lib/karafka/errors.rb +3 -1
- data/lib/karafka/helpers/interval_runner.rb +4 -2
- data/lib/karafka/instrumentation/logger_listener.rb +22 -9
- data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +6 -1
- data/lib/karafka/messages/builders/batch_metadata.rb +4 -2
- data/lib/karafka/pro/active_job/consumer.rb +8 -0
- data/lib/karafka/pro/active_job/dispatcher.rb +8 -0
- data/lib/karafka/pro/active_job/job_options_contract.rb +8 -0
- data/lib/karafka/pro/admin/recovery/errors.rb +51 -0
- data/lib/karafka/pro/admin/recovery.rb +486 -0
- data/lib/karafka/pro/base_consumer.rb +8 -0
- data/lib/karafka/pro/cleaner/errors.rb +8 -0
- data/lib/karafka/pro/cleaner/messages/message.rb +8 -0
- data/lib/karafka/pro/cleaner/messages/messages.rb +8 -0
- data/lib/karafka/pro/cleaner/messages/metadata.rb +8 -0
- data/lib/karafka/pro/cleaner.rb +8 -0
- data/lib/karafka/pro/cli/contracts/server.rb +8 -0
- data/lib/karafka/pro/cli/parallel_segments/base.rb +8 -0
- data/lib/karafka/pro/cli/parallel_segments/collapse.rb +8 -0
- data/lib/karafka/pro/cli/parallel_segments/distribute.rb +8 -0
- data/lib/karafka/pro/cli/parallel_segments.rb +8 -0
- data/lib/karafka/pro/cli/topics/health.rb +10 -2
- data/lib/karafka/pro/cli/topics.rb +8 -0
- data/lib/karafka/pro/connection/manager.rb +8 -0
- data/lib/karafka/pro/connection/multiplexing/listener.rb +8 -0
- data/lib/karafka/pro/contracts/base.rb +8 -0
- data/lib/karafka/pro/encryption/cipher.rb +8 -0
- data/lib/karafka/pro/encryption/contracts/config.rb +8 -0
- data/lib/karafka/pro/encryption/errors.rb +8 -0
- data/lib/karafka/pro/encryption/messages/middleware.rb +8 -0
- data/lib/karafka/pro/encryption/messages/parser.rb +8 -0
- data/lib/karafka/pro/encryption/setup/config.rb +8 -0
- data/lib/karafka/pro/encryption.rb +8 -0
- data/lib/karafka/pro/instrumentation/performance_tracker.rb +8 -0
- data/lib/karafka/pro/iterator/expander.rb +9 -1
- data/lib/karafka/pro/iterator/tpl_builder.rb +8 -0
- data/lib/karafka/pro/iterator.rb +9 -1
- data/lib/karafka/pro/loader.rb +8 -0
- data/lib/karafka/pro/processing/adaptive_iterator/consumer.rb +8 -0
- data/lib/karafka/pro/processing/adaptive_iterator/tracker.rb +8 -0
- data/lib/karafka/pro/processing/collapser.rb +8 -0
- data/lib/karafka/pro/processing/coordinator.rb +8 -0
- data/lib/karafka/pro/processing/coordinators/errors_tracker.rb +8 -0
- data/lib/karafka/pro/processing/coordinators/filters_applier.rb +8 -0
- data/lib/karafka/pro/processing/coordinators/virtual_offset_manager.rb +25 -7
- data/lib/karafka/pro/processing/executor.rb +8 -0
- data/lib/karafka/pro/processing/expansions_selector.rb +8 -0
- data/lib/karafka/pro/processing/filters/base.rb +8 -0
- data/lib/karafka/pro/processing/filters/delayer.rb +8 -0
- data/lib/karafka/pro/processing/filters/expirer.rb +8 -0
- data/lib/karafka/pro/processing/filters/inline_insights_delayer.rb +8 -0
- data/lib/karafka/pro/processing/filters/throttler.rb +8 -0
- data/lib/karafka/pro/processing/filters/virtual_limiter.rb +8 -0
- data/lib/karafka/pro/processing/jobs/consume_non_blocking.rb +8 -0
- data/lib/karafka/pro/processing/jobs/eofed_non_blocking.rb +8 -0
- data/lib/karafka/pro/processing/jobs/periodic.rb +8 -0
- data/lib/karafka/pro/processing/jobs/periodic_non_blocking.rb +8 -0
- data/lib/karafka/pro/processing/jobs/revoked_non_blocking.rb +8 -0
- data/lib/karafka/pro/processing/jobs_builder.rb +8 -0
- data/lib/karafka/pro/processing/jobs_queue.rb +8 -0
- data/lib/karafka/pro/processing/offset_metadata/consumer.rb +8 -0
- data/lib/karafka/pro/processing/offset_metadata/fetcher.rb +8 -0
- data/lib/karafka/pro/processing/offset_metadata/listener.rb +8 -0
- data/lib/karafka/pro/processing/parallel_segments/filters/base.rb +8 -0
- data/lib/karafka/pro/processing/parallel_segments/filters/default.rb +8 -0
- data/lib/karafka/pro/processing/parallel_segments/filters/mom.rb +8 -0
- data/lib/karafka/pro/processing/partitioner.rb +8 -0
- data/lib/karafka/pro/processing/periodic_job/consumer.rb +8 -0
- data/lib/karafka/pro/processing/piping/consumer.rb +8 -0
- data/lib/karafka/pro/processing/schedulers/base.rb +8 -0
- data/lib/karafka/pro/processing/schedulers/default.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/dlq_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/dlq_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/ftr_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/ftr_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/lrj_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/lrj_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/aj/mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/base.rb +8 -0
- data/lib/karafka/pro/processing/strategies/default.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/default.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/ftr.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/ftr_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/ftr_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/ftr_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/lrj.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/lrj_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/lrj_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/lrj_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/dlq/vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/ftr/default.rb +8 -0
- data/lib/karafka/pro/processing/strategies/ftr/vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/lrj/default.rb +8 -0
- data/lib/karafka/pro/processing/strategies/lrj/ftr.rb +8 -0
- data/lib/karafka/pro/processing/strategies/lrj/ftr_mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/lrj/ftr_mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/lrj/ftr_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/lrj/mom.rb +8 -0
- data/lib/karafka/pro/processing/strategies/lrj/mom_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/lrj/vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/mom/default.rb +8 -0
- data/lib/karafka/pro/processing/strategies/mom/ftr.rb +8 -0
- data/lib/karafka/pro/processing/strategies/mom/ftr_vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/mom/vp.rb +8 -0
- data/lib/karafka/pro/processing/strategies/vp/default.rb +8 -0
- data/lib/karafka/pro/processing/strategies.rb +8 -0
- data/lib/karafka/pro/processing/strategy_selector.rb +8 -0
- data/lib/karafka/pro/processing/subscription_groups_coordinator.rb +8 -0
- data/lib/karafka/pro/processing/virtual_partitions/distributors/balanced.rb +8 -0
- data/lib/karafka/pro/processing/virtual_partitions/distributors/base.rb +8 -0
- data/lib/karafka/pro/processing/virtual_partitions/distributors/consistent.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/consumer.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/contracts/config.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/contracts/task.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/deserializer.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/dispatcher.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/errors.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/executor.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/listener.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/matcher.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/schedule.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/serializer.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/setup/config.rb +8 -0
- data/lib/karafka/pro/recurring_tasks/task.rb +8 -0
- data/lib/karafka/pro/recurring_tasks.rb +8 -0
- data/lib/karafka/pro/routing/features/active_job/builder.rb +8 -0
- data/lib/karafka/pro/routing/features/active_job.rb +8 -0
- data/lib/karafka/pro/routing/features/adaptive_iterator/config.rb +8 -0
- data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/adaptive_iterator/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/adaptive_iterator.rb +8 -0
- data/lib/karafka/pro/routing/features/base.rb +8 -0
- data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/dead_letter_queue/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/dead_letter_queue.rb +8 -0
- data/lib/karafka/pro/routing/features/delaying/config.rb +8 -0
- data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/delaying/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/delaying.rb +8 -0
- data/lib/karafka/pro/routing/features/direct_assignments/config.rb +8 -0
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +8 -0
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/direct_assignments/subscription_group.rb +8 -0
- data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/direct_assignments.rb +8 -0
- data/lib/karafka/pro/routing/features/expiring/config.rb +8 -0
- data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/expiring/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/expiring.rb +8 -0
- data/lib/karafka/pro/routing/features/filtering/config.rb +8 -0
- data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/filtering/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/filtering.rb +8 -0
- data/lib/karafka/pro/routing/features/inline_insights/config.rb +8 -0
- data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/inline_insights/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/inline_insights.rb +8 -0
- data/lib/karafka/pro/routing/features/long_running_job/config.rb +8 -0
- data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/long_running_job/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/long_running_job.rb +8 -0
- data/lib/karafka/pro/routing/features/multiplexing/config.rb +8 -0
- data/lib/karafka/pro/routing/features/multiplexing/contracts/routing.rb +81 -0
- data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/multiplexing/patches/contracts/consumer_group.rb +8 -0
- data/lib/karafka/pro/routing/features/multiplexing/proxy.rb +8 -0
- data/lib/karafka/pro/routing/features/multiplexing/subscription_group.rb +8 -0
- data/lib/karafka/pro/routing/features/multiplexing/subscription_groups_builder.rb +8 -0
- data/lib/karafka/pro/routing/features/multiplexing.rb +17 -2
- data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/non_blocking_job.rb +8 -0
- data/lib/karafka/pro/routing/features/offset_metadata/config.rb +8 -0
- data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/offset_metadata/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/offset_metadata.rb +8 -0
- data/lib/karafka/pro/routing/features/parallel_segments/builder.rb +8 -0
- data/lib/karafka/pro/routing/features/parallel_segments/config.rb +8 -0
- data/lib/karafka/pro/routing/features/parallel_segments/consumer_group.rb +8 -0
- data/lib/karafka/pro/routing/features/parallel_segments/contracts/consumer_group.rb +8 -0
- data/lib/karafka/pro/routing/features/parallel_segments/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/parallel_segments.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/builder.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/config.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/consumer_group.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/detector.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/pattern.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/patterns.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns/topics.rb +8 -0
- data/lib/karafka/pro/routing/features/patterns.rb +8 -0
- data/lib/karafka/pro/routing/features/pausing/config.rb +8 -0
- data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/pausing/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/pausing.rb +8 -0
- data/lib/karafka/pro/routing/features/periodic_job/config.rb +8 -0
- data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/periodic_job/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/periodic_job.rb +8 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +8 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/config.rb +8 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/proxy.rb +8 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/recurring_tasks.rb +8 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/builder.rb +8 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/config.rb +8 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/proxy.rb +8 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/scheduled_messages.rb +8 -0
- data/lib/karafka/pro/routing/features/swarm/config.rb +8 -0
- data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +8 -0
- data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/swarm/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/swarm.rb +8 -0
- data/lib/karafka/pro/routing/features/throttling/config.rb +8 -0
- data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/throttling/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/throttling.rb +8 -0
- data/lib/karafka/pro/routing/features/virtual_partitions/config.rb +8 -0
- data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/virtual_partitions/topic.rb +8 -0
- data/lib/karafka/pro/routing/features/virtual_partitions.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/consumer.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/contracts/config.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/contracts/message.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/day.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/deserializers/payload.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/dispatcher.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/errors.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/max_epoch.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/proxy.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/schema_validator.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/serializer.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/setup/config.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/state.rb +8 -0
- data/lib/karafka/pro/scheduled_messages/tracker.rb +8 -0
- data/lib/karafka/pro/scheduled_messages.rb +8 -0
- data/lib/karafka/pro/swarm/liveness_listener.rb +29 -14
- data/lib/karafka/processing/jobs_queue.rb +10 -0
- data/lib/karafka/server.rb +9 -0
- data/lib/karafka/setup/config_proxy.rb +9 -1
- data/lib/karafka/swarm/liveness_listener.rb +17 -8
- data/lib/karafka/swarm/node.rb +1 -30
- data/lib/karafka/swarm/producer_replacer.rb +110 -0
- data/lib/karafka/swarm/supervisor.rb +3 -0
- data/lib/karafka/version.rb +1 -1
- metadata +6 -2
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Karafka
|
|
4
|
+
module Swarm
|
|
5
|
+
# Builds a new WaterDrop producer that inherits configuration from an old one
|
|
6
|
+
#
|
|
7
|
+
# When a swarm node forks, the parent's producer must be replaced with a new one.
|
|
8
|
+
# This class encapsulates the logic for building that new producer, inheriting all relevant
|
|
9
|
+
# settings from the old one while generating fresh connection-level configuration.
|
|
10
|
+
class ProducerReplacer
|
|
11
|
+
# Attributes that should not be directly copied from the old producer config because they
|
|
12
|
+
# are either regenerated fresh (kafka, logger, id) or handled via their own namespaced
|
|
13
|
+
# migration (oauth, polling, polling.fd).
|
|
14
|
+
SKIPPABLE_ATTRIBUTES = %i[
|
|
15
|
+
id
|
|
16
|
+
kafka
|
|
17
|
+
logger
|
|
18
|
+
oauth
|
|
19
|
+
polling
|
|
20
|
+
fd
|
|
21
|
+
].freeze
|
|
22
|
+
|
|
23
|
+
private_constant :SKIPPABLE_ATTRIBUTES
|
|
24
|
+
|
|
25
|
+
# Builds a new WaterDrop producer inheriting configuration from the old one
|
|
26
|
+
#
|
|
27
|
+
# @param old_producer [WaterDrop::Producer] the old producer to inherit settings from
|
|
28
|
+
# @param kafka [Hash] app-level kafka configuration
|
|
29
|
+
# @param logger [Object] logger instance for the new producer
|
|
30
|
+
# @return [WaterDrop::Producer] new producer with inherited configuration
|
|
31
|
+
def call(old_producer, kafka, logger)
|
|
32
|
+
old_producer_config = old_producer.config
|
|
33
|
+
|
|
34
|
+
WaterDrop::Producer.new do |p_config|
|
|
35
|
+
p_config.logger = logger
|
|
36
|
+
|
|
37
|
+
migrate_kafka(p_config, old_producer_config, kafka)
|
|
38
|
+
migrate_root(p_config, old_producer_config)
|
|
39
|
+
migrate_oauth(p_config, old_producer_config)
|
|
40
|
+
migrate_polling(p_config, old_producer_config)
|
|
41
|
+
migrate_polling_fd(p_config, old_producer_config)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
private
|
|
46
|
+
|
|
47
|
+
# Migrates root-level producer attributes from the old producer, skipping those that are
|
|
48
|
+
# regenerated fresh or handled by their own namespaced migration
|
|
49
|
+
#
|
|
50
|
+
# @param p_config [WaterDrop::Config] new producer config being built
|
|
51
|
+
# @param old_producer_config [WaterDrop::Config] old producer config to inherit from
|
|
52
|
+
def migrate_root(p_config, old_producer_config)
|
|
53
|
+
old_producer_config.to_h.each do |key, value|
|
|
54
|
+
next if SKIPPABLE_ATTRIBUTES.include?(key)
|
|
55
|
+
|
|
56
|
+
p_config.public_send("#{key}=", value)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Builds fresh kafka config from app-level settings and preserves any producer-specific
|
|
61
|
+
# kafka settings from the old producer (e.g., enable.idempotence) that aren't in the
|
|
62
|
+
# base app kafka config
|
|
63
|
+
#
|
|
64
|
+
# @param p_config [WaterDrop::Config] new producer config being built
|
|
65
|
+
# @param old_producer_config [WaterDrop::Config] old producer config to inherit from
|
|
66
|
+
# @param kafka [Hash] app-level kafka configuration
|
|
67
|
+
def migrate_kafka(p_config, old_producer_config, kafka)
|
|
68
|
+
p_config.kafka = Setup::AttributesMap.producer(kafka.dup)
|
|
69
|
+
|
|
70
|
+
old_producer_config.kafka.each do |key, value|
|
|
71
|
+
next if p_config.kafka.key?(key)
|
|
72
|
+
|
|
73
|
+
p_config.kafka[key] = value
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Migrates oauth configuration from the old producer
|
|
78
|
+
#
|
|
79
|
+
# @param p_config [WaterDrop::Config] new producer config being built
|
|
80
|
+
# @param old_producer_config [WaterDrop::Config] old producer config to inherit from
|
|
81
|
+
def migrate_oauth(p_config, old_producer_config)
|
|
82
|
+
old_producer_config.oauth.to_h.each do |key, value|
|
|
83
|
+
p_config.oauth.public_send("#{key}=", value)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Migrates polling configuration from the old producer
|
|
88
|
+
#
|
|
89
|
+
# @param p_config [WaterDrop::Config] new producer config being built
|
|
90
|
+
# @param old_producer_config [WaterDrop::Config] old producer config to inherit from
|
|
91
|
+
def migrate_polling(p_config, old_producer_config)
|
|
92
|
+
old_producer_config.polling.to_h.each do |key, value|
|
|
93
|
+
next if SKIPPABLE_ATTRIBUTES.include?(key)
|
|
94
|
+
|
|
95
|
+
p_config.polling.public_send("#{key}=", value)
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Migrates polling fd configuration from the old producer
|
|
100
|
+
#
|
|
101
|
+
# @param p_config [WaterDrop::Config] new producer config being built
|
|
102
|
+
# @param old_producer_config [WaterDrop::Config] old producer config to inherit from
|
|
103
|
+
def migrate_polling_fd(p_config, old_producer_config)
|
|
104
|
+
old_producer_config.polling.fd.to_h.each do |key, value|
|
|
105
|
+
p_config.polling.fd.public_send("#{key}=", value)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
data/lib/karafka/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: karafka
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.5.
|
|
4
|
+
version: 2.5.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Maciej Mensfeld
|
|
@@ -206,6 +206,8 @@ files:
|
|
|
206
206
|
- lib/karafka/pro/active_job/consumer.rb
|
|
207
207
|
- lib/karafka/pro/active_job/dispatcher.rb
|
|
208
208
|
- lib/karafka/pro/active_job/job_options_contract.rb
|
|
209
|
+
- lib/karafka/pro/admin/recovery.rb
|
|
210
|
+
- lib/karafka/pro/admin/recovery/errors.rb
|
|
209
211
|
- lib/karafka/pro/base_consumer.rb
|
|
210
212
|
- lib/karafka/pro/cleaner.rb
|
|
211
213
|
- lib/karafka/pro/cleaner/errors.rb
|
|
@@ -374,6 +376,7 @@ files:
|
|
|
374
376
|
- lib/karafka/pro/routing/features/long_running_job/topic.rb
|
|
375
377
|
- lib/karafka/pro/routing/features/multiplexing.rb
|
|
376
378
|
- lib/karafka/pro/routing/features/multiplexing/config.rb
|
|
379
|
+
- lib/karafka/pro/routing/features/multiplexing/contracts/routing.rb
|
|
377
380
|
- lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb
|
|
378
381
|
- lib/karafka/pro/routing/features/multiplexing/patches/contracts/consumer_group.rb
|
|
379
382
|
- lib/karafka/pro/routing/features/multiplexing/proxy.rb
|
|
@@ -542,6 +545,7 @@ files:
|
|
|
542
545
|
- lib/karafka/swarm/liveness_listener.rb
|
|
543
546
|
- lib/karafka/swarm/manager.rb
|
|
544
547
|
- lib/karafka/swarm/node.rb
|
|
548
|
+
- lib/karafka/swarm/producer_replacer.rb
|
|
545
549
|
- lib/karafka/swarm/supervisor.rb
|
|
546
550
|
- lib/karafka/templates/application_consumer.rb.erb
|
|
547
551
|
- lib/karafka/templates/example_consumer.rb.erb
|
|
@@ -576,7 +580,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
576
580
|
- !ruby/object:Gem::Version
|
|
577
581
|
version: '0'
|
|
578
582
|
requirements: []
|
|
579
|
-
rubygems_version: 4.0.
|
|
583
|
+
rubygems_version: 4.0.6
|
|
580
584
|
specification_version: 4
|
|
581
585
|
summary: Karafka is Ruby and Rails efficient Kafka processing framework.
|
|
582
586
|
test_files: []
|