Comments (11)
Does that make sense at all? Why not put etcd (or some other HA service) behind a reverse proxy? That way the actual endpoints are flexible.
from constructr.
I am currently just diving into running akka-cluster inside of kubernetes and am still wrapping my head around this stuff. So I might be totally wrong here :)
Is having a load-balancer in front of ETCD a good practise? When I need to update ETCD this should just work find with 100% uptime, but what if I have to update the load-balancer itself? If other components talk to ETCD via the load-balancer and not by probing the individual ETCD instances directly, then I have a crucial component in my distributed system which cannot be updated without down-time⦠Or am I wrong here?
On 22 Jun 2016, at 12:21, Heiko Seeberger <[email protected] mailto:[email protected]> wrote:
Does that make sense at all? Why not put etcd (or some other HA service) behind a reverse proxy? That way the actual endpoints are flexible.
β
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub #115 (comment), or mute the thread https://github.com/notifications/unsubscribe/AAo_hN1a2FiJwvivSQd2UL1fiYLTbug3ks5qOQyzgaJpZM4I7mxf.
from constructr.
Ah, well, yes, but why would you want to update the load balancer? BTW, a lot of platforms offer automatic load balancers, Docker Cloud or AWS, which you of course never have to update.
from constructr.
But anyway, I think it won't hurt to take a set of endpoints instead of a single one, so go for it!
from constructr.
Yeah, it is just another option (load balancers on EC2 and others are expensive π)
Hope I will find some time next week.
from constructr.
This is not only interesting for etcd
but also other coordination services.
I'd like to see that the constructr.coordination.host
and constructr.coordination.port
format is changed to constructr.coordination.nodes
. This value is a string list and can contain multiple coordination nodes such as:
constructr.coordination.nodes = ["10.0.0.10:2379", "10.0.0.11:2379", "10.0.0.12:2379"]
I'd be happy to provide a PR. However, I don't know how the etcd HTTP API used in the EtcdCoordination class could make us of multiple nodes? As far as I understand, it is only possible to send an HTTP request to one particular node, not too multiple. Ideas?
from constructr.
Using multiple nodes in the [https://github.com/typesafehub/constructr-zookeeper] coordination service is easy once the constructr.coordination.nodes
key is available. curator is used as a high-level Zookeeper API and with that, you can specify multiple nodes when establishing a connection to a Zookeeper cluster.
from constructr.
I hear what you are saying. So far, I was thinking that one would access the (clustered) coordination service through a URI (host and port) representing a load balancer. I was thinking that this reflects real life scenarios much closer or better, because the clustered coordination service might eventually grow or shrink in size or simply change the set of URIs over time by adding new nodes and removing old ones β which is not well abstracted over with a set of URIs.
from constructr.
Yes, this can be the case. But I think the other case of specifying multiple endpoints exists in the "real-world" as well. This is the default for every framework on Mesos, and of Mesos itself.
I'll try to submit a PR soon to support multiple endpoints not only for etcd, but for every possible coordination service implementation.
from constructr.
FYI: I've created a PR for constructr-zookeeper that enables to specify multiple endpoints to join a multi-node ZK cluster: typesafehub/constructr-zookeeper#10
I've also checked if I can do that for the etcd
coordination service as well, but I couldn't find a simple way of doing this because here we are using a URI
to connect to etcd
. So I am not sure how to connect to a multi-node etcd cluster in such fashion.
from constructr.
OK, let's close this ticket then.
from constructr.
Related Issues (20)
- Setting etcd-port via environment HOT 2
- Get rid of retry limit for communication with coordination service HOT 15
- When Connecting to another akka using TCP it returns exception can not bind to the port HOT 1
- Publish 0.16.0 to maven central HOT 2
- Java API HOT 3
- Multiple ActorSystems and ClusterActorRefProvider cause duplicate init of akka-remoting
- Fixed path of cluster nodes in EtcdCoordination HOT 3
- Risk of island creation if max-nr-of-seed-nodes < actual number of seeds and host is reused HOT 2
- Can't build project due to java.lang.NoSuchMethodError
- akka.remote.netty.tcp.bind-hostname vs hostname HOT 1
- Release for 2.12 HOT 1
- Add close() method to Coordination for resource cleanup
- Join timing out in handover scenario HOT 8
- Delete key-value entries from backend if possible HOT 3
- Propagate ConstructR failures to user-space HOT 2
- Discussion: Given Akka Cluster Bootstrap, do we need ConstructR any longer HOT 21
- Deadlock when error during ConstructrMachine initialization
- Make the path in etcd customisable
- constructr 1.8.1 not available for scala 2.11 HOT 2
- Retirement HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from constructr.