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
- 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
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
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:
- 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?
- 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
For more information, see Sharing data with remote servers.
- 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.
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.
Push Technology provides Consulting Services that can work
with you to advise on a solution that best fits your requirements. Email for more information.