微服务架构和实践Java开发周更分布式架构

分布式概念思考

2018-09-01  本文已影响3人  昙花未现

多台机器上的多个系统合作就是分布式系统。

完成相同任务的系统被部署在一台或者多台机器上组成集群。

分布式的目的是为了高并发,高可用,可以更好的地利用资源。

高并发靠水平扩展,异步解耦,消息堆积,缓存。

高可用靠冗余备份,自动故障转移。

数据库层面的高可用与高并发有以下要点:

1. 读写分离,常用一主多从,主库用于写数据,从库用于读数据,主从同步保证数据一致性。这种设计提高了数据库读数据的性能以及读库的高可用。写库依然是单点。

2. 写库冗余,双主库多从库设计,双主库进行双向同步,双主库会因为主键ID自增出现数据库数据不一致,可以自增时设置不同初始值,相同步长。也可以在业务层使用分布式ID的方案,用改ID作为数据库主键。另外一种双主的做法,双主库一个写,一个做冗余,实现高可用,策略是使用keepalived和虚IP漂移,会出现数据不一致。内网DNS探测,延时切换可以保证数据一致性。

3. 分库分表,数据库水平拆分。

分布式系统需要考虑数据一致性。

上一篇下一篇

猜你喜欢

热点阅读