我现在有些数据需要实现缓存。事件如下描述:
1、有A系统(别人的系统)和B系统(我的系统),A系统向B系统发送员工信息(工号、姓名、上报时间等)数据其中是每5秒发送一条(UDP通讯方式)。B系统实时监听A系统是否向自己发送数据,若发送则判断此员工是否在B系统的数据库中如果不在那么插入此信息,如果在那么更新员工信息。
2、由于频繁对数据库操作,数据库出现异常:连接数过多(Caused by: java.sql.SQLException: Data source rejected establishment of connection, message from server: "Too many connections")。
3、此时我想到了对数据先进行缓存,可以缓存到一个List中,但较难实现,想请高手们指点指点。
1、有A系统(别人的系统)和B系统(我的系统),A系统向B系统发送员工信息(工号、姓名、上报时间等)数据其中是每5秒发送一条(UDP通讯方式)。B系统实时监听A系统是否向自己发送数据,若发送则判断此员工是否在B系统的数据库中如果不在那么插入此信息,如果在那么更新员工信息。
2、由于频繁对数据库操作,数据库出现异常:连接数过多(Caused by: java.sql.SQLException: Data source rejected establishment of connection, message from server: "Too many connections")。
3、此时我想到了对数据先进行缓存,可以缓存到一个List中,但较难实现,想请高手们指点指点。
解决方案 »
- 部署在tomcat上可以运行但webLogic不可以
- mysql错误
- 想用struts2做个班级网站但不会美工,求全整的模板,谢谢
- spring注入问题
- 请大哥们帮我看看能否找到工作
- 我刚学WEB编程,问个关于JSTL函数标签的问题
- 那位可以给一个HTTP接口的例子,以及调用方法,简单的就可以。
- weblogic启动出现的问题,该怎么解决?
- struts-config 中,不能编辑Action 新增修改都提示错误
- java通过jdbc访问数据库流行采用何种数据库驱动程序?jdbc-odbc , InterClient , 还是“网络协议/全java驱动程序”?如有可能,请给简明
- 请问Java数组的使用,怎么把A数组的值赋值到B数组。
- struts2中如何解决这个问题?
B系统中,没必要每次insert和update都去open connection,保持住一个或几个连接。不就好了?
我不太明白10楼所说的“所以,你应该保证你处理别人的系统过来的每5秒的那个连接池是独立的,是与自己的系统的连接池分开的,这样不会导致因为自己的系统繁忙,别的系统too many connections,也不会因为别的系统繁忙导致自己的系统too many connections。如果实在是因为B系统或A系统数据量太大,则加大各自Pool的Connection数,同时调整数据库各项参数。”。
我说明一下,A系统是一个硬盘设备,它只负责向B系统发送数据而已,我们不能人为去控件它发送数据时间间隔等。
然后可以试一下使用数据库的存储过程,把判断更新插入操作做到一起。
最后还不行,分采集,待处理数据队列,存储(ConcurrentLinkedQueue)。
于是想到这里的时候,我就想到了一个比较笨的办法,不知道楼主能不能考虑下
把东西全部写到文件里,然后监听文件大小
当文件大于某个临界值以后,就使用SQLLOADer之类的办法load到数据库去。
不知道这样的办法是否可行。