Just a second...

Servers

Consider the quantity, distribution, location and configuration of your Diffusion™ servers.

How many Diffusion servers?

Consider the following factors when deciding how many Diffusion servers to use in your solution:
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?

Consider the following factors when deciding how to configure the Diffusion servers in your solution:
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 and fan-out features enable 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.