Giter Club home page Giter Club logo

esupdater's Introduction

img

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

目录

一、介绍

ESUpdater是一个基于Canal实现ES文档增量更新的轻量级框架。基于以下优势,可以方便的完成业务接入与扩展。

Architecture

1、轻量级框架

从消费Kafka消息,到派发至业务层处理,框架设计清晰,源码简单易懂。

2、全面容器化

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

3、事件驱动化

通过数据表变更事件的注册与回调,完成业务逻辑的实时处理,这种事件驱动化设计更符合增量更新的理念。

二、快速安装

安装过程会依赖Docker,所以请先安装并启动Docker,或者使用在线Docker网站,按如下步骤安装即可

1、获取项目

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

2、安装依赖

cd image
bash make.sh

如果出现下图提示,则表示phpkafka镜像生成成功,至此所有的安装步骤就已经完成。

如果安装过程出错,请查看镜像制作帮助文档。

三、轻松管理

1、容器部署

如果部署出错,请参考容器部署帮助文档

(1) 启动

bash ./start.sh

(2) 停止

bash ./stop.sh

(3) 重启

bash ./restart.sh

2、容器运行配置

容器的运行时配置在/start.sh脚本中定义,请根据实际情况进行修改,或使用默认配置。

Id 配置名称 配置参数 参数值 默认值 释义
1 核心数 --cpus >=0.5 1.5 设置允许的最大核心数
2 CPU核心集 ---cpuset-cpus 0,1,2... 未设置 设置允许执行的CPU核心
3 内存核心集 --cpuset-mems 0,1,2... 未设置 设置使用哪些核心的内存
4 目录挂载 -v 磁盘目录 /home/log/esupdater 设置容器挂载的目录,以便在宿主机查看日志

四、业务接入

1、修改配置

只需要修改 consumer.php 配置文件中的broker_list_stringgroup_idtopic这三个必须的配置项即可, 否则无法正常消费数据。

其他非必须的配置请参考应用配置文档

2、创建应用

/app/目录下,创建一个以业务为命名规范的应用名称,如/app/alpha/

3、创建事件模块

在上一步中创建的应用目录下,再创建一个由HandlerService组成的事件模块,如 :

  • /app/alpha/user/UserHandler.php ,作用类似 Controller
  • /app/alpha/user/UserService.php,作用类似 Service

4、部署项目

至此业务接入部分已经完成,参考 轻松管理 部分部署代码即可

五、疑问解答

1、项目文档

项目共有如下3个的文档,以便查看了解

  • README :项目本身的文档,快速了解项目
  • HOWTOCODE :更深的了解项目,包括架构设计、执行原理、应用配置、单元测试等
  • HELP :解决安装和部署过程中问题的帮助手册,包括镜像制作帮助、容器部署帮助等

2、参与项目

项目源码设计简单易懂,如果你有更好的想法,非常欢迎提出宝贵的 Pull request

3、提问渠道

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

esupdater's People

Contributors

wgrape avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.