Upgrades 2.3
Important
GitHub Wiki is just a mirror of our online documentation.
We highly recommend using our website docs due to Github Wiki limitations. Only some illustrations, links, screencasts, and code examples will work here, and the formatting may be broken.
Please use https://karafka.io/docs.
!!! tip "Pro & Enterprise Upgrade Support"
If you're gearing up to upgrade to the latest Karafka version and are a Pro or Enterprise user, remember you've got a dedicated lifeline! Reach out via the dedicated Slack channel for direct support to ensure everything has been covered.
As always, please make sure you have upgraded to the most recent version of 2.2
before upgrading to 2.3
.
Also, remember to read and apply our standard upgrade procedures.
Karafka 2.3
works only with Web UI >= 0.8.0
. Please follow the Web UI upgrade procedure.
Thanks to recent advancements in librdkafka
and rdkafka-ruby
, shutdown patches needed in previous versions were removed in 2.3,
, and the whole shutdown procedure has been improved. While we saw only performance and stability improvements in those areas, we would like to highlight this change.
While this change has already been introduced in 2.2
as a fix, we wanted to make you aware that all the CLI inclusion and exclusion options, such as --include-consumer-groups
or --exclude-consumer-groups
expect a list of arguments separated by a comma and NOT by space:
BAD:
# Wrong, topics separated with a space
bundle exec karafka server --exclude-topics topic1 topic2
GOOD:
# Good, topics separated with a comma
bundle exec karafka server --exclude-topics topic1,topic2
This change is a regression introduced because of the removal of the Thor gem.
Karafka no longer relies on concurrent-ruby
. If you've indirectly relied on it being included in your applications, you must add it as a direct dependency yourself.
Before Karafka 2.3.0
, Kubernetes::LivenessListener
would start immediately after initialization. This is why it was recommended to create it conditionally by using an external flag similar to this one:
if ENV['KARAFKA_LIVENESS'] == true
listener = ::Karafka::Instrumentation::Vendors::Kubernetes::LivenessListener.new(
# config goes here...
)
Karafka.monitor.subscribe(listener)
end
Starting from 2.3
, such a flag is no longer needed as the listener begins listening on the desired port only when the associated Karafka server process is started. The listener will not bind itself to processes other than the Karafka server.
Home | Getting started | Components | Producing Messages | Consuming messages | Concurrency and multithreading | Error handling and back off policy
This wiki is tracked by git and publicly editable. You are welcome to fix errors and typos. Any defacing or vandalism of content will result in your changes being reverted and you being blocked.