当微信服务器给我的URL发送多次同一请求,怎样实现排重
1写class A包括三字段msgid(用于判断普通消息)FromUserName + CreateTime(用于判断事件消息);
2创建静态变量list 用缓存A象;
3微信推送消息newA象:1)普通消息定msgid赋值给A实例;2)事件消息则fromusernamecreateTime属性赋值给A实例;
4每微信推送消息判断缓存否包含该A象包含说明重复消息;
包含说明重复并且该A象放入缓存(别忘复写hashcodeequals)
弊端:
缓存list限所我add候限制list1000;仍弊端触发条件极端所暂用着
对于海量数据和海量并发请求,集群处理,有LB导致的需求,也有存储容量导致的需求。在以微服务的架构下,一个业务流程可能会经历多个业务服务器。而这多个业务服务器,甚至包含Gate服务,是不是需要转发,有LB导致的需求,也有后端服务LB或者存储容量导致的需求。而且,还有一大类是容灾和故障转移等安全和稳定性导致的需求。 比如作为一个Gateway,要访问后端用户交易系统,分发请求道不同的用户交易系统Gateway,这个可以说是因为后端用户交易系统Gateway的LB导致的需求;又比如作为一个Gateway,要访问后端数据库,分发请求到不同的数据库,这是容量导致的需求;又比如作为一个Gateway,要访问后端About或者其他极少变动也极少访问的业务配置信息缓存,这是架构设计容灾灾备导致的需求,和LB、容量等等无关。又比如作为一个业务服务,当需要聚合资源时,分发请求到不同的后端服务上去,这是架构设计也业务导致的需求,可能完全和LB没有半毛钱关系。而分发请求的方式呢,一般我常用的有这么几种(根据不同的需求,用的方式不同): 一致性Hash,随机、轮转、分区/段、强一致性分发、广播、任一成功广播、半数成功广播。 再说一遍,业务不同,需求不同,方式也就不同。
我觉得你这个问题的解决应该是你的程序做一次这个网站的登陆,而且这个登陆的动作应该是需要发生在你这段代码以前,因为你这段代码的动作其实只是访问了一下那个网站,但是没有任何的用户或者是其他的信息。
一般来说你登陆以后,你会获得一个token,用那个token就可以让网站认为你已经登陆,然后改密码什么就好办了。建议你先抓一下IE的包看看是人家的通信是怎么样的,然后用java做就好了。或者是那个网站有开发者文档就最好了。
0条评论