因此,如果我是客户,我会配置与服务器连接数一样多的通道部署文件。每个通道都有一个与之关联的多路复用器。将所有这些多路复用器包装在 jpos muxpool 部署中。这将充当单个巨大的多路复用器,对多路复用器和通道进行循环选择。使用 muxpool 发送请求(与使用 mux 完全相同)。这样,您的所有连接都会被利用,如果您的任何连接未连接,则池足够智能,可以使用已连接的下一个可用多路复用器。
例如说服务器正在侦听端口 9000 并允许 2 个连接。
我将按如下方式创建 2 个通道适配器,它们都指向主机和端口 9000。请查看每个适配器如何具有输入/输出元素。
<?xml version="1.0" ?>
<channel-adaptor name='HostConnection-1'
class="org.jpos.q2.iso.ChannelAdaptor" logger="Q2">
<channel class=" org.jpos.iso.channel.NACChannel" logger="Q2" realm="channel-1"
packager="org.jpos.iso.packager.GenericPackager">
<property name="packager-config" value="cfg/host-packager.xml" />
<property name="host" value='127.0.0.1' />
<property name="port" value="9000" />
<property name="timeout" value="1000000" />
<property name="keep-alive" value="true" />
</channel>
<in>host1-send</in>
<out>host-receive</out>
<reconnect-delay>10000</reconnect-delay>
<channel-adaptor name='HostConnection-2'
class="org.jpos.q2.iso.ChannelAdaptor" logger="Q2">
<channel class=" org.jpos.iso.channel.NACChannel" logger="Q2" realm="channel-2"
packager="org.jpos.iso.packager.GenericPackager">
<property name="packager-config" value="cfg/host-packager.xml" />
<property name="host" value='127.0.0.1' />
<property name="port" value="9000" />
<property name="timeout" value="1000000" />
<property name="keep-alive" value="true" />
</channel>
<in>host2-send</in>
<out>host2-receive</out>
<reconnect-delay>10000</reconnect-delay>
</channel-adaptor>
现在创建 2 个多路复用器。多路复用器将通道输入/输出连接到其输入/输出
<mux class="org.jpos.q2.iso.QMUX" logger="Q2" name="host-mux-1">
<in>host1-receive</in>
<out>host11-send</out>
<ready>HostConnection-1.ready</ready> <!-- needs to be adaptor name + .ready-->
<unhandled>host-unhandled</unhandled>
<mux class="org.jpos.q2.iso.QMUX" logger="Q2" name="host-mux-2">
<in>host2-receive</in>
<out>host12-send</out>
<ready>HostConnection-2.ready</ready> <!-- needs to be adaptor name + .ready-->
<unhandled>host-unhandled</unhandled>
</mux>
现在创建一个 muxpool 部署文件。
<mux class="org.jpos.q2.iso.MUXPool" logger="Q2" name="host-mux">
<muxes>host-mux-1 host-mux-1</muxes>
<strategy>round-robin</strategy>
</mux>
从 jpos 的 nameregistrar 实例中按名称获取 muxpool 并触发请求。它使用池中配置的多路复用器以循环方式触发请求。
当它的连接数量很少时,这很有效,随着数量的增长,您可能希望以编程方式考虑创建这些通道和多路复用器。