• Stars
    star
    127
  • Rank 282,790 (Top 6 %)
  • Language
    Java
  • Created almost 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DRC

Introduction

DRC(Data Replicate Center)是携程框架架构研发部数据中心组推出的用于数据双向或多向复制的数据库中间件,服务于异地多活项目,同时赋予了业务全球化的部署能力。

携程内部MySQL采用多机房部署,机房A部署一主一从,机房B部署一从,作为DR(Disaster Recovery)切换使用。当前部署下,机房B部署的应用需要跨机房进行写操作;当机房A出现故障时,DBA需要手动对数据库进行DR切换。 为了做到真正的数据异地多活,实现MySQL同机房就近读写,机房故障时无需进行数据库DR操作,只进行流量切换,就需要引入数据实时双向(多向)复制组件。

同时在国际化战略背景下,业务出海时伴随着数据出海,就需要海外和国内数据复制,从而实现数据的本地读写。

Screenshots

img.png

Usage

1.console guide

Features

  • 表粒度复制

    • 默认集群粒度复制,可指定正则表达式,精确到表粒度。
  • 一对多复制

    • 多个Applier消费同一个Replicator,每个Applier独立消费。
  • 公有云复制

    • 支持AWS、阿里云等公有云和私有云双向复制。
  • 断点续传

    • DRC根据gtid精确定位Binlog位点。
  • 表结构变更

    • DRC支持表结构动态连续变更,保证数据准确性。
  • 故障自动切换

    • 核心模块Replicator、Applier和Cluster Cluster均通过Zookeeper实现主备架构,单点故障自动切换。

Design

整体架构如下所示:

  • Replicator:Replicator Instance表示一个MySQL集群的复制单元,Instance将自己伪装为MySQL的Slave,实现Binlog的拉取和本地文件存储。
  • Applier:Applier Instance连接到一个Replicator Instance,实现对Replicator Instance本地存储Binlog的拉取,进而解析出SQL语句并应用到目标MySQL,从而实现数据的复制。
  • Cluster Manager:负责集群高可用切换,包括由于MySQL主从切换导致的Replicator Instance和Applier Instance重启,以及Replicator Instance与Applier Instance自身主从切换引起的新实例启动通知。

Deployment

Presentation

Publication

More Repositories

1

C-OCR

C-OCR是携程自研的OCR项目,主要包括身份证、护照、火车票、签证等旅游相关证件、材料的识别。 项目包含4个部分,拒识、检测、识别、后处理。
Java
2,373
star
2

x-pipe

X-Pipe是由携程框架部门研发的Redis多数据中心复制管理系统。基于Redis的Master-Slave复制协议,实现低延时、高可用的Redis多数据中心、跨公网数据复制,并且提供一键机房切换,复制监控、异常报警等功能。开源版本和携程内部生产环境版本一致。
Java
2,001
star
3

CRN

CRN是Ctrip React Native简称,由携程无线平台研发团队基于React Native框架优化,定制成稳定性和性能更佳、也更适合业务场景的跨平台开发框架。
JavaScript
1,457
star
4

dal

Ctrip Database Access Layer
Java
1,246
star
5

flybirds

基于自然语言的,跨端跨框架 BDD UI 自动化测试方案,BDD testing, Python style, Present by Trip Flight
Python
844
star
6

moles-packer

moles-packer 是由携程框架团队研发的,与携程moles框架配套使用的React Native 打包和拆包工具,同时支持原生的 React Native 项目。
JavaScript
721
star
7

wean

🍀 Super fast miniapp compiler.
JavaScript
390
star
8

tars

携程下一代发布系统
JavaScript
365
star
9

vi

帮助了解和控制应用
Java
269
star
10

SQLlin

A DSL ORM library for Kotlin Multiplatform.
C
218
star
11

tripdocs

TripDocsSDK是基于携程内部在线文档编辑器内核,提炼的一款通用的,现代的、稳定的、支持协同的、可用于生产环境的在线文档编辑器
TypeScript
159
star
12

dataworks-zeus

Ctrip Hadoop Job Scheduling System derived from https://github.com/alibaba/zeus
Java
153
star
13

nephele

Image Service
Go
145
star
14

mmkv-kotlin

A Kotlin Multiplatform porting for MMKV.
Kotlin
130
star
15

hermes

Message Queue Solution at Ctrip.com
Java
85
star
16

cat.net

.Net Client of CAT
C#
69
star
17

zeus

Soft Load Balancer at ctrip.com
JavaScript
55
star
18

kbear

Enterprise Kafka Solution
Java
51
star
19

artemis

artemis
Java
41
star
20

caravan

Caravan
Java
34
star
21

cat.js

Javascript client of CAT
JavaScript
29
star
22

ghost

A set of go tools with simple construction and powerful features.
Go
18
star
23

xredis-crdt

C
11
star
24

caravan.net

caravan.net
C#
9
star
25

crdt-module

C
8
star
26

chystrix.net

chystrix.net
C#
7
star
27

homer

Go
6
star
28

TripLink

TripLink
Java
5
star
29

artemis.net

artemis.net
C#
4
star
30

hermes.js

hermes client for javascript
4
star
31

kvrocks

kvrocks
2
star
32

venus

Dependency Injection Framework for .NET
1
star
33

ares-ceph

1
star
34

react-native-cba

react-native-cba
1
star