1、 应该尽量减小service事务代码块的大小,在事务中对记录进行修改时,会对相应表加锁,如:A事务对table1 和table2表的记录进行修改,那么B事务再对table1 和table2表的记录进行修改时会等A事务commit以后才能获得table1和table2的锁,这样事务太长并发量大的时候系统就会变慢
2、 事务里对表的更新操作应该按一定顺序,如果顺序不同则可能会出现数据库表死锁的情况,如:A事务先对两张表的修改顺序是table1、table2,而B事务对两张表的修改顺序是table2、table1,这样并发执行的时候就会出现死锁情况
3、 程序里指定事务隔离级别,默认是数据库的隔离级别,mysql是行级锁,sql server是表级锁,如果是sql server则需要开启快照模式
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="find*" read-only="true" />
<tx:method name="load*" read-only="true" />
<tx:method name="sum*" read-only="true" />
<tx:method name="count*" read-only="true" />
<tx:method name="auto*" read-only="true" />
<tx:method name="*" isolation="READ_COMMITTED" timeout="60000"/>
</tx:attributes>
</tx:advice>
4、 开启hibernate二级缓存(建议使用EHcache),这样大大提高效率
<prop key="hibernate.cache.use_query_cache">
${hibernate.cache.use_query_cache}
</prop>
<prop key="hibernate.cache.provider_class">
${hibernate.cache.provider_class}
</prop>
hibernate.cache.use_query_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
dao中查询前使用getHibernateTemplate().setCacheQueries(true);
5、 如果有系统出现内存溢出没有规律的现象,则应该考虑常用模块是否有程序中有遍历集合循环查询数据库的问题,排除这种情况后就只能在配置上下手了,以jboss4.2.3为例说明
set JAVA_OPTS=-server –Xms512m -Xmx512m-XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelGC-XX:+UseParallelOldGC
详细参数说明大家可以在网上自己查找,这里需要指出的是JVM有一个最大内存限制,网上说这个限制一般是 2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),有说64位操作系统没这个限制的,但本人在64位的widows2008上验证,同样有这个限制
程序问题往往是造成内存溢出的主要原因,大家一定要注意自己代码的质量
6、 使用集群,web应用服务器集群(可以使用apahce+modjk+tomcat/jboss或者linux下使用LVS+Keepalived),数据库如果使用sql server可以使用2008版本自带的集群,如果是mysql建议使用双机热备来增强安全性
最终架构:
内容来源于 小红提技术博客,http://www.xiaohongti.com/ 转载请保留地址,尊重版权。
相关推荐
4. **注意事项** - 在实际使用中,应确保有足够的权限连接目标服务器,并遵守相关的法律法规。 - 可能需要根据具体情况进行IP地址、用户名和密码等参数的修改。 #### PyInstaller制作exe程序 PyInstaller是一个...
6. **注意事项**:二级缓存虽然能提升性能,但也可能带来数据一致性问题。在并发环境下,如果多个线程同时修改同一数据,可能导致脏读。因此,需谨慎评估和配置缓存策略,避免对事务性和一致性要求较高的操作使用...
8. **Linux环境注意事项**:注意内存限制、网络带宽、系统负载,确保测试环境的真实性和一致性。 **第3章 关于服务程序性能相关的问题** 1. **内存分配与释放**:使用Java的JVisualVM或MAT工具监控内存分配,检查...
44. **描述一次你解决SSH框架中的性能瓶颈的经历** 性能瓶颈可能出现在多个层面,如数据库查询效率低下、缓存命中率不足等。解决这些问题通常需要通过性能分析工具找出瓶颈所在,并针对性地优化。 45. **如何在...
6. **高性能调度**:使用高效的调度算法,如动态加权轮询,以优化资源分配,提高吞吐量。 7. **连接控制**:具备连接拒绝功能,有效防止DDoS攻击和其他恶意连接。 8. **模块化设计**:HAProxy采用模块化结构,易于...
- **性能优化**:虽然SSH框架本身已经具备较好的性能,但在高并发场景下仍需进行适当的优化措施,比如合理设置缓存策略、优化数据库查询等。 综上所述,SSH框架作为一种经典的Java Web开发模式,在实际项目开发中...
2. 性能优化:新版本对协议处理进行了优化,提高了连接速度和响应时间,尤其在高并发场景下表现更为出色。 3. 新功能引入:支持SSH代理扩展,允许客户端通过一个代理连接到多个服务器,提高了运维效率。 4. 错误...
3.3.6 mysql故障切换之事件调度器注意事项 95 3.3.7 人工误删除innodb ibdata数据文件,如何恢复 97 3.3.8 update忘加where条件误操作恢复(模拟oracle闪回功能) 99 3.3.9 delete忘加where条件误操作恢复(模拟...
- **注意事项**: - 确保所有依赖库路径都已正确配置。 - 检查编译器版本是否满足最低要求。 - 对于Linux环境下的编译,请使用FPC编译器进行。 #### 七、总结 本文档详细介绍了zServer4D的编译步骤及相关知识点...
### RAC Oracle 架构与部署详解 #### 一、RAC Oracle 概述 ...对于需要高并发、高性能的企业级应用来说,RAC Oracle是一种非常理想的解决方案。在实际部署过程中,还需要结合具体业务需求和技术细节进行调整和完善。
**注意事项**: - 配置合适的连接池参数是关键,过大可能导致资源浪费,过小可能无法满足高并发需求。 - 必须正确关闭应用程序,以确保连接池关闭,释放所有资源。 - 定期检查和更新C3P0版本,以获取最新的性能优化...
#### 九、注意事项 - 使用nmap进行扫描时需遵守当地法律法规,未经授权扫描他人网络属于非法行为。 - 在进行大规模扫描时应避免对目标网络造成过大负担。 - 适当调整扫描参数,平衡扫描速度与准确性。 #### 十、...
其低成本、高性能的特点使其成为理想的数据库选择。MySQL的易用性和高效查询能力有助于提高系统的响应速度和数据处理能力。 3. **SSH框架** SSH是Struts、Spring和Hibernate三个开源框架的组合,用于构建企业级的...
- **高性能**:MongoDB设计时考虑了大数据和高并发场景,能够提供良好的读写性能。 - **灵活的数据模型**:文档结构允许动态字段,适应快速变化的数据需求。 - **分布式特性**:适合云环境和分布式系统,易于扩展...
5. **集群安装配置最佳实践**:涵盖了部署方案、硬件选型、硬件配置、存储规划以及集群配置的详细步骤和注意事项。 ### Greenplum数据库常用知识 2.1 **Greenplum相关概念**: - **整体介绍**:对Greenplum数据库...
4. **高性能**:FileZilla Server设计时考虑了性能优化,能够处理大量并发连接,适合高流量网站的需求。 5. **可配置性**:允许管理员自定义各种设置,如限制上传/下载速度、设置特定端口、控制会话时间等。 6. **...
- **门户网站nginx高并发性能调优精要**:针对Nginx的性能调优策略。 - **从0开始一步步实战深入学习linux运维(一)**:适合运维新手的学习路径。 - **企业级数据同步软件rsync深度实战第一部分**:Rsync是一款非常...
10. **面试技巧**:如何清晰地表达思路,如何回答问题,如何展示自己的项目经验,以及电话面试的注意事项等。 以上只是部分可能的面试知识点,实际面试可能还会涉及网络协议、数据库设计、微服务、分布式系统、性能...
- **注意事项**:双机配置前需考虑的事项。 - **双机设置**:实现主备切换,确保服务高可用。 - **双机状态监控设置**:监测双机运行状态,及时发现异常情况。 - **双机状态检查和配置同步**:确保主备机之间配置的...
MongoDB 是一个高性能、开源、无模式的分布式文档数据库,被广泛用于开发现代应用程序,特别是那些需要处理大量数据和高并发场景的应用。在本案例中,我们关注的是 MongoDB 4.0.5 版本的集群搭建过程,该版本引入了...