`
文章列表
  前言:   相对于传统行业的相对服务时间9x9x6或者9x12x5,因为互联网电子商务以及互联网游戏的实时性,所以服务要求7*24小时,业务架构不管是应用还是数据库,都需要容灾互备,在mysql的体系中,最好通过在最开始阶段的数据库架构阶段来实现容灾系统。所以这里从业务宏观角度阐述下mysql架构的方方面面。   一:MySQL架构设计—业务分析   (1)读多写少   虚线表示跨机房部署,比如电子商务系统,一个Master既有读也有些写,对读数据一致性需要比较重要的,读要放在Master上面。   M(R)仅仅是一个备库,只有M(WR)挂了之后,才会切换到M(R)上 ...
看了一堆文章,终于把JAVA CAS的原理深入分析清楚了。 感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到!   参考文档: http://www.blogjava.net/xylz/archive/2010/07/04/325206.html http://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference.html http://www.searchsoa.com.cn/showcontent_69238.htm http://ifeve.com/atomic-operatio ...
今天在看Thinking in java时发现这样一行代码: File file = new File("."); 起初十分纳闷,不懂这个“.”代表什么意思。 后来经过一番实验返现: “.”知识代表当前工作目录的意思,它是一个相对路径的写法,一般也就是jvm调用路径,可以通过 System.getProperty("user.dir") 得到。 如果这样写: File file = new File(".."); 则表示得到user.dir的上层目录。 最后总结如下: “.”当前的工作目录,即u ...
搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境 才能让我们少走很多弯路。持续集成(Continuous integration)简称CI,是一种 软件开发的实践,可以让团队在持续集成的基础上收到反馈并加以改进 ...
转自:http://en.wikipedia.org/wiki/Jenkins_(software) Jenkins is an open source continuous integration tool written in Java. The project was forked from Hudson after a dispute with Oracle, which claims the right to trademark the Hudson name and has applied for such a trademark as of December 2010. ...
   想起我刚毕业后,进入一家以软件外包为主的外企做开发。它使用传统的瀑布式的软件开发流程,没有使用任何的敏捷实践。我每天上班打开电脑,拿到自己的任 务,然后从版本控制更新代码,打开工程按下Build,准备进行 ...
1、 为什么使用Nexus         如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么 办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程, 当然前提条件就是你的私服中拥有项目所需的所有构件。   2、Nexus下载        下载地址:http ...
为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。 1.首先确定我们的环境安装好maven,jdk等必须的环境 2.这些都准备好之后,去下载最新版本的nexus    下载地址:http://www.sonatype.org/nexus/go      我本地安装的是 nexus-2.2-01-bundle,最新的版本是nexus-2.4.0-09 ...
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。   以下是本文目录大纲:   一.CountDownLatch用法   二.CyclicBarrier用法   三.Semaphore用法   若有不正之处请多多谅解,并欢迎批评指正。   请尊重作者劳动成果,转载请标明原文链接:   http://www.cnblogs.com/dolphin0520/p/3920397.html    一.CountDownLatch用法    ...
文章来自:http://blog.sina.com.cn/s/blog_9762b74e010135vv.html   学习或者使用OpenStack普遍有这样的现象:50%的时间花费在了网络部分;30%的时间花费在了存储方面;20%的时间花费在了计算方面。OpenStack网络是不得不逾越的鸿沟,接下来我们一起尝试努力穿越这个沟壑吧……J 主要参考: RDO官网对GRE网络的分析: http://openstack.redhat.com/Networking_in_too_much_detail OpenStack网络出错处理的一般步骤: http://docs.openst ...

VXLAN学习整理

文章来自:http://blog.sina.com.cn/s/blog_6de3aa8a0101oisp.html 参考: http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-08 http://events.linuxfoundation.org/sites/events/files/slides/2013-linuxcon.pdf http://www.borgcube.com/blogs/2011/11/vxlan-primer-part-1/ http://blog.csdn.net/freezgw1985 ...
文章转自:http://www.aboutyun.com/thread-9666-1-1.html   什么是叠加网络1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装。2.叠加网络就是使用这种所谓“包内之包”的技术安全地将一个网络隐藏在另一 ...
Java的安装包自带了很多优秀的工具,善用这些工具对于监控和调试Java程序非常有帮助。常用工具如下: jps  用途:jps用来查看JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。 常用参数: -l: 输出完成的包名称; -m: 输出程序的命令行输入参数; -v: 输出完整的JVM参数。 jstack  用途:1)查看java程序崩溃生成core文件,获得core文件
1、Java虚拟机运行时的数据区 2、常用的内存区域调节参数 -Xms:初始堆大小,默认为物理内存的1/64(<1GB);默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制 -Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制 -Xmn:新生代的内存空间大小,注意:此处的大小是(eden+ 2 survivor space)。与jmap -heap中显示的New gen是不同的。整个堆大小=新生代大小 + 老生代大小 + 永久代大 ...

RMI 相关知识

文章转自:http://www.blogjava.net/zhenyu33154/articles/320245.html   RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解 ...
Global site tag (gtag.js) - Google Analytics