服务读写分离(读服务,写服务),是否可行?

开发 开发工具
大家都知道,数据库可以读写分离,为了职责更清新,架构设计上,服务能否读写分离呢?

系统分层架构有一个迭代和演进的过程,早期,系统分层架构如下:

系统分层架构

  • 上游是需要数据的业务调用方
  • 下游是存储数据的数据库

随着架构的演进,可能要抽取出服务层(详见《互联网架构为什么要做服务化?》):

  • 上游通过RPC调用服务获取数据
  • 中间服务层从数据库获取数据
  • 下游是存储数据的数据库

大家都知道,数据库可以读写分离,为了职责更清新,架构设计上,服务能否读写分离呢?

服务化读写分离

如上图,服务化读写分离之后:

  • 业务方通过RPC分别调用读服务和写服务
  • 服务层分为读服务与写服务
  • 底层是高可用的数据库集群

读服务与写服务读写的是不同的数据库

当然,也有可能读服务与写服务读写的是不同的数据库,如上图:

  • 写服务访问写库
  • 读服务访问读库

写库与读库是一个主从同步的集群。

那么,问题来了:

  • 你遇到过这种架构设计么?
  • 这种架构设计好还是不好,为什么?
  • 如果服务读写分离设计好,上面两种方案哪种好?

【本文为51CTO专栏作者“58沈剑”原创稿件,转载请联系原作者】

戳这里,看该作者更多好文

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2021-06-28 09:36:05

系统分层架构微服务架构

2018-01-01 05:23:13

服务化读写分离架构

2022-08-16 08:50:40

微服务动态读写分离

2019-09-17 11:18:09

SQLMySQLJava

2021-03-08 08:16:42

MySQL分离架构

2019-09-25 11:48:08

MySQL数据库Java

2016-01-05 16:08:40

青云QingCloud

2009-11-05 10:45:58

WCF服务

2016-01-06 09:44:08

青云QingCloud数据库服务升级

2013-05-21 09:21:59

云存储服务云备份云计算存储服务

2014-05-19 15:59:35

2013-06-05 09:22:51

网络服务NaaS

2013-05-23 10:12:00

云存储服务云计算

2022-01-20 11:01:33

勒索软件即服务RaaS网络犯罪

2020-08-18 07:00:00

微服务开发架构

2019-12-11 08:00:02

无服务器备份数据

2009-02-20 14:54:16

服务器虚拟化VoIP

2012-04-16 10:46:56

2017-10-21 22:47:46

服务化业务层分层架构

2022-03-31 08:15:38

微服务服务拆分架构
点赞
收藏

51CTO技术栈公众号