V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

请问有什么数据库中间件,可以将两个物理数据库统合成一个逻辑数据库吗?

  •  
  •   LeeReamond · 2021-03-23 08:16:33 +08:00 · 1957 次点击
    这是一个创建于 1346 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:提高负载能力,由于表比较大,单表查询命令经过优化后延迟在 200 毫秒左右,已经很难再进一步优化,多线程下负载能力明显降低,同时能处理的并发数只有几十个。在网上调研了一下 oracle 的各类高可用集群方案,感觉面对这种场景都不太行,不能有效增加负载能力。

    由于这部分业务只涉及大量读取,对一致性要求不高,感觉搞两个实例同时处理,一下子处理能力不就能翻倍了吗?于是想到一个办法,是有没有办法产生一种中间服务,比如绑定到 IP 10.0.2.22 ,然后由这个中间服务分别连接到若干个(个位数)的独立数据库节点,每次产生写入或者删除都自动在所有节点之间广播这种操作,搜索时候实现均衡负载?

    infun
        1
    infun  
       2021-03-23 08:18:07 +08:00 via Android
    Redis+分片?
    pisc
        2
    pisc  
       2021-03-23 08:25:12 +08:00 via Android
    随便一个成熟的分布式数据库都能满足你的需求
    soberYang
        3
    soberYang  
       2021-03-23 08:28:22 +08:00 via iPhone
    直接操作多数据源,负载策略如果不需要通用的,就业务上轮询操作多个数据源。
    pisc
        4
    pisc  
       2021-03-23 08:28:57 +08:00 via Android
    补充:指的是 new SQL 这种模型的分布式数据库,甚至如果查询不复杂的话,普通的分片中间件也是可以的,随便找个开源成熟的就行,舍得花钱的话,随便找个云服务商都有这种服务卖的
    sykmile
        5
    sykmile  
       2021-03-23 08:33:57 +08:00 via iPhone
    配合项目代码实现的话 sharding jdbc 可以满足你的要求
    jacksparrow414
        6
    jacksparrow414  
       2021-03-23 08:40:50 +08:00   ❤️ 1
    shanding jdbc 或者 sharding proxy
    stardustree
        7
    stardustree  
       2021-03-23 09:05:09 +08:00
    只读嘛,随便搞个 proxy 就好了么,haproxy 欢迎你
    lostvincent
        8
    lostvincent  
       2021-03-23 09:10:06 +08:00
    就你的描述来说,想上中间件,但是做法又像主从,不知道你实际想要什么
    就需求来说,读多写少,一致性要求还不高,那么
    1. 就你说的那种做法,更像主从那套,主写从读,看业务自己估计几台从,配好了自动同步
    优:简单方便,效果还行
    缺:单表还是很大,增长快的话容易继续瓶颈

    2. 分表分库,然后就你说的用中间件
    优:后续扩展性好
    缺:需要处理下现有数据,相对比较麻烦,视情况可能还需要修改业务代码

    中间件的话,你看看 https://github.com/flike/kingshard 这类是不是你需要的
    zw1one
        9
    zw1one  
       2021-03-23 09:10:56 +08:00
    为啥说 oracle 的集群方案不能有效增加负载能力?
    一般你这个需求的处理思路都是数据库集群、分表分库、读写分离这些吧
    wakzz
        10
    wakzz  
       2021-03-23 09:14:52 +08:00
    sharding proxy
    buchikoma
        11
    buchikoma  
       2021-03-23 11:51:09 +08:00
    参考下云厂商的金融版数据库,一主一从一只读
    LeeReamond
        12
    LeeReamond  
    OP
       2021-03-23 13:38:38 +08:00 via Android
    @zw1one 分表拆不太开,子表方案测试过,拆了一万多张,性能反而下降很严重,目前用的表内分区的方案。orcl 的集群我不是很了解,网上资料没有 mysql 这么多,我查到 rac 集群的方案,感觉多实例读一块共享存储,不如多实例。还有一种方案也许是同表内多分区存在不同实例里,但我不会配,似乎也没有类似的方案
    LeeReamond
        13
    LeeReamond  
    OP
       2021-03-23 13:40:16 +08:00 via Android
    @lostvincent 感谢回复,我考虑了一下觉得我要的应该是主从,只是网上搜索信息一般集群指向 rac,似乎并非主从方案。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.