Multiple upstreams support
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 12.4k
- Forks
- 510
- PR merge metrics
- No merged PRs in 30d
Description
What (proposal)
I'd like to get support of multiple upstream hosts in single proxy + definition of balancing strategy (at least round-robin and/or least/most-connected).
As of now (v2.1.4) there is no way how to specify multiple upstreams for single proxy at least in toxiproxy-cli and python toxiproxy client.
Why (use-case)
My use-case uses toxiproxy to test the application's behaviour when introduced a toxics between the application and any of depending applications (all in kubernetes).
The way we introduce toxics w/o necessity of the application a change is to:
- run toxiproxy and load all proxies to the dependent applications
- force the application (app under test) to route via launched toxiproxy (via local linux
/etc/hostsresolver)
Given the strategy it is clear that toxiproxy proxy binds same port as dependent app has/binds (no port translation in place).
Here comes the trouble, there is the application which communicates with HA storage consisting of multiple hosts binding the same port (redis sentinel), for such case I'd like to create toxiproxy proxy with multiple upstreams to block none / all upstreams.
The current workaround I have is to use multiple toxiproxy instances, but it comes with additional orchestration cost.
Any suggestions how to deal with the scenario are welcome.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names toxiproxy-cli and the Python toxiproxy client but no files or tests. Start by locating how each interface specifies an upstream, then clarify the balancing strategy and define completion as multiple upstream hosts supported consistently across the affected interfaces.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, python
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100