MCPcopy Index your code
hub / github.com/Meituan-Dianping/Zebra

github.com/Meituan-Dianping/Zebra @2.9.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.9.1 ↗ · + Follow
5,022 symbols 17,694 edges 492 files 346 documented · 7%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Zebra

Introduction

Zebra是一个基于JDBC API协议上开发出的高可用、高性能的数据库访问层解决方案,是美团点评内部使用的数据库访问层中间件。具有以下的功能点: - 配置集中管理,动态刷新 - 支持读写分离、分库分表 - 丰富的监控信息在CAT上展现 - 异步化数据库请求,多数据源支持

Core Value

  • 简化了读写分离、分库分表的开发工作,使得业务方在分库分库、读写分离的情况下,依然可以像操作单个库那样去操作,屏蔽底层实现的复杂性,对业务透明。 提供了从读写分离到分库分表全生命周期的技术支持。
  • 完善的监控体系帮助开发掌控数据库请求的整个链路,快速定位问题。
  • dao层扩展功能

Modules

  • zebra-client(核心) : 除了监控外,几乎zebra所有核心功能,如读写分离、分库分表、就近路由、流量控制
  • zebra-cat-client(可选): 提供端到端的监控,将监控信息上报到CAT监控平台
  • zebra-dao(可选):对mybatis的轻量级封装,兼容mybatis原有的功能,并额外提供了异步化接口、分页插件、多数据源等功能
  • zebra-admin-web:zebra配置管理平台 用于管理zk和保存在zk中的zebra配置
  • zebra-sample: zebra客户端使用的demo

Quick Start

Project Design

License

Company


接入Zebra的公司欢迎在此接入公司留下联系方式, 谢谢。

Contact us

Extension points exported contracts — how you extend this code

DataSourceRouter (Interface)
对等DataSource选择器。 [8 implementers]
zebra-client/src/main/java/com/dianping/zebra/group/router/DataSourceRouter.java
ShardService (Interface)
@author canhuang @date 2018/3/25 [3 implementers]
zebra-admin-web/src/main/java/com/dianping/zebra/administrator/service/ShardService.java
UserDao (Interface)
@author tong.xin on 2018/10/29.
zebra-sample/src/main/java/com/dianping/zebra/sample/dao/group/UserDao.java
AsyncDaoCallback (Interface)
(no doc)
zebra-dao/src/main/java/com/dianping/zebra/dao/AsyncDaoCallback.java
IMemberFilter (Interface)
(no doc)
zebra-cat-client/src/main/java/com/dianping/zebra/monitor/util/Reflects.java
Aggregator (Interface)
聚合函数的数据处理器接口 @author Leo Liang [12 implementers]
zebra-client/src/main/java/com/dianping/zebra/shard/merge/groupby/Aggregator.java
ZookeeperConfigService (Interface)
Created by taochen on 2018/11/8. [2 implementers]
zebra-admin-web/src/main/java/com/dianping/zebra/administrator/service/ZookeeperConfigService.java
FeedDao (Interface)
@author tong.xin on 2018/11/8.
zebra-sample/src/main/java/com/dianping/zebra/sample/dao/shard/FeedDao.java

Core symbols most depended-on inside this repo

get
called by 1083
zebra-client/src/main/java/com/dianping/zebra/shard/merge/RowData.java
add
called by 848
zebra-client/src/main/java/com/dianping/zebra/shard/util/ShardColumnValueUtil.java
size
called by 442
zebra-client/src/main/java/com/dianping/zebra/shard/idgen/IdRange.java
close
called by 411
zebra-client/src/main/java/com/dianping/zebra/single/pool/DataSourcePool.java
next
called by 285
zebra-client/src/main/java/com/dianping/zebra/shard/idgen/IdRange.java
setProperty
called by 284
zebra-client/src/main/java/com/dianping/zebra/single/jdbc/C3p0DataSourceAdapter.java
put
called by 243
zebra-client/src/main/java/com/dianping/zebra/util/json/JsonArray.java
append
called by 215
zebra-client/src/main/java/com/dianping/zebra/util/json/JsonObject.java

Shape

Method 4,463
Class 465
Interface 48
Function 31
Enum 15

Languages

Java99%
TypeScript1%

Modules by API surface

zebra-client/src/main/java/com/dianping/zebra/shard/jdbc/ShardDatabaseMetaData.java175 symbols
zebra-client/src/main/java/com/dianping/zebra/single/jdbc/SingleResultSet.java103 symbols
zebra-client/src/main/java/com/dianping/zebra/group/jdbc/GroupResultSet.java98 symbols
zebra-client/src/main/java/com/dianping/zebra/single/jdbc/DruidSingleDataSource.java65 symbols
zebra-client/src/main/java/com/dianping/zebra/group/jdbc/GroupDataSource.java60 symbols
zebra-client/src/main/java/com/dianping/zebra/shard/jdbc/ShardPreparedStatement.java58 symbols
zebra-client/src/main/java/com/dianping/zebra/shard/merge/ShardResultSetAdaptor.java55 symbols
zebra-client/src/main/java/com/dianping/zebra/single/jdbc/TomcatJdbcSingleDataSource.java54 symbols
zebra-client/src/main/java/com/dianping/zebra/shard/jdbc/unsupport/UnsupportedShardResultSet.java54 symbols
zebra-cat-client/src/main/java/com/dianping/zebra/monitor/util/Reflects.java52 symbols
zebra-client/src/main/java/com/dianping/zebra/group/jdbc/GroupStatement.java51 symbols
zebra-client/src/main/java/com/dianping/zebra/shard/jdbc/ShardResultSet.java50 symbols

Datastores touched

(mysql)Database · 1 repos
zebraDatabase · 1 repos
localhost-m1-writeDatabase · 1 repos
testErrorDatabase · 1 repos

For agents

$ claude mcp add Zebra \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact