1, JVM优化
-Xms=-Xmx
-Xmn
-Xss
-XX:PermSize
-XX:MaxPermSize
-NewRatio
-SuvriorRatio
收集器配置:
一般:串行收集 Serial
吞吐优先:并行收集Pramllel
响应优先:并发收集Conc
2,支付掉单如何解决?
因为网络等原因,支付网关未收到银行返回的操作结果(银行扣款未成功;银行扣款成功,故客户的虚拟账户及订单收款状态未发生变化,称为掉单。
可以通过后端程序轮询银行前置机的支付接口,查询支付状况,根据情况延迟更新客户的虚拟账户及订单收款状态。
3,行级锁如何解决?
通过存储过程
4,数据库事务的安全性?
创建恢复点
开始事务
结束事务
提交事务或回滚事物
5,假如给tomcat的内存只有40MB,数据库有20000条记录,一次性导出到客户端,内存不够用怎么办?
将20000条记录分批次先后导出(分页查询)到不同文件,再合并到一个文件。
6,长时间的事务如何处理?
收缩日志文件(修改日志文件大小),就是短时提交,这样保持会话的连续性。
7, 大量并发操作hashmap,如remove,put,get等,不能使用synchronized关键字来同步,也不能使用hashtable(线程安全耗时),如何解决?
ThreadLocal(线程隔离,独立维护线程局部变量副本 HashMap) 在SSH框架应用较多,特别struts.Hibernate
8,分布式以及集群环境下,对大量小文件均衡同步分发,是什么原理,采用什么算法?
经过HashTree(多次hash)来同步,hash算法,如TFS,GFS,HDFS.
9,MQ应用中,消息的消费处理低于消息生产,消息队列发生阻塞,如何处理?
1,消息生产对消息分组打包发送,消息消费拆包消费,从而降低消息队列中的消息数量。
2,设置相应的q值,timeout值,xmitq值要设置大些。
10,有一张很大的银行卡表,因账务操作,使用频繁,并发量大,导数数据库压力增大,如何处理?
使用缓存(应用缓存,数据库缓存),或表拆分
11,Oracle表分区的好处?
通过对表进行分区,可以获得以下的好处:
-
增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;
-
维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;
-
均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;
-
改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度
12,数据库表拆分(一主多从到多主多从)
两个维度:
垂直拆分:是指按功能模块拆分,比如可以将群组相关表和照片相关表存放在不同的数据库中,这种方式多个数据库之间的表结构不同。
水平拆分:而水平拆分是将同一个表的数据进行分块保存到不同的数据库中,这些数据库中的表结构完全相同。
13,线程间通信(数据传递或共享)?
- 注入回调接口;静态回调...
- 全局变量
- 系统环境变量,
- 虚拟机环境变量
- 文件形式
- 表状态
- JMS,MQ
- 管道流