-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Support TTL health checks at server #2089
Comments
I've had a dive into the code base and this really is a large project. That being said, I'm going to flag this issue #259 (comment) as a possible workaround for the problem in terms of building this into the application (or in our use case, ContainerPilot) rather than trying to radically change Consul's model. |
@slackpad I've spent a lot of this week getting to understand SWIM/Serf and how Consul agents gossip updates to the servers, and I think I've come around to this being a bad idea to change in Consul. It's really clear that having agents gossip but not participate in the raft is key to Consul scalability (particularly compared to etcd where all TTLs get sent up to the servers). I'd hate to introduce an architectural change that breaks this core advantage of Consul. The specific use case we were running into with TritonDataCenter/containerpilot#162 we're going to solve with TritonDataCenter/containerpilot#175 and running a Consul agent as a co-process in the container. I may at some point explore the idea of a Consul agent library (probably in C or Rust so it's can be embedded in arbitrary applications), but that's certainly out of scope for my current project or for Consul itself. I'd be happy to close this issue if you're in agreement with the above @slackpad |
Thank you for the update, @tgross! |
In the Google group we discussed a problem with TTL health checks in PaaS-like or "serverless" environments where there are only servers and no agents. In these environments, Consul isn't collocated with the application client so there's no good way to assign a client to a particular server. This means Consul is making topology assumptions that work well for “machines,” but are in conflict with other uses. We don't have VMs, so we don't need Consul to be aware of the underlying infrastructure and impose assumptions about it, but still want to be able to use Consul for service discovery in the application.
@misterbisson and I suggested that health checks (for TTLs) could be defined at the catalog level rather than the agent level.
@slackpad responded with the following:
I'm happy to help contribute to the design discussion as well as a PR for this work when it comes to it.
The text was updated successfully, but these errors were encountered: