Enumeration速度是Iterator的2倍,同时占用更少的内存。但是,Iterator远远比Enumeration安全,因为其他线程不能够修改正在被Iterator遍历的集合里面的对象。同时,Iterator允许调用者删除底层集合里面的元素,这对Enumeration来说是不可能的。
PriorityQueue是一个基于优先级堆的无界队列,它的元素是按照自然顺序(naturalorder)排序的。在创建的时候,我们可以给它提供一个负责给元素排序的比较器。PriorityQueue不允许null值,因为他们没有自然顺序,或者说他们没有任何的相关联的比较器。最后,PriorityQueue不是线...
整个P2P项目第一个版本,我们是采用普通的ssm框架进行开发的,是一种集中式的开发方式,上线一年之后,随着公司发展和业务需要,我们原来的ssm架构的项目,代码非常庞大和混乱,一个方法可能出现好几百行,里面很多逻辑,要新增一个功能,开发特别慢,由于修改这个功能,可能又导致另一个功能出现问题或者bug,后来我们对整...
为了数据传输的安全性,我们的p2p项目访问的时候,全部都https协议,https协议会将数据加密传输,提高安全性,我们当时公司的运维部门采购了https的安全证书,在服务器上搭建了https协议的访问方式,如果用户采用http访问,我们会自动跳转到https协议打开网页。
在P2P项目中,比如在用户投资到期后需要给用户回款,此处我们使用了多线程,加快整个回款的速度,我们先从数据库获取所有待回款的数据,然后创建一个线程池,每个回款是一个线程,将这些回款线程提交到线程池中执行,从而充分利用服务器的CPU资源快速为用户回款;再比如当每个投资用户生日时,我们会在用户生日当天给用户送一个生...
第一点,首先消息需要使用持久化消息,服务挂掉,重启服务后消息依然可以消费,不会丢失;第二点,ActiveMQ采用主从模式搭建集群,比如搭建3台主从模式的ActiveMQ集群,提高服务的可用性;
消息在接收后会被服务器删除,为了避免接收消息失败而消息又被服务器删除,此时我们可以关闭自动确认机制AUTO_ACKNOWLEDGE,采用手动消息确认机制,由程序进行消息的确认,接收消息发生异常,则不确认消息,以便于下次可以再次接收。
RMI是Java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以用于任意语言。跨平台有点小问题。Httpinvoker是SpringFramewo...
1.RDB持久化:该机制可以在指定的时间间隔内生成数据集的时间点快照(point-in-timesnapshot)。2.AOF持久化:记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。AOF文件中的命令全部以Redis协议的格式来保存,新命令会被追加到文件的末尾。Redis还可...
1.存储方式不同,Memcache是把数据全部存在内存中,数据不能超过内存的大小,断电后数据库会挂掉。Redis有部分存在硬盘上,这样能保证数据的持久性。2.数据支持的类型不同memcahe对数据类型支持相对简单,redis有复杂的数据类型。3.使用底层模型不同它们之间底层实现方式以及与客户端之间通信的应用协议...