- 浏览: 159213 次
- 性别:
- 来自: 北京
最新评论
-
西巴拉古呀那:
Linux多线程并发服务器编程(线程池,FTP服务器)网盘地址 ...
多线程服务器的适用场合 -
somefuture:
第四题怎麼用位图法。写了半天没出来,用了下面的,速度很快pri ...
位图法应用 -
寂寞秋江:
系统,全面,条理清晰,由浅入深,简直是集大成之作。 特别是最后 ...
单个进程最大线程数 -
darkjune:
有点意思, 不错
单个进程最大线程数 -
kidding87:
谢谢啦,收藏着
google使用一点敲门分享
文章列表
1.1方案简介
Lvs+keepalived作为目前比较流行的高可用解决方案,lvs提供负载均衡,keepalived作为故障转移,提高系统的可用性。但是一般的mysql高可用为了实现mysql数据的一致性,一般都是采用单点写入,本方案采用keepalived中的sorry_server来实现写入数据库为单点的需求。本方案实现的功能是当网络有问题、mysql有问题、服务器宕机、keepalived服务停止后,服务器能自动跳转到备用机,当主服务器服务启动起来后会自动切换回来。
1.2方案架构图
1.3方案优缺点
优点:
ü安装配置简单,实现方便,高可用效率好,可以根据服务与系统的可 ...
1.1方案简介
Lvs+keepalived作为目前比较流行的高可用解决方案,lvs提供负载均衡,keepalived作为故障转移,提高系统的可用性。但是一般的mysql高可用为了实现mysql数据的一致性,一般都是采用单点写入,本方案采用keepalived中的sorr ...
MMM高可用mysql方案
- 博客分类:
- 软负载
1.1方案简介
MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置 ...
主要介绍编写不变类的主意事项:
归纳一下设计不变类的 5 条规则:
1. 不提供任何修改对象的方法。
2. 保证没有任何一个方法会被覆盖。
3. 所有的域都是 final 的。
4. 所有的域都是 private 的。
5. 如果不变类内部包括可变的子对象,保证它绝对不会被其他代码获取引用。
实例:
/** * @author Peter Wei * */public class User {
private String name;
public String getName() { return name; }
public void setNam ...
数据库Sharding的基本思想和切分策略
- 博客分类:
- mysql
关于Mysql Sharding的基本思想和切分策略
一、基本思想
Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果 ...
切分演示1
第一部分:实施策略
图1.数据库分库分表(sharding)实施策略图解(点击查看大图)
1.准备阶段对数据库进行分库分表(Sharding化)前,需要开发人员充分了解系统业务逻辑和数据库schema.一个好的建议是绘制一 ...
实例2
第一部分:一些常见的主键生成策略
一旦数据库被切分到多个物理结点上,我们将不能再依赖数据库自身的主键生成机制。一方面,某个分区数据库自生成的ID无法保证在全局上是唯一的;另一方面,应用程序在插入数据之前需要先获得ID,以便进行SQL路由。目前几种可行的主键生成策略有:1. UUID:使用UUID作主键是最简单的方案,但是缺点也是非常明显的。由于UUID非常的长,除占用大量存储空间外,最主要的问题是在索引上,在建立索引和基于索引进行查询时都存在性能问题。2. 结合数据库维护一个Sequence表:此方案的思路也很简单,在数据库中建立一个Sequence表,表的结构类 ...
一、sharding逻辑的实现层面
从一个系统的程序架构层面来看,sharding逻辑可以在DAO层、JDBC API层、介于DAO与JDBC之间的Spring数据访问封装层(各种spring的template)以及介于应用服务器与数据库之间的sharding代理服务器四个层面上 ...
分布式事务这是最为人们所熟知的多数据源事务处理机制。本文并不打算对分布式事务做过多介绍,读者可参考此文:关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究 。在这里只想对分布式 ...
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!
作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段。简单地说,Sharding就是将原来单一数据库按照一定的规则进行切分,把数据分散到多台物理机(我们称之为Shard)上存储,从而突破单机限制,使系统能以Scale-Out的方式应对不 ...
关于垂直切分的粒度
垂直切分的粒度指的是在做垂直切分时允许几级的关联表放在一个shard里.这个问题对应用程序和sharding实现有着很大的影响.
关联打断地越多,则受影响的join操作越多,应用程序为此做出的妥协就越大,但单表的路由会越简单,与业务的关联性会越小,就越容易使用统一机制处理.在此方向上的极端方案是:打断所有连接,每张表都配有路由规则,可以使用统一机制或框架自动处理.比如amoeba这样的框架,它的路由能且仅能通过SQL的特征(比如某个表的id)进行路由.
反之,若关联打断地越少,则join操作的受到的限制就小,应用程序需要做出的妥协就越小,但是表的路由 ...
jetty_classloader
- 博客分类:
- server
1.现象
在从jboss迁移到jetty后,有一个应用页面报了如下异常:
1
2
3
4
5
6
net.sf.json.JSONException: java.lang.ClassCastException: com.ali.martini.biz.marketing.time.Parser$PeriodType cannot be cast to java.lang.String
at com.ali.martini.web.marketing.SendTimeDtoUtil$1.setProperty(SendTimeDtoUtil.java:2 ...
jetty_webappcontext
- 博客分类:
- server
1.概述
jetty的web工程主要完成servlet中context的管理,war包中web.xml中文件等的解析和加载,类加载器等一些功能。
2. 类图和解释
webAppContext是中心,其中包括classloader,configuration和metadata三个主要的内容,classloadee后面再说,configuration主要是对一些配置的应用,比如调用加载器加载jar包,根据web.xml中的配置初始化servlet等等。metadata主要是元数据的定义和处理,展开类图如下:
其中descriptor主要完成xml文件的解析,这里包括we ...
ANTLR笔记5 - 备忘
- 博客分类:
- antlr 笔记
1. 对语法框架结构的整体构思 一方面为了避免过多因素的干扰,另一方面考虑迭代完善过程,在对语法的整体构思时不要考虑语法树的结构,以及如何构造语法树的问题。2. 采用自底向上的方法 因为这样可以结合ANTLRWorks ...
目前为止使用的例子中,都是直接在语法文件中嵌入求值处理代码,这种方式ANTLR称为嵌入式动作(embeded action)。复杂情况下,需要基于语法树遍历(walking the tree)生成目标代码。embeded action将处理代码跟语法描述混合起来,语法复杂时使语法文件臃肿。另外语法可能经常需要修改,但语法的主要表达式不会变动,将语法识别与转换、生成(目标代码)等处理分离是有好处的。所以产生以下概念:识别(recognize): 前面讲的由语法描述文件生成的词法分析器、语法分析器代码,就是语法识别器(recognizer)。它接受原始输入字符流(类似源代码),进行分析,得到抽象语 ...