Coder Social home page Coder Social logo

Comments (4)

lonelycode avatar lonelycode commented on May 12, 2024

Currently it's not possible, one endpoint per app definition I'm afraid.

It's an interesting idea though, since Tyk can be deployed load-balanced behind NGinX, the individual nodes would round-robin out to the hosts (which could essentially create a random pattern), so it might be better to assign targets randomly from the pool, at least we can hope for a standard distribution across endpoints that way.

Of course, running the API endpoint behind it's load balancer would would be a preferred option instead of trying to give Tyk load-balancing features (there's better, more mature kit out there to handle that sort of thing).

Alternatively, Tyk could be deployed on the same machine as the API endpoint, with the target URL being localhost, then these could be auto-scaled behind an ELB, you'd need to duplicate your app definition, but that could be done using the DB back-end option, then the only configuration that you would need to handle would be the Analytics purge, but you could tell all the nodes to not purge and have a dedicated analytics purge instance that does nothing but shovel data out of Redis.

I think I might be over-thinking it ;-)

It really depends on how you want to deploy tyk, as a self-contained application it is quite flexible and can adapt to many set ups.

What do you think?

from tyk.

patrickmslatteryvt avatar patrickmslatteryvt commented on May 12, 2024

OK, that's what I suspected.
The simplest scenario that I can see is:
Client -> Nginx_gateway(443) -> Tyk(8080) -> Nginx_upstream(8443) -> Endpoints(01-06)

Where Nginx_gateway(443), Tyk(8080) and Nginx_upstream(8443) are all running on a single VM and the endpoints are running in their six separate VMs.
In our case the application endpoints are IIS on Windows so it's not possible to consolidate to a single host.

from tyk.

lonelycode avatar lonelycode commented on May 12, 2024

I see, that makes sense.

There is the possibility of trying to compile Tyk for windows, but I believe some of the deps aren't 100% compatible, though it should be a target I guess, will put it on the list :-)

On 12 Nov 2014, at 19:31, Patrick M. Slattery [email protected] wrote:

OK, that's what I suspected.
The simplest scenario that I can see is:
Client -> Nginx_gateway(443) -> Tyk(8080) -> Nginx_upstream(8443) -> Endpoints(01-06)

Where Nginx_gateway(443), Tyk(8080) and Nginx_upstream(8443) are all running on a single VM and the endpoints are running in their six separate VMs.
In our case the application endpoints are IIS on Windows so it's not possible to consolidate to a single host.


Reply to this email directly or view it on GitHub.

from tyk.

lonelycode avatar lonelycode commented on May 12, 2024

Fixed in master - you can now round-robin load balance to multiple upstream services using

    ...
    "enable_load_balancing": true,
    "target_list": [
        "http://server1", 
        "http://server2", 
        "http://server3"
    ],

In the proxy section of the API Definition

from tyk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.