• Stars
    star
    197
  • Rank 197,722 (Top 4 %)
  • Language
    PHP
  • License
    MIT License
  • Created almost 3 years ago
  • Updated almost 2 years ago

Reviews

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

Repository Details

A high-performance lightweight framework of PHP to achieve incremental update of ES documents / 一个基于Canal实现ES文档增量更新的高性能轻量框架
img

一个基于Canal实现ES文档增量更新的高性能轻量框架

GitHub release (latest by date) Docker Pulls

一、介绍

ESUpdater是一个基于Canal实现ES文档增量更新的高性能轻量框架。基于以下优势,可以让你快速上手和使用。

Architecture

1、轻量级框架

无论安装使用,还是代码设计,整个框架都非常轻量,优雅的完成数据二次处理和ES增量更新。

2、全面容器化

为解决各种依赖安装的复杂麻烦问题,已实现全面容器化,只需一条命令就可以轻松安装、部署、和维护。

3、事件驱动化

基于框架内部的事件驱动设计,可以轻松地注册不同数据表的变更事件和回调,优雅地实现增量更新。

4、插件化扩展

在不影响框架内部运行的前提下,支持插件化扩展,实现对内部行为的自定义扩展。

5、高性能消费

通过一个Consumer进程和多个Worker进程的一对多通信模型,最少提高10倍的吞吐量,实现高性能消费。

二、快速上手

预计只需要 3分钟 即可完成 !

以下操作中会依赖Docker,所以请先安装并启动它。如果只是试用则强烈建议你全程使用在线Docker网站,按如下步骤安装即可,非常方便。

1、获取项目

通过git clone或下载Release包即可获取项目,如果出错请参考获取过程帮助文档。

git clone https://github.com/WGrape/esupdater
cd esupdater

2、开始安装

执行install目录下的install.sh安装脚本时,需要传递如下参数以实现设置环境变量。如果出错请参考安装过程帮助文档。

  • your_local_ip :本机IP参数,通过ifconfig查看,通常为192.168开头,而不是127.0.0.1
cd install
bash install.sh ${your_local_ip}
cd ..

3、运行项目

安装成功后,执行根目录下的start.sh启动脚本即可。如果出错请参考运行过程帮助文档。

bash start.sh

# 查看日志输出
tail -f /home/log/esupdater/debug.log.20220111

4、测试运行

在另一个窗口进入kafkaContainer容器中,按如下操作启动Kafka生产者

docker exec -it kafkaContainer /bin/bash
cd /opt/kafka/

# 启动时可能会出现warn, 忽略即可
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic default_topic

img1

启动成功后会进入一个生产消息的命令行,发送任意消息后,查看上一步日志中的输出,如果出现如下类似日志则说明服务已经成功运行 !

img2

三、业务接入

如果需要在你的业务中接入此项目,请参考应用接入文档

四、扩展列表

基于插件化扩展开发,项目提供了一系列开箱即用的扩展。

1、AutoGenerateCallback

一个自动生成HandlerService的事件回调模块的扩展。具体使用见使用介绍

五、关于项目

1、深入了解

如果想要深入了解本项目,在 doc目录 下提供了如下丰富完善的项目文档,欢迎阅读。

  • APPLICATION :帮助你快速在业务中接入此项目
  • HOWTOCODE :更深的了解项目,包括架构设计、底层原理
  • HELP :解决安装和部署过程中问题的帮助手册,包括镜像制作帮助、容器部署帮助等

2、参与项目

项目源码设计简单易懂,如有更好的想法,可参考如何贡献文档,期待提出宝贵的 Pull request

如果在了解和使用过程中,有任何疑问,也欢迎提出宝贵的 Issue

开源不易,如果支持本项目 欢迎Star ! 以激励维护和更新的动力。

六、贡献列表

所有对本项目有过重要贡献的用户,会收录在此贡献者列表中。

More Repositories

1

lexer

A lexical analyzer based on DFA that is built using JS and supports multi-language extensions / 一个基于DFA的支持多语言扩展的JS版开源词法分析器
JavaScript
313
star
2

ngxway

A high-performance and lightweight Nginx gateway service / 高性能轻量级的Nginx网关服务
Shell
27
star
3

Akama

Akama:翻译国外计算机领域相关文章资料
24
star
4

Blog

欢迎关注博客 🎉🎉🎉 ,分享开源项目、后端开发、中间件和架构等计算机领域的原创技术文章 :wgrape.github.io
24
star
5

Sherk

基于C语言的关系型数据库系统实现 ( A Relational Database System Implementation Based On C Language )
C
20
star
6

CIManager

A lightweight open source framework for efficiently managing common CI/CD for multi projects / 一个用于高效管理多个项目通用CI/CD的轻量级开源框架
Shell
20
star
7

parseAOF

A simple and fast tool to parse the AOF file of redis / 一个简单快速的解析Redis AOF文件的工具
Go
18
star
8

VirtualMemory

计算机组成原理中虚拟存储器的实现(A Virtual Memory Implementation In Computer Organization).
C
17
star
9

posture

A lightweight and extensible tool for supervising and correcting of development posture / 一个轻量可扩展的开发姿势监督与矫正工具
Shell
13
star
10

matching

A general and configurable user matching library based on Go language / 一个基于Go语言实现的通用且可配置化的用户匹配库
Go
11
star
11

golib

A simple and easy-to-use library in go / 一个简单易用的Go语言封装库
Go
10
star
12

bitmap

A simple and easy-to-use bitmap library based on Go language / 一个基于Go语言实现的简单易用的bitmap库
Go
8
star
13

automan

A lightweight and extensible automated testing framework based on Go language / 基于Go语言的轻量级可扩展的自动化测试框架
JavaScript
6
star
14

WGrape

6
star
15

page

The page for your personal customization / FastPage是一款基于整合了OKR、便利贴、链接管理等组件的高效办公桌面。它基于浏览器本地存储,保证数据安全
HTML
6
star
16

parseRDB

A simple and fast golang library to parse the RDB file of redis / 一个简单快速的解析Redis RDB文件的golang库
5
star
17

go-algorithms

The common algorithms are implemented in go / Go语言常用算法实现
Go
5
star
18

runview

A visual tool for viewing PHP code execution records / 一个基于XDebug的分析PHP代码执行记录的可视化工具
PHP
5
star
19

APINotice

A service-level alarm platform based on kibana watcher / 一个基于Kibana Watcher的服务分级报警平台
4
star
20

apimock

A lightweight solution in golang for API mock and automatic generation of API documentation / 一种适用于Go语言的接口Mock和接口文档自动生成的轻量级方案
Go
4
star
21

mygolint

This is a golint tool for learning and research / 一个用于学习和研究的golint工具
Go
1
star
22

sparrow

🦜麻雀虽小 五脏俱全🦜 🔨 一键启动多服务环境的容器化工具 🔨 🏄🏻‍♂️ 享受一切顺利的快乐🏄🏻‍♂️
1
star
23

cache

A third-party cache service built on Docker / 基于Docker构建的第三方缓存服务
1
star
24

bookcode

Go
1
star
25

gomicro

从零到一构建一个基于Go的完整微服务技术生态
Go
1
star
26

ngxzoo

A visual web system for managing ngxway gateways / 一个用于管理ngxway网关的系统后台
Shell
1
star