이 콘텐츠는 선택한 언어로 제공되지 않습니다.
Chapter 3. Configuring Data Grid Server Endpoints
Data Grid servers provide listener endpoints that handle requests from remote client applications.
3.1. Data Grid Endpoints
Data Grid endpoints expose the CacheManager
interface over different connector protocols so you can remotely access data and perform operations to manage and maintain Data Grid clusters.
You can define multiple endpoint connectors on different socket bindings.
3.1.1. Hot Rod
Hot Rod is a binary TCP client-server protocol designed to provide faster data access and improved performance in comparison to text-based protocols.
Data Grid provides Hot Rod client libraries in Java, C++, C#, Node.js and other programming languages.
Topology state transfer
Data Grid uses topology caches to provide clients with cluster views. Topology caches contain entries that map internal JGroups transport addresses to exposed Hot Rod endpoints.
When client send requests, Data Grid servers compare the topology ID in request headers with the topology ID from the cache. Data Grid servers send new topology views if client have older topology IDs.
Cluster topology views allow Hot Rod clients to immediately detect when nodes join and leave, which enables dynamic load balancing and failover.
In distributed cache modes, the consistent hashing algorithm also makes it possible to route Hot Rod client requests directly to primary owners.
3.1.2. REST
Reference
Data Grid exposes a RESTful interface that allows HTTP clients to access data, monitor and maintain clusters, and perform administrative operations.
You can use standard HTTP load balancers to provide clients with load balancing and failover capabilities. However, HTTP load balancers maintain static cluster views and require manual updates when cluster topology changes occur.
3.1.3. Protocol Comparison
Hot Rod | HTTP / REST | |
---|---|---|
Topology-aware | Y | N |
Hash-aware | Y | N |
Encryption | Y | Y |
Authentication | Y | Y |
Conditional ops | Y | Y |
Bulk ops | Y | N |
Transactions | Y | N |
Listeners | Y | N |
Query | Y | Y |
Execution | Y | N |
Cross-site failover | Y | N |
3.2. Endpoint Connectors
You configure Data Grid server endpoints with connector declarations that specify socket bindings, authentication mechanisms, and encryption configuration.
The default endpoint connector configuration is as follows:
<endpoints socket-binding="default"> <hotrod-connector name="hotrod"/> <rest-connector name="rest"/> <memcached-connector socket-binding="memcached"/> </endpoints>
-
endpoints
contains endpoint connector declarations and defines global configuration for endpoints such as default socket bindings, security realms, and whether clients must present valid TLS certificates. -
<hotrod-connector name="hotrod"/>
declares a Hot Rod connector. -
<rest-connector name="rest"/>
declares a Hot Rod connector. -
<memcached-connector socket-binding="memcached"/>
declares a Memcached connector that uses the memcached socket binding.
Reference
urn:infinispan:server schema provides all available endpoint configuration.
3.2.1. Hot Rod Connectors
Hot Rod connector declarations enable Hot Rod servers.
<hotrod-connector name="hotrod"> <topology-state-transfer /> <authentication> ... </authentication> <encryption> ... </encryption> </hotrod-connector>
-
name="hotrod"
logically names the Hot Rod connector. -
topology-state-transfer
tunes the state transfer operations that provide Hot Rod clients with cluster topology. -
authentication
configures SASL authentication mechanisms. -
encryption
configures TLS settings for client connections.
Reference
urn:infinispan:server schema provides all available Hot Rod connector configuration.
3.2.2. REST Connectors
REST connector declarations enable REST servers.
<rest-connector name="rest"> <authentication> ... </authentication> <cors-rules> ... </cors-rules> <encryption> ... </encryption> </rest-connector>
-
name="rest"
logically names the REST connector. -
authentication
configures authentication mechanisms. -
cors-rules
specifies CORS (Cross Origin Resource Sharing) rules for cross-domain requests. -
encryption
configures TLS settings for client connections.
Reference
urn:infinispan:server schema provides all available REST connector configuration.
3.3. Data Grid Server Ports and Protocols
Data Grid Server exposes endpoints on your network for remote client access.
Port | Protocol | Description |
---|---|---|
| TCP | Hot Rod and REST endpoint |
| TCP | Memcached endpoint, which is disabled by default. |
3.3.1. Configuring Network Firewalls for Remote Connections
Adjust any firewall rules to allow traffic between the server and external clients.
Procedure
On Red Hat Enterprise Linux (RHEL) workstations, for example, you can allow traffic to port 11222
with firewalld as follows:
# firewall-cmd --add-port=11222/tcp --permanent success # firewall-cmd --list-ports | grep 11222 11222/tcp
To configure firewall rules that apply across a network, you can use the nftables utility.