datasnap 长连接、短连接
2013-01-10 21:08
141 查看
如果通讯协议使用TCP/IP,客户端同中间件之间的SOCKET连接是非常有讲究的。
应该视应用场合巧妙地使用短连接搭配长连接的方式。纯粹地使用长连接或者纯粹地使用短连接,
往往不大合理。如果长时间让一个SOCKET长连接休闲,这无疑是对中间件资源的浪费,如果这种休闲的长连接数量非常多,可能会影响中间件的性能。光靠中间件通过发心跳包自动断开长时间休闲的连接,其实这是中间件对此类事件的最后一道防线。
如果远程方程都做成短连接,也不大好,例如一些远程方法成块地执行,如果执行一个远程方法先同中间件建立SOCKET连接,执行完以后立即断开连接,这样就不好。因为建立SOCKET连接比较地耗时,一些远程方法成块地执行,耗费在建立连接上的
时间非常多了。那么我们可以在这一些成块执行的远程方法执行之前建立一个长连接,等这些远程方法都执行完以后,再关闭这一个长连接,这样比较合理。
其实长连接和短连接都是相对的。世界上的事情往往没有纯粹可言。所谓长连接中有短连接,短连接中有长连接,你看得见吗?
设置中间件的线程池的线程方式,再在客户端巧妙地使用长、短连接的配合,才能合理地构建一个多层架构。
应该视应用场合巧妙地使用短连接搭配长连接的方式。纯粹地使用长连接或者纯粹地使用短连接,
往往不大合理。如果长时间让一个SOCKET长连接休闲,这无疑是对中间件资源的浪费,如果这种休闲的长连接数量非常多,可能会影响中间件的性能。光靠中间件通过发心跳包自动断开长时间休闲的连接,其实这是中间件对此类事件的最后一道防线。
如果远程方程都做成短连接,也不大好,例如一些远程方法成块地执行,如果执行一个远程方法先同中间件建立SOCKET连接,执行完以后立即断开连接,这样就不好。因为建立SOCKET连接比较地耗时,一些远程方法成块地执行,耗费在建立连接上的
时间非常多了。那么我们可以在这一些成块执行的远程方法执行之前建立一个长连接,等这些远程方法都执行完以后,再关闭这一个长连接,这样比较合理。
其实长连接和短连接都是相对的。世界上的事情往往没有纯粹可言。所谓长连接中有短连接,短连接中有长连接,你看得见吗?
设置中间件的线程池的线程方式,再在客户端巧妙地使用长、短连接的配合,才能合理地构建一个多层架构。
相关文章推荐
- 视频:连接 Android应用和DataSnap服务-巴西 2010 Delphi 大会
- delphi xe 之路(27)XE7 Datasnap使用dbExpress连接MySQL
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (三)用TClientDataSet的“ProviderName”属性连接服务器时,无法找到服务器端的“DatasetProvier”
- datasnap 如何监控客户端的连接情况
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (三)用TClientDataSet的“ProviderName”属性连接服务器时,无法找到服务器端的“DatasetProvier”
- datasnap 如何监控客户端的连接情况
- datasnap 2010 利用心跳包清除TCP死连接
- delphi 10.2.3 datasnap中间层 连接字符串
- DataSnap 2009 系列之一 (系统连接篇)
- datasnap 2010 心跳包,连接断开处理
- datasnap 如何监控客户端的连接情况
- XE7 Datasnap使用dbExpress连接MySQL数据库
- datasnap 如何监控客户端的连接情况
- datasnap 数据库连接
- DATASNAP清除僵死连接
- DataSnap如何监控Tcp/IP客户端的连接情况
- datasnap中间件如何控制长连接的客户端连接?
- 使用SQLCONNECTION连接datasnap服务器时,需要引用DbxCompressionFilter单元 不然会报错argument out of range
- DataSnap 的连接事件顺序图
- DataSnap Server中共享数据库连接