套接字连接中的对象池可提高吞吐量

对象共享在Windows 2000(XP等)平台上,可以在用户之间“共享” Component Enabler客户端对象(LINCEnvironment对象)。 这可以通过使用平台本身的COM +功能来实现。

设置很容易

可以简单地通过使用控制面板中的组件服务控制台将LINCEnvironment对象声明为COM +对象。 向导使您可以从列表中选择LINCEnvironment对象,然后执行其余操作。 然后,在新的COM +对象的属性中,您可以打开对象池,并设置池的最小值和最大值。

使用起来很容易

在客户端中创建LINCEnvironment对象时,系统将自动从池中返回一个对象,而不是创建一个新对象。

要释放该对象,您只需要清除客户端对它的任何引用即可。 当系统检测到不再有对该对象的引用时,它将自动返回到池中,以供下一个客户端使用。

有收获吗?

这项技术本身就需要无状态的Ispec,因为实质上所有用户都共享一个EAE会话,事务号等。

但是,有状态会话可以与消息队列结合使用。

消息队列。 为了避免每个用户一个TCP / IP套接字连接,EAE版本3.2添加了Microsoft消息队列(MSMQ)传输。

通过消息队列,所有请求都被包装为消息,并放置在消息队列中。 然后,远程访问服务器(RAS)使用一个(或多个)TCP / IP套接字从队列中读取所有用户请求。 然后,将请求解包,并传递到EAE系统进行处理。

当一个请求由EAE系统处理时,RAS可用于读取另一条消息并将其传递给EAE系统。 这样,我们只需一个连接就可以实现更高的吞吐量。

当EAE主机处理完一个请求后,RAS将接收答复,并将其发送回用户的答复队列(在原始消息中标识)。 然后,在客户端处理其答复时,RAS可以自由处理更多的请求和答复。

如果连接接近饱和,则可以启动另一个RAS进程和连接以从请求队列中进行读取,从而使潜在的吞吐量增加一倍。

还有更多!

除了减少TCP / IP套接字连接之外,消息排队还使我们能够在消息基础结构中存储“状态密钥”。 EAE系统使用此状态密钥将特定用户的会话“状态”恢复到上次答复结束时的状态。

使用此方法,客户端可以将状态密钥与下一个请求一起传递,并且知道EAE将还原与上一个事务中相同的状态。 这意味着像GLB.WORK这样的项目将正常工作,因为这是正常的终端会话。

在Component Enabler类参考中查找允许您的客户端获取和设置状态密钥的新方法。

甚至更多!

尽管消息队列可以减少TCP / IP套接字连接的数量,但它本身仍需要每个用户一个LINCEnvironment对象。 但是,结合上述对象池,在客户端之间共享LINCE环境对象很简单,同时仍保持有状态的系统。

化子类化是面向对象语言中的一种技术,它使您可以扩展或更改父对象的行为。

这对您意味着什么,就是可以添加新功能或更改LINCEnvironment类的功能以所需的方式工作。

最好用一个例子来解释。 使用子类,可以很容易地更改LINCEnvironment对象的行为,以便在创建对象时它会自动将其自身连接到EAE主机。 这样可以大大简化您的客户。 如果您希望使您的系统可供多方使用,但又不希望他们知道如何连接的详细信息,则这种功能也将非常有用。

如果您希望将所有空格替换为  对于Web访问,您只需编写一种方法来替您完成替换。 当使用脚本客户端时,这将是最大的优势,因为Java的运行本质上比编译的要快得多。

这是组件吗?

通过子类化,您还可以朝使EAE系统作为组件显示的方向移动。 例如,子类中的单个方法调用可以连接到系统,导航到特定的Ispec,然后从多个Ispec中收集数据,然后再将数据返回给客户端。 从客户端的角度来看,所有这些都是通过一次调用组件来实现的。 客户端程序员可以完全隐藏调用的实际机制。

为什么要停下来? 可以给每个子类一个不同的名称,并分别注册为一个COM(甚至COM +)对象。 这使您可以创建一系列组件,所有这些组件执行不同的功能。 但是,对客户程序员而言,它们只是作为不同的组件出现。 池化作为单独的组件,它们也可以单独进行池化。 作为池对象,它们可能仅连接一次,因此消除了后续客户端的连接和登录开销。

请注意,通过消息队列进行通信的子类化,池化对象对于大量WWW用户而言可能是一种非常有效(尽管更复杂)的解决方案。

From: https://bytes.com/topic/java/insights/927779-object-pooling-socket-connection-increase-throughput

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值