摘要:
1. 什么是架构 2. 代码审查:协作为先(同事之间互帮互助)、不要自作聪明(同事帮助及时发现问题)、增加代码可读性、提高认知能力(通过对别人代码的学习) 3. 持续部署:减轻恐惧、降低风险(每次只部署小部分)、积累经验、增进信心 阅读全文
摘要:
简单的乐观锁实现 更新的时候给版本号字段加上 1,然后 UPDATE 会返回一个更新结果的行数,通过这个行数去判断。UPDATE 必须这样写: 如果更新执行返回的数量是 0 表示产生并发修改了,需要重新获得最新的数据后再进行更新操作。Hibernate、JPA 等 ORM 框架或者实现,是使用版本号 阅读全文
摘要:
本文转自:http://www.cnblogs.com/zhouqianhua/archive/2011/04/15/2017049.html 数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代 阅读全文
摘要:
文章转自:http://www.linuxidc.com/Linux/2013-02/79664.htm 1.JMS消息确认机制 JMS消息只有在被确认之后,才认为已经被成功地消费了。消息的成功消费通常包含三个阶段:客户接收消息、客户处理消息和消息被确认。在事务性会话中,当一个事务被提交的时候, 阅读全文
摘要:
本文转自:http://www.cnblogs.com/edisonfeng/p/3571870.html 2、主要类 1)功能类 package com.redis; import java.util.ArrayList; import java.util.Iterator; import jav 阅读全文
摘要:
1. 大型网站架构演化发展历程 1). 初始阶段的网站架构:汇集各种免费开源软件及一台廉价服务器 2). 应用服务和数据服务分离: a. 应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU b. 数据库服务器需要更快速磁盘检索和数据缓存,因此需要更快的磁盘和更大的内存 c. 文件服务器需要 阅读全文
摘要:
MySql优化: InnoDB在大多数情况下如果如果要运行得很好,配置大小合适的缓冲池(Buffer Pool)和日志文件(Log File)是必须的,默认值都太小了。其他的所有InnoDB设置都是可选的。 1. 缓冲池:我们建议,当配置内存缓存区的时候,宁可谨慎,而不是把它们配置的过大。如果把缓冲 阅读全文
摘要:
1. 内存分布: 1). 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。线程私有。如果线程正在执行的是一个Java方法,这个计数器记录的是 正在执行的虚拟机字节码指令的地址;如果正在执行的是Natvie方法, 阅读全文
摘要:
1. 常用并发类: util.concurrent中容器在迭代时,可以不封装在synchronized中,可以保证不抛异常,但是未必每次看到的都是"最新的、当前的"数据。 1). ConcurrentHashMap代替同步的Map(Collections.synchronized(new HashM 阅读全文
摘要:
1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。 2). AOP编程的支持 通过Spring提供的AOP功能,方便进行 阅读全文