-
Notifications
You must be signed in to change notification settings - Fork 9
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
Scatter-gather support on Query APIs #36
Comments
I think a private api will also allow you to tell difference between peer
and client calls it can still use the same syntax. otoh if you need to
tunnel through same endpoint all the way to storage layer you could add a
fake annotation query item to signal what you need.
ZK is part of Kafka so yeah should be possible to find a means of
registration. you may end up with the usual clustering concerns like what
if the partition node goes down, who takes over etc. maintaining health and
partition metadata about the healthy ones etc.
one question is if there is an existing partition aware layer over Kafka ..
probably someone made a project like this and we could list lessons learned
if not anything else.
|
@adriancole thanks for the feedback!
StreamsMetadata already supports this, no need to use ZK imo. Also ZK will potentially be out of Kafka if this goes through https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Managed+Metadata+Quorum (not any time zoom I suspect)
IIRC Lightbend did a library on top of KStream Metadata API https://www.lightbend.com/blog/kafka-http-interactive-layer which does scatter-gather as well. But we should be safe with Metadata API: https://kafka.apache.org/documentation/streams/developer-guide/interactive-queries.html#discovering-and-accessing-application-instances-and-their-local-state-stores Do we have any zipkin-api client library to start playing on this, or would a plain HTTP client be enough? |
Do we have any zipkin-api client library to start playing on this, or
would a plain HTTP client be enough?
v1 we used to have this. I can't find the issue but I thought we had one
about a proxied storage
openzipkin/zipkin@8f99f3c#diff-171d8f5bcef53d0f6f81ac312c454a75
|
thanks! will give a try with OkHttp |
Rational
The storage layer is based on Kafka Streams local store, that is aligned with partitioning. Currently we have specified that our implementation supports running only a standalone instance for storage, because if we scale the Zipkin instances, storage will get partitioned between servers.
In order to cope with this scenario I'd like to propose a scatter-gather support that allows storage layer to query other instances to build a response.
Example Scenario
Given a partitioned back-end with 3 zipkin servers (a,b,c) running as a cluster, if we receive a query from client-side, zipkin-a receive the request, and forward the same query to zipkin-b and zipkin-c with an additional query param (e.g. peer=true) so b and c don't propagate the query. zipkin-a receives responses and build response.
Feature Request
This feature will require:
Kafka Streams already supports a metadata API to register peers URLs [1]
[1] https://kafka.apache.org/documentation/streams/developer-guide/interactive-queries.html#adding-an-rpc-layer-to-your-application
The text was updated successfully, but these errors were encountered: