Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addon: bootstrap.kafka service with current brokers as endpoint #52

Merged
merged 3 commits into from
Nov 7, 2017

Conversation

solsson
Copy link
Contributor

@solsson solsson commented Jul 29, 2017

This looks useful but I'm hesitant to merge to master due to #21, which we dealt with by removing the service in #30.

I fail to figure out how to test, let alone enforce, that this service is only used for the initial connection but not for actual consumption or production. Clients should discover brokers through this service, but not suffer from the round-robin nature of it. A danger is that when developing with 1 replica, #44 for example, there is no round-robin and thus no such issues.

i.e. to connect to any kafka broker and get a list of
actual broker DNS names to talk to.
so this solves the problem with maintaining the BOOTSTRAP string
@solsson
Copy link
Contributor Author

solsson commented Nov 3, 2017

The more I mess with bootstrap.servers strings the better I like this idea. For example in production you'd want a couple of brokers, but that causes error messages in scaled down clusters like #44. Let's merge it, as existing bootstrap settings will work as before.

@solsson
Copy link
Contributor Author

solsson commented Nov 7, 2017

@solsson solsson added this to the v3.0 milestone Nov 7, 2017
@solsson
Copy link
Contributor Author

solsson commented Nov 7, 2017

Actually I will have to revert the test change in this PR, and merge only the service. I've tested it during #84 but need to merge this to master without conflicts in ongoing test refactoring.

solsson added a commit that referenced this pull request Nov 7, 2017
and trust alarms on Under-replicated Partitions to let us know
when something is really wrong.

Do clients actually care about Readiness?

The bootstrap service (#52)
will definitely care, which is good.

The `broker` service, that the StatefulSet manifest depends on
(https://github.com/Yolean/kubernetes-kafka/blob/v2.1.0/50kafka.yml#L7)
for naming, is without `publishNotReadyAddresses`.

Clients will bootstrap, get the individual DNS names of brokers,
resolve those addresses and connect directly to pods.
@solsson solsson merged commit 4ec96b5 into master Nov 7, 2017
solsson added a commit that referenced this pull request Nov 9, 2017
The test should still pass if any single broker is down.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant