Chapter 2. Configuring Data Grid Servers
Apply custom Data Grid Server configuration to your deployments.
2.1. Customizing Data Grid Server configuration Copy linkLink copied to clipboard!
Apply custom deploy.infinispan values to Data Grid clusters that configure the Cache Manager and underlying server mechanisms like security realms or Hot Rod and REST endpoints.
You must always provide a complete Data Grid Server configuration when you modify deploy.infinispan values.
Do not modify or remove the default "metrics" configuration if you want to use monitoring capabilities for your Data Grid cluster.
Procedure
Modify Data Grid Server configuration as required:
Specify configuration values for the Cache Manager with
deploy.infinispan.cacheContainerfields.For example, you can create caches at startup with any Data Grid configuration or add cache templates and use them to create caches on demand.
-
Configure security authorization to control user roles and permissions with the
deploy.infinispan.cacheContainer.security.authorizationfield. -
Select one of the default JGroups stacks or configure cluster transport with the
deploy.infinispan.cacheContainer.transportfields. -
Configure Data Grid Server endpoints with the
deploy.infinispan.server.endpointsfields. -
Configure Data Grid Server network interfaces and ports with the
deploy.infinispan.server.interfacesanddeploy.infinispan.server.socketBindingsfields. -
Configure Data Grid Server security mechanisms with the
deploy.infinispan.server.securityfields.
2.2. Data Grid Server configuration values Copy linkLink copied to clipboard!
Data Grid Server configuration values let you customize the Cache Manager and modify server instances that run in OpenShift pods.
Data Grid Server configuration
deploy:
infinispan:
cacheContainer:
# [USER] Add cache, template, and counter configuration.
name: default
# [USER] Specify `security: null` to disable security authorization.
security:
authorization: {}
transport:
cluster: ${infinispan.cluster.name:cluster}
node-name: ${infinispan.node.name:}
stack: kubernetes
server:
endpoints:
# [USER] Hot Rod and REST endpoints.
- securityRealm: default
socketBinding: default
# [METRICS] Metrics endpoint for cluster monitoring capabilities.
- connectors:
rest:
restConnector:
authentication:
mechanisms: BASIC
securityRealm: metrics
socketBinding: metrics
interfaces:
- inetAddress:
value: ${infinispan.bind.address:127.0.0.1}
name: public
security:
credentialStores:
- clearTextCredential:
clearText: secret
name: credentials
path: credentials.pfx
securityRealms:
# [USER] Security realm for the Hot Rod and REST endpoints.
- name: default
# [USER] Comment or remove this properties realm to disable authentication.
propertiesRealm:
groupProperties:
path: groups.properties
groupsAttribute: Roles
userProperties:
path: users.properties
# [METRICS] Security realm for the metrics endpoint.
- name: metrics
propertiesRealm:
groupProperties:
path: metrics-groups.properties
relativeTo: infinispan.server.config.path
groupsAttribute: Roles
userProperties:
path: metrics-users.properties
plainText: true
relativeTo: infinispan.server.config.path
socketBindings:
defaultInterface: public
portOffset: ${infinispan.socket.binding.port-offset:0}
socketBinding:
# [USER] Socket binding for the Hot Rod and REST endpoints.
- name: default
port: 11222
# [METRICS] Socket binding for the metrics endpoint.
- name: metrics
port: 11223
Data Grid cache configuration
deploy:
infinispan:
cacheContainer:
distributedCache:
name: "mycache"
mode: "SYNC"
owners: "2"
segments: "256"
capacityFactor: "1.0"
statistics: "true"
encoding:
mediaType: "application/x-protostream"
expiration:
lifespan: "5000"
maxIdle: "1000"
memory:
maxCount: "1000000"
whenFull: "REMOVE"
partitionHandling:
whenSplit: "ALLOW_READ_WRITES"
mergePolicy: "PREFERRED_NON_NULL"
#Provide additional Cache Manager configuration.
server:
#Provide configuration for server instances.
Cache template
deploy:
infinispan:
cacheContainer:
distributedCacheConfiguration:
name: "my-dist-template"
mode: "SYNC"
statistics: "true"
encoding:
mediaType: "application/x-protostream"
expiration:
lifespan: "5000"
maxIdle: "1000"
memory:
maxCount: "1000000"
whenFull: "REMOVE"
#Provide additional Cache Manager configuration.
server:
#Provide configuration for server instances.
Cluster transport
deploy:
infinispan:
cacheContainer:
transport:
#Specifies the name of a default JGroups stack.
stack: kubernetes
#Provide additional Cache Manager configuration.
server:
#Provide configuration for server instances.