请教一下各位大佬,微服务下的读写分离有什么好的方式吗?
比较常见的方案是程序中配置多数据源,使用中间件或代码逻辑切换数据源。
有没有见过这种设计:没有配置多数据源,而是从服务层面就做了分离。
比如有一个订单服务 order, 把 order 拆成了 order-query 和 order-update 两个服务,一个请求进来的时候,在网关根据 http 的请求方式做转发,**GET** 就转发到 query 服务,其他就转发到 update 服务。如果在 update 中也需要进行读操作,则是使用服务间调用的方式向 query 服务查询。
大概就是这样,**order** 的数据库做的是一主两从,把 order 服务需要查询的操作单独剥离出来,每个服务肯定都是要做高可用的嘛,于是就成了这个样子: