摘要:
1, 尽可能地使用异步通信.2, 为提供不同服务的硬件引入故障隔离.3, 在多层系统中, 使用Cache.4, 从用户角度监控你的系统性能.5, 使用数据库复制, 降低单点读压力.6, 根据用户和业务的不同, 将应用或数据库分片.7, 减少使用关系型数据库的复杂特性. 尽可能把它当做是一个持久存储设备.8, 以循序渐进的方式升级系统, 先升级小部分servers, 然后逐步升级所有servers.9, 在一个应用进入生产环境前, 一定要做性能和负载测试.10, 设计系统时, 应该要做容量规划与扩容方案.11, 使系统具备回滚能力.12, 确保团队具备根本问题分析能力.这样, 当出现问题时, 才 阅读全文
posted @ 2011-06-10 22:36
ajian005
阅读(151)
评论(0)
推荐(0)
摘要:
Java的内存模型中Thread会附有自己的堆栈,寄存器,必要时需要和主存即heap之间同步。可以使用Synchornized关键字和Concurrent包中的Lock可以保证线程互斥和可见性。互斥性体现在类锁或者对象锁上,每个对象自身都包含一个监视器,该监视器是一个每次只能被一个线程所获取进入的临界区,可以通过wait和notify来退出和准入临界区。可以看出这是一个生产者-消费者的模型。而Concurrent包中的Lock为了能够获得更好的性能和更好的扩展性,以及不依赖于关键字的可读代码,自己实现了这样一个生产消费队列,也就是AbstractQueuedSynchronizer,被称为AQ 阅读全文
posted @ 2011-06-10 17:13
ajian005
阅读(186)
评论(0)
推荐(0)

浙公网安备 33010602011771号