Comments (4)
If I understand the .NET worker correctly, it tries to reconnect on failure. So a changed ip address might be compensated. The Java worker doesn't seem to be resilient on connection errors, yet.
The fact that a worker can only connect to a single Redis instance indeed arises problems when votes go to the "other" instance. The worker just won't see any votes. I see several options here:
- reduce the Redis replicas to a single instance
- implement a Redis cluster, so that data will be synced between all replicas
- enforce reconnects on the worker side, so that each Redis instance will be read over time. This wouldn't be the most elegant solution, but it has certain adavantages (no-cluster Redis setup, built-in resiliency)
- always have a worker for each Redis instance (well, that's probably the worse "solution", enforcing symmetry between services and their replicas)
from example-voting-app.
Fixed
from example-voting-app.
I saw something like this at docker-stack.yml
but I have some question about Redis IP used at Worker Services to connect to Redis.
There are twice Redis instance, I thing, Worker never discover a second Redis instance. May be, Redis shoud be configured as node of Redis if is possible.
Another thing is about Redis host name, the Vote App and Worker Services connect at redis host name. If at cluster have twice Redis instance, Vote every time connect to what Redis instance?
Some times when I vote, the vote is not computed, I guess, my vote was at another Redis which is not connected by Worker Services.
What you think about that @zavermax ?
from example-voting-app.
@gesellix At my demo enviroment I reduce the Redis replicas to a single instance and all work fine.
But, I guess the better solution is implement a Redis Cluster like you told us.
Another bad thing I see at .NET worker is that while(true)
https://github.com/docker/example-voting-app/blob/master/worker/src/Worker/Program.cs#L29 it's cost lot of CPU unnecessary. May be implement something better.
I think change Redis for a RabbitMQ.
from example-voting-app.
Related Issues (20)
- can anyone help me for the junit test case for the worker.java HOT 1
- Error: result, vote, worker containers are unhealthy HOT 2
- Worker pod not able to connect to db HOT 7
- ERRO[0000]: db HOT 2
- How to run this on EKS cluster ? HOT 1
- performing replicas for each db, redis and worker. HOT 1
- Udemy
- Voting results issue
- Have a problem for run result-app in arm architecture HOT 1
- can't rebuilt the docker container of vote app HOT 1
- Docker-compose up issue. Error related to /Healthchecks HOT 1
- Cleanup Hub repo and images HOT 5
- Audit expose ports on services
- Update Docs with latest stack file example
- Improve readme to indicate official image locations
- Add .gitattributes file to this repo so that the *.sh files will always use eol=lf HOT 1
- use GHA to update Docker Hub repo description HOT 4
- Including wasm runtime into "result" service
- Worker App build error HOT 9
- votingapp_result not showing the result 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 example-voting-app.