基于tcp的rpc接口问题

xiangagou 2019-07-05 08:49:42
现在有很多机器设备需要连接到一台服务器,已经对外开放基于tcp的rpc回调接口(这个接口对方提供无法修改),大约几十到最多两百多台,要不断(间隔30s或更短)发送请求获取实时数据。我现在直接用基于线程池的socket连接,时间一长会出现断连无法再重连和服务器死机情况。请问现在socket客户端有没有成熟的框架(Netty?)支持该需求?我之前也看了下消息队列rabbitmq,好像都需要tcp接口端要编程接入队列,好像也不能实现我这需求。求高手解答下
...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangagou 2020-04-29
  • 打赏
  • 举报
回复
自己用netty解决了,客户端机器放到niogroup里就能比较好的进行管控。
tianfang 2019-07-05
  • 打赏
  • 举报
回复
这个连接数量,使用socket连接池处理足够,netty可以做,效果也很好,都是解决C1M(一百万连接)级的问题。 你问题有两个: 1 超时连接的处理,你的连接规则是什么,怎么断开的? 2 死机的时候,tcp连接数是多少?你可以用netstat 检查服务器的tcp数量,状态 目前状况,可以试试单独加一个守护线程,定时关闭服务器的超时连接
cwmlow 2019-07-05
  • 打赏
  • 举报
回复
netty里长连接就可以实现啊 建消息队列读写数据
weixin_40290083 2019-07-05
  • 打赏
  • 举报
回复
长连接还是短连接要看具体情况。另外你看看软件抛出的异常信息,看看是什么原因。
xiangagou 2019-07-05
  • 打赏
  • 举报
回复
引用 1 楼 weixin_40290083的回复:
30S最多200台,服务器压力不是很大,你试试获取完数据后断开连接,下次需要数据时重新连接。 另外你的服务器操作系统是什么。
短连接不是更耗资源吗?在windows server16上跑的
weixin_40290083 2019-07-05
  • 打赏
  • 举报
回复
30S最多200台,服务器压力不是很大,你试试获取完数据后断开连接,下次需要数据时重新连接。 另外你的服务器操作系统是什么。
Unicode Escapes 2019-07-05
  • 打赏
  • 举报
回复
按说200个连接,对服务器来说压力不大。你不能重连是不是因为服务器死机了,死机的原因是不是在请求处理中有非常耗时操作。感觉需要解决的是服务器方面的问题,而不是客户端使用什么技术
maradona1984 2019-07-05
  • 打赏
  • 举报
回复
Netty肯定没问题的,但断连不能重连难道不是人家服务的问题?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧