Servers
Consider the quantity, distribution, location and configuration of your Diffusion™ servers.
How many Diffusion servers?
- Number of client connections
- How many client connections do you expect to occur concurrently? For a greater number of concurrent client connections, you might require more Diffusion servers to spread the load between.
- Volume of data
- At what rate are you publishing updates and sending messages? How large are the updates and messages? If you are distributing a greater volume of data, you might require more Diffusion servers to spread the load between.
- Hardware capabilities
- The number of concurrent client connections and the volume of data that
a single
Diffusion
server can handle depend on
the hardware that the
Diffusion
server runs
on. In order of importance, the following hardware components have the biggest impact on the server performance:
- Network interface controller ( NIC )
- Central processing unit ( CPU )
- Random access memory ( RAM )
- Resilience and failover requirements
- Ensure that you have enough
Diffusion
servers
that if one or more becomes unavailable, for example when updating the
server or due to a failure of the hosting system, the remaining
Diffusion
servers can spread the resulting
load increase.
You can also use replication between Diffusion servers to increase your solution's resilience. For more information, see Server clusters for high availability.
- Distribution of servers
- How you wish to distribute your servers has an effect on how many
servers you require.
For example, if your client base is distributed geographically, you might want to locate your Diffusion servers in different territories. This enables your servers to be more responsive because of their proximity to clients. In this case, the number of territories your client base is spread over affects the number of servers you require.
You can easily scale your solution by adding additional Diffusion servers if your requirements change.
How are your Diffusion servers configured?
- Ports
- What ports do you want to provide access to your Diffusion server on? By default, your Diffusion server supports client connections on port 8080.
- Reconnection behavior
- Do you want to allow clients that lose their connection to reconnect to the server? How long do you want to keep client sessions available after the client loses connection?
- Clusters
- Replication enables a cluster of
Diffusion
servers to share
information about configuration, topics and client sessions with each other through a
data grid, providing redundancy and high availability
.
For more information, see Server clusters for high availability.
- Data sharing with remote servers or between clusters
- The remote topic view feature enables
data to be shared between servers that are not in a cluster.
This enables you to create local secondary servers for load-balancing,
or share data with a geographically remote server cluster to minimise
latency.
For more information, see Data federation with remote servers.
- Performance
- Tuning your
Diffusion
servers for performance
is best done as part of testing your solution before going to
production. This enables you to observe the behavior of your solution in
action and configure its performance accordingly.
For more information, see Tuning.
For more information, see Configuring your Diffusion server.
This manual describes the factors that you must consider when designing your Diffusion solution. However, these factors are too many and too interlinked for this manual to provide specific guidance.
DiffusionData provides Consulting Services that can work with you to advise on a solution that best fits your requirements. Email [email protected] for more information.