Comments (7)
this project is in active use at a few places, and contributors from airbnb and yelp have commit privs. things have been a bit slow in the code review department, but documentation PRs should be fairly trivial to merge
from synapse.
just had to dig down into source to discover what #112 already addresses
from synapse.
@chrono,
@jnb and I from Yelp plan to help maintain this going forward along with @igor47 and the airbnb crew.
Right now we're concentrating on getting the Yelp forks of nerve/synapse merged back into upstream as they have a lot of important reliability fixes for multi-datacenter setups (connection pooling, removal of fast fail in nerve, allowing synapse to reconfigure more aggressively than it restarts, etc ...). Once we do that we're going to start going through pull requests and working with @igor47 to get everything tidied up.
from synapse.
+1. Maybe you could give a few community members commit access if airbnb doesn't have the bandwidth to support this?
FWIW, here was my experience trying it out with a super simple config, maybe it'll help anyone coming here in the future before these issues get addressed. It crashes when I start it because
- In the global haproxy section,
shared_frontend
needs to be a list not a string (already in #112 as @chrono mentioned) method: stub
is not a thing, it needs to be "base" (link)
Now I can launch synapse and it stays running and logs that it is writing the haproxy config. It is not, the config silently never gets written. The README says that the global haproxy option do_writes
defaults to true but it doesn't, anything that's not explicitly set in my config is not present in the options hash in the Haproxy object when synapse runs so everything defaults to false.
Now it's finally running as expected for my simple example.
Unrelated, @jolynch when you say you have a fix for "allowing synapse to reconfigure more aggressively than it restarts" is that the same thing described in #78?
from synapse.
@dcosson Yes our fork does help mitigate that problem, but it is not a complete solution. Basically we cache synapse state locally for 30m and will always put cached backends in regardless of if they are in zookeeper (if we don't know about them in zookeeper they go in disabled). Then because our fork can reconfigure (but not restart) every loop of the main loop we can enable them via the stats socket as soon as they report up.
It doesn't totally solve the problem, but we've seen a significant decrease in 503s related to restarts since we rolled it out. That being said we're still dogfooding internally and have found a bug or two. The next step is putting them in as backups automatically (that should solve your problem).
I'm pushing internally to get our forks merged back. We're waiting for a 2 week period of zero bugs in production before we go ahead and merge them in.
from synapse.
@jolynch cool to hear. Thanks for the update
from synapse.
@chrono If you find any more issues with the documentation please re-open an issue or PR and we can fix it. I've been trying to fix it up and merge PRs as I see issues.
I'm working with @dcosson to merge #126 which will resolve #98
from synapse.
Related Issues (20)
- Extending cookie_value_method HOT 1
- In DNS service watcher, re-resolve every $TTL HOT 1
- AWS Auto Scaling Group watcher HOT 1
- Allow name in the DNS service watcher's ping method to configurable
- HAProxy with ActiveMQ HOT 2
- Obtain AWS credentials from IAM Instance Profile HOT 1
- ec2tag watcher needs to back off if Client.RequestLimitExceeded is returned HOT 1
- ZookeeperWatcher does not handle NoNode failures HOT 4
- docker-api v1.32 dropped support for Ruby 1.9 HOT 1
- discovery fails if Zookeeper tree is read only
- service_conf_dir no longer a valid top level config key HOT 2
- Unexpected error when migrating from Synapse-0.13.8 to Synapse-0.14.3 HOT 6
- ec2tag watcher fails if metadata service is unavailable during a credential refresh HOT 1
- No support for relative server_port overrides HOT 1
- used Synapse to replace RDS HOT 1
- Synapse and HAProxy seamless reloads HOT 10
- Provide a way to disable datadog stats
- Zookeeper watcher with autoscale servers
- Doc: README uses YAML config in Example Migration but only mentions JSON format in Configuration
- Gem does not build on arm64 platform
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 synapse.