转载大牛的文章,写得非常棒。简单改了一下里面的小错误(实战的第5项有误),增加一些自己心得。
转载地址:http://blog.chinaunix.net/uid-20639775-id-3254611.html

正文部分如下

MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要,新手往往在出现主从同步错误的时候不知道如何入手,这篇文章就是根据自己的经验来详细叙述mysql主从的管理。
MYSQL主从同步的作用
(1) 数据分布
(2) 负载平衡(load balancing)
(3) 备份
(4) 高可用性(high availability)和容错

- 阅读剩余部分 -

总的分为两步:
1、在aws后台上创建新的volume,然后右键attach到一个ec2上。
2、登录到ec2上格式化并挂载。
第一步很容易,界面操作。第二步需要一些命令操作,简述如下
查看当前磁盘情况
[code]
fdisk -l
[/code]
会发现多出来一个
[code]
Disk /dev/sdf: 536.8 GB, 536870912000 bytes
[/code]

- 阅读剩余部分 -

一、可见性
1、失效数据:数据未设置同步时,修改数据的线程有可能没把数据回写到内存,或读线程的缓存数据未从内存中同步。重排序也会导致失效数据。
2、非原子的64位操作:非volatile的64位变量(long或double),写操作会分为两个32位的操作,故有可能读到被修改一半的数据,即仅有高位或低位被修改的值。
3、加锁与可见性:多个线程在同一个同步块中看到的同一个数据,都是有效的,即可以保证它们的内存可见性。
4、Volatile变量:不重排序,只确保可见性。且写入和回写作为原子操作,读取和加载也做为原子操作。
二、发布与逸出:通过方法的return或共享变量发布数据;要防止构造时的this逸出(运行时问题:未构造完成,却被调用)。
三、线程封闭:共享数据仅在单个线程内部访问。Swing的强制封闭,JDBC的池化应用级封闭。
1、Ad-hoc线程封闭:由程序实现的线程封闭,叫做Ad-hoc。
2、栈封闭:方法的局部变量是栈封闭的,要防止栈封闭的对象逸出。
3、ThreadLocal类:方便的进行线程内传参,或共享线程数据。有隐含的耦合性,给后续改造留坑。

- 阅读剩余部分 -

先说一下概念

四舍六入五成双

对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是“四舍六入五成双”,也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,"六"是指≥6时进上,"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。(0是偶数)

- 阅读剩余部分 -

一、什么是线程安全性:某个类的行为与其规范完全一致。这个定义略有偷懒的感觉。无状态对象一定是线程安全的。
二、原子性
1、竞态条件:先检查后执行。
2、示例:延迟初始化中的竞态条件。典型的double check的例子,不用多说。
3、复合操作:先检查后执行和读取-修改-写入这类操作都是复合操作,需是原子的才能保障它是线程安全的。

- 阅读剩余部分 -

一、并发简历,原因有三点:
1、资源利用率。
2、公平性。
3、便利性:多任务用多个程序并发,比一个程序完成多个任务,实现起来容易。略觉牵强。
二、线程的优势
1、发挥多处理器的能力。
2、建模的简单性:同一、3。任务各自独立。
3、异步事件的简化处理。
4、响应更灵敏的用户界面。

- 阅读剩余部分 -