1. 数据源 DataSource

CobarClient 的 DataSource 分为三层

ICobarDataSourceService: 封装了多个 DataSourceDescriptor, 以及 HA 包装的 IHADataSourceCreator

DataSourceDescriptor: 封装了 identity, 主 targetDataSource 以及 备 standbyDataSource

DataSource: 实际数据库 DataSource

2. 路由 Router

CobarClient 的路由规则依赖于 iBatis, 它主要由 SqlMap 的 id 和路由字段共同决定最终的datasource, 例如

com.alibaba.cobar.client.entities.Offer

mod.apply(memberId)==1

partition1

com.alibaba.cobar.client.entities.Offer

mod.apply(memberId)==2

partition2

表示对于 SqlMap 中的 namespace 为 Offer 的 SQL, 将会根据参数的 memberId 字段来获取 shard, shard 即为 DataSourceDescriptor 的 identity

3. HA

CobarClient 的 HA 分为主动及被动方式, 主动方式默认开启, 即开一个线程定期探测主数据源是否可用, 如果不可用, 则切换为备数据源, 即切换 DataSourceDescriptor 的主备数据源

被动方式默认关闭, 被动方式是在每次执行查询前检查, 这样会降低效率, 如果检查失败, 则会切换主备.

4. 数据聚合

数据聚合主要还是依赖客户端查询完以后的人工聚合, 例如

select count(*), companyId from offer group by companyId

将会对多个数据源执行 SQL, 并最终返回多个结果集, 最后依赖用户手动聚合 companyId

java cobar_Cobar-Client 实现策略总结相关推荐

  1. Elasticsearch RestHighLevelClient 已标记为被弃用 它的替代方案 Elasticsearch Java API Client 的基础教程及迁移方案

    在Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端RestHighLevelClient标记为弃用状态.同时推出了全新的Java API客户端Elastics ...

  2. java策略管理_详解Java编程中的策略模式

    策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式 ...

  3. java状态模式和策略模式_Java状态和策略设计模式之间的差异

    java状态模式和策略模式 为了在Core Java应用程序中正确使用状态和策略设计模式,对于Java开发人员清楚地了解它们之间的区别很重要. 尽管状态和策略设计模式的结构相似,并且都基于开放式封闭设 ...

  4. ios java 通信_Kurento Java Spring Client IOS – Web到IOS通信

    我们正在尝试使用Kurento 6.0 Java Spring Client.这些例子运作良好(one2one调用one2one-recording).我们正在尝试在IOS应用程序上实现相同的功能,以 ...

  5. Java多线程-任务拒绝策略

    Java多线程-任务拒绝策略 简介 Rejected tasks New tasks submitted in method execute(Runnable) will be rejected wh ...

  6. ES8(Java API Client)查询详解

    根据我之前文章对 ES命令的查询使用,测试索引的文档数据前面文章有提到的. 下面我们就通过 ES8(Java API Client)来进行查询. 参考官方AP文档:https://www.elasti ...

  7. Springboot整合ES8(Java API Client)

    在 Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端 RestHighLevelClient标记为弃用状态.同时推出了全新的 Java API客户端 Elas ...

  8. SpringBoot整合最新Elasticsearch Java API Client 7.16教程

    文章目录 前言 一.Elasticsearch和Kibana 7.16版本安装 二.pom.xml文件引入依赖 三.代码实例 总结 前言 最新在学习SpringBoot整合es的一些知识,浏览了网上的 ...

  9. es (Elasticsearch)--Java REST Client解析

    扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦 简介 ES提供了两种java的API对数据进行ES集群操作:TransportClient,Java REST Client ...

  10. Elasticsearch8.0版本中Elasticsearch Java API Client客户端的基本使用方法

    关于Elasticsearch Java API Client客户端如何连接以及如何对索引和文档进行基本的增删改查操作请查看我的上一篇博文:Elasticsearch RestHighLevelCli ...

最新文章

  1. python vars 的用法
  2. 如何在 TensorFlow 中用深度学习修复图像?(附论文)
  3. Android自定义控件系列
  4. Oracle的in查询
  5. 【完整代码】使用Semaphore实现限流代码示例
  6. 载荷谱matlab,收获机车架载荷测试及载荷谱编制方法研究
  7. nosql和rdnms_用于SaaS和NoSQL的Jdbi
  8. Kinect开发学习笔记之(八)彩色、深度、骨骼和用户抠图结合
  9. 我父亲的新发明--玉米点播器
  10. 批量将ANSI文本txt文件转换成UTF8编码格式 (vbs方法)
  11. Atitit 异常处理之道 attilax著.docx 1. 概念 2 1.1. 异常机制的设计原理 2 1.2. Atitit.异常机制的设计原理.docx java 2 1.3. JVM看Exc
  12. SQL语法 之 基本查询
  13. 支付宝小程序生成二维码
  14. IoT黑板报0209:工信部明确增加物联网网号
  15. Vista硬盘安装详细图解
  16. 服务端开发框架及技术(转)
  17. Failed to load module “canberra-gtk-module“
  18. 使用R语言 在rstudio中出现 列的数目比列的名字要多 的问题
  19. 高德地图 坐标与地址
  20. Halium 9 尝鲜 -- 在小米平板4上的移植 (七)

热门文章

  1. 记录一下小小的sql:找出每个班级里身高最高的人,并按班级排序
  2. 【解决】联想拯救者/MT7921网卡 ubuntu里 wifi/蓝牙 无法识别连接
  3. 数通学习网络协议地图
  4. 神经元模型 Hodgkin Huxley model
  5. psp模拟器完美字库_透过模拟器看见那个疯狂的学习机年代(模拟器篇)(待续)...
  6. Command Line Tools下载不下来,则可以去官网下载
  7. AutoCad二次开发-插入DWG参照 Teigha库
  8. 2021年UI设计面试问题及答案解析
  9. app软件测试经验分享
  10. 在windows10上安装texlive的参考文档