搜索
bottom↓
回复: 8

关于java的map表,key,value双向查找。用什么方案实现?

[复制链接]

出45入88汤圆

发表于 2018-12-29 20:47:38 | 显示全部楼层 |阅读模式
服务器现在为每条tcp连接做个map表方便实时推送。客户端登陆和上报时都带uuid。我用uuid做key,SelectionKey为value做了一个表,当有事情要推送时通过uuid查找到对应的SelectionKey发送数据。现在问题来了我的tcp是用nio方式来做。网络断开时只知道是哪个SelectionKey,并不知道对应的uuid是多少,如何从map里remove掉?,我不想用遍历。这样太慢。做两个表?

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入46汤圆

发表于 2018-12-29 22:38:11 | 显示全部楼层
三种方法:1——把uuid放入selectionKey组合出一个字符串;2——把uuid和selectionkey放到一个对象中,map时uuid对应这个对象即可;3——用两个map,只是后面需要同步更新

出45入88汤圆

 楼主| 发表于 2018-12-29 23:08:18 | 显示全部楼层
jasonzhu8888 发表于 2018-12-29 22:38
三种方法:1——把uuid放入selectionKey组合出一个字符串;2——把uuid和selectionkey放到一个对象中,map ...

前两点应该不行,有两个要求,可以根据UUID找到selectkey,可以根据selectkey去remove

出45入88汤圆

 楼主| 发表于 2018-12-29 23:12:17 | 显示全部楼层
还有一个方法就是断开连接时不处理,等到下次根据uuid发送出现remove

出0入442汤圆

发表于 2018-12-30 10:04:02 来自手机 | 显示全部楼层
你这种方式小心ddos攻击。伪造几百万个id就把你整瘫了。

出45入88汤圆

 楼主| 发表于 2018-12-30 10:08:20 | 显示全部楼层
wye11083 发表于 2018-12-30 10:04
你这种方式小心ddos攻击。伪造几百万个id就把你整瘫了。

确实,做大了会受攻击。请支招。

出45入88汤圆

 楼主| 发表于 2018-12-30 10:09:16 | 显示全部楼层
wye11083 发表于 2018-12-30 10:04
你这种方式小心ddos攻击。伪造几百万个id就把你整瘫了。

加鉴权?不合法的uuid,断开连接。

出0入0汤圆

发表于 2018-12-30 10:29:46 | 显示全部楼层
xuexi..   

出0入442汤圆

发表于 2018-12-30 10:52:09 来自手机 | 显示全部楼层
Edesigner. 发表于 2018-12-30 10:08
确实,做大了会受攻击。请支招。

我也没招,应对ddos可以有机房帮你解决,但是用户同时访问还需要服务器程序优化。根据老外评测,一个http服务器大概可以撑起来2k个并发请求。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-16 07:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表