升级服务器精确升级功能

Baggio_Wang 2016-08-02 02:14:26
还是之前的那个问题,原帖地址是:http://bbs.csdn.net/topics/391990478

升级服务器分为策略服务器(tomcat)和下载服务器(jboss),策略服务器负责配置需要升级的产品的升级地址,下载的策略,和统计相关升级信息。符合配置的下载策略会重定向到真实的下载地址(下载服务器处理)上,产品会自动下载升级文件。

现在又有个问题,要实现MAC地址精确升级功能,根据在线的产品上报的MAC地址和配置在服务器上的MAC地址就行对比,完全符合的就下载。问题是MAC地址有几万到十几万条,现在的做法是MAC地址都会保存在mysql数据库的表中,然后每次上报一个就在数据库中对比(jdbc-sql脚本),发现速度很慢。有什么优化的方法么?存在hashmap中?还是有什么开源的缓存方案专门可以解决此类问题?

谢谢大家!
...全文
428 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1、配置服务器如果是1台机器一个项目跑,很简单,MAC地址几十万,可以使用bloomfilter来做过滤,具体做法你可以网上参考一下,我们做大数据曾经1000W去重场景无压力(如果不想hash碰撞冲突,hash算法多配置一个或者算法复杂点)。 2、第二种备选,几十W存mysql,在Mysql那边做唯一键,编码的时候,采用乐观模式,直接插入,如果捕获重复插入异常,再做处理,这样大概率无冲突的情况可以避免。 bloomfilter如果有疑问,随时指导
tianfang 2016-08-07
  • 打赏
  • 举报
回复
引用 1 楼 wangpu_baggio 的回复:
select sb.codeid,sb.regionname,sb.strategytype,sb.codetype,sb.phonecode,sb.startcode,sb.endcode,sb.upgradeflag,sb.remark from iptv_ipandphonecode sb, iptv_strategyrelation sb2 where sb.codeid=sb2.codeid and sb.strategytype=3 and sb2.strategyid=? 这种两个表的级联查询如何优化呀?就是这个查询速度慢导致的。。
这个是单表查询啊
tianfang 2016-08-07
  • 打赏
  • 举报
回复
MAC地址是48bit整数,存储时候,从字符串转换为64bit整数存储,并对此字段排序。十几万数据,mysql性能足够
猴子哥哥1024 2016-08-03
  • 打赏
  • 举报
回复
存放在Redis中,Redis作为NoSQL型数据库,其查询速度远远高于mysql,不仅可以作为缓存而且可以作为持久层的数据库来使用,既能提供较高的性能保证,还可以在当机后不至于数据丢失。此外还有一个好处,如果涉及到多台服务器集群,redis的数据共享同步机制也能更方便的进行数据同步。
Baggio_Wang 2016-08-02
  • 打赏
  • 举报
回复
select sb.codeid,sb.regionname,sb.strategytype,sb.codetype,sb.phonecode,sb.startcode,sb.endcode,sb.upgradeflag,sb.remark from iptv_ipandphonecode sb, iptv_strategyrelation sb2 where sb.codeid=sb2.codeid and sb.strategytype=3 and sb2.strategyid=? 这种两个表的级联查询如何优化呀?就是这个查询速度慢导致的。。

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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