- 浏览: 9088 次
- 性别:
- 来自: 北京
最新评论
文章列表
多IDC的数据分布设计(一)
- 博客分类:
- 事务
转自:http://timyang.net/distributed/multi-idc-consensus/
一、Master/slave
这个是多机房数据访问最常用的方案,一般的需求用此方案即可。因此大家也经常提到“premature optimization is the root of all evil”。优点:利用mysql replication即可实现,成熟稳定。缺点:写操作存在单点故障,master坏掉之后slave不能写。另外slave的延迟也是个困扰人的小问题。
二、Multi-master
Multi-master指一个系统存在多个master, 每个master都 ...
转自:http://www.jb51.net/article/50103.htm
问题背景:
假设MySQL数据库有一张会员表vip_member(InnoDB表),结构如下:
当一个会员想
JVM学习笔记九 之 GC(对象的生命周期系列)
- 博客分类:
- jdk
转自:http://yueyemaitian.iteye.com/blog/1185301
一、概述
Java最大的一个特点就是不用开发人员手动释放对象的内存,这些任务就交给了jvm来做。垃圾收集器有很多分类,如按照并行(ParNew、Parallel Scavenage、Parallel Old、CMS并发标记阶段、g1)、并发(cms并发标记和并发清理阶段、g2)和串行(Serial、Serial Old/PS Mark-Sweep),按照算法分引用计数和跟踪算法,按照性能指标比如吞吐量(Parallel Scavenge、Parallel Old)、低停顿(CMS)、增量式(G1)。 ...
Tomcat的性能与最大并发(1000)
- 博客分类:
- tomcat
转自:http://blog.chinaunix.net/uid-7374279-id-4470247.html
当一个进程有 500 个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加重 GC 的负担。操作系统对于进程中的线程数有一定的限制:Windows 每个进程中的线程数不允许超过 2000Linux 每个进程中的线程数不 ...
构建
这里搜集了用来构建应用程序的工具。
Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。
Gradle:Gradle采用增量构建。Gradle通过Groovy编程而不是传统的XML声明进行配置。Gradle可以很好地配合Maven进行依赖管理,并且把Ant脚本当作头等公民。
字节码操作
编程操作Java字节码的函数库。
ASM:通用底层字节码操作及分析。
转自:http://jameswxx.iteye.com/blog/731763
业界有很多强大的java profile的工具,比如Jporfiler,yourkit,这些收费的东西我就不想说了,想说的是,其实java自己就提供了很多内存监控的小工具,下面列举的工具只是一小部分,仔细研究下jdk的工具,还是蛮有意思的呢:)
1:gc日志输出
在jvm启动参数中加入 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimestamps -XX:+PrintGCApplicationStopedTime,jvm将会按照 ...
本文转载自:http://wsjiang.iteye.com/blog/2095561
最近要在产品中改进对象的序列化了。以前用的是java默认序列化实现功能,在产品上线之前要对关键的对象进行序列化/反序列化优化,以期改善存储效率。这里选取了Protocol buffer作为最终的方案,原因主要有以下几个方面:
1、java默认序列化效率较低。
2、apache的thrift方案并无明显优势,但是使用成本较高,安装等较为麻烦。
3、虽然PB不支持map,但是我们的应用中map用的较少,即使使用了存储的数据量也较少,可以转化为l ...
如果需要从一个数据库服务器访问另外一个数据库服务器的表或视图时,可以通过 DBLink 的方法,实现基本等同于本机访问的效果,如下:
SELECT * FROM A@DBLINK_B ;
创建DBLink的方法有以下两种:
第一、已经在需要访问的服务器上 ...