CORBA over WiFi 运行速度很慢

Posted

技术标签:

【中文标题】CORBA over WiFi 运行速度很慢【英文标题】:CORBA over WiFi run very slow 【发布时间】:2014-03-17 04:59:11 【问题描述】:

我有使用 CORBA 连接的 java 服务器-客户端应用程序。应用程序通过有线连接运行良好,但通过 WiFi 连接时,客户端应用程序运行速度非常慢。有人知道为什么 CORBA 在 WiFi 上速度很慢吗?

提前致谢。

【问题讨论】:

您使用的是 1Gbit 有线网络和 150Mbit wifi 吗?如果你是的话,会有8倍的速度差异。 【参考方案1】:

你根本没有量化什么是慢和快。有几件事要看,首先是 IDL 接口的设计。通常,IDL 操作的每次调用都会导致通过网络进行远程调用。例如,当您要检索 1M 值时,不要执行 1M 操作,而是以更大的块检索它们。其次,调用的有效负载是什么,要传输的数据大小是多少。如果它很大并且您的 wifi 链接很慢,那么传输数据需要时间,ZIOP(CORBA 压缩)为 CORBA 添加了压缩您的应用程序数据的能力,值得一看。最后,您的网络设置是否正确,您使用的所有主机名和 IP 地址是否正常工作,例如,如果在您的 wifi 设置中 DNS 设置不正确,那么反向查找会降低性能。

检查您的 CORBA 实现以启用日志记录,查看发生了什么、传输了多少数据、您是否看到错误等。

【讨论】:

如何在 glassfish 中启用 ZIOP? 不确定 glassfish 是否支持 ZIOP,您必须查看他们的文档。 TAO ZIOP 测试请参见svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/TAO/tests/ZIOP 在我的应用程序中替换 glassfish orb 技术作为数据传输的最佳建议是什么?我正在开发带有 EJB 和 JPA 的 java 服务器,部署在 glassfish 上,java 桌面作为客户端。服务端和客户端都发送大量数据,主要使用arrayList一个集合。 询问 glassfish 人是否可以将 ZIOP 添加到他们的 ORB,应该不难做到【参考方案2】:

如果开发人员像普通的 C++/Java 对象一样设计 CORBA 对象,CORBA 可能是一个网络密集型协议,这将导致网络上的一些小交互。这使得它非常容易受到网络延迟的影响。 IE。不是网络的整体速度,而是打开流和发送单个数据包所需的时间。建立连接后,无线网络可以非常快速地发送大数据包,但是,我怀疑您的无线网络路由数据包非常慢。

【讨论】:

我不同意 CORBA 是一个网络密集型协议。 ORB 通常只在需要时打开套接字连接,并尽可能长时间地保持打开状态。只有当用户设计一个需要大量交互的 IDL 接口时,才会发生非常小的交互,独立于所使用的协议,如果您进行数千次调用来做一些简单的事情,任何技术都不会执行。 CORBA 确实具有它是二进制协议并且支持压缩的优势,一个设计良好的 CORBA 系统在请求/回复类型的交互方面将优于任何其他技术。 @johnny -- 虽然可以设计高效的 CORBA 对象,但大多数程序员只是将它们视为具有大量 getter 和 setter 等的普通对象。 是的,我已经在几个项目中看到过这种情况,但这更多的是缺乏对实现分布式网络应用程序意味着什么的理解。 CORBA 使创建这种系统变得更容易,但它绝对是一个让其变得超级容易的圣洁,创建这种系统仍然是一项艰巨的工作。 -1 表示 CORBA“在网络上进行几个小的交互”,因为它是一个“网络密集型协议”。这些都不是真的:单个 CORBA 请求映射到网络上的单个 GIOP 请求(不是多个),并且 CDR 编码非常有效(一方面,它不是自描述的,并且非常有效地打包数据结构)。 我们有另一个使用restful的服务器-客户端应用程序发送大量数据。但它不会给通过有线或 wifi 的数据传输带来任何问题。所以我认为wifi网络不是问题。

以上是关于CORBA over WiFi 运行速度很慢的主要内容,如果未能解决你的问题,请参考以下文章

WiFi信号满格但是速度很慢?需要无线流控方案。

我centOS上的MySQL速度很慢

我的MacBook air运行速度很慢怎么办

为啥U盘运行速度很慢

SQL Server 存储过程在 SSMS 中运行速度很快,在应用程序中运行速度很慢 [重复]

ubuntu16.04下wifi上网速度很慢的解决方案