Chapter 10. Gateway
Abstract
The Fabric Gateway provides a TCP and HTTP/S gateway for discovery, load balancing and failover of services running in a fabric. The Fabric Gateway enables you to use standard HTTP URLs to access Web applications or Web services running in a fabric. In JBoss Fuse, messaging clients can discover and connect to brokers over any supported messaging protocol (OpenWire, STOMP, MQTT, AMQP or WebSockets), letting the gateway handle the connection management to the real services running inside the fabric.
10.1. Gateway Architecture
Deployment strategies
There are two main deployment strategies for a gateway:
- Run the gateway on each machine that needs to discover services and communicate with it through
localhost
. In this case, you do not need to hard code any host names in your messaging or Web clients and the connection to the gateway onlocalhost
is nice and fast. - Run the gateway on one or more known hosts using DNS or VIP load balancing (mapping host names to machines). In thise case, you can use a fixed host name for all your services
How the gateway works
The gateway monitors and detects any changes in the ZooKeeper registry for all Web applications, Web services, servlets and message brokers. For all of the registered services, the gateway applies mapping rules to figure out how to expose those services through TCP or HTTP.
The ZooKeeper registry is automatically populated by Fabric when you deploy Web archives (WARs) or CXF based Web services.