Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
oceanbase
oblogmsg
提交
ed179366
O
oblogmsg
项目概览
oceanbase
/
oblogmsg
1 年多 前同步成功
通知
1
Star
10
Fork
6
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oblogmsg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ed179366
编写于
10月 18, 2021
作者:
忠
忠阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
formated README.md
上级
f8c28188
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
42 addition
and
12 deletion
+42
-12
README.md
README.md
+42
-12
未找到文件。
README.md
浏览文件 @
ed179366
# LogMessage
# oblogmsg
LogMessage是一种数据库增量数据的输出格式,oceanbase的增量采集模块liboblog正是使用的这种消息格式来输出增量数据,LogMessage支持oceanbase中不同数据类型的增量数据的写入,具有序列化和反序列化的能力。
oblogmsg是一种数据库增量数据的输出格式,oceanbase的增量采集模块liboblog正是使用的这种消息格式来输出增量数据,oblogmsg支持oceanbase中不同数据类型的增量数据的写入,具有序列化和反序列化的能力。
# 如何编译
## 如何使用 oblogmsg
*
LogMessage的编译依赖
1.
g++(推荐版本g++-5.2.0)
2.
cmake(推荐版本3.20)
*
执行cmake . && make,编译完成后,src目录下的liboblogmsg.so和liboblogmsg.a即为编译产物,使用时需要包含头文件目录include
# LogMessage部分接口说明
> 前置条件
*
创建一个record
>
> * cmake: >=3.20.0
> * g++: 支持 C++11 标准
### 以源码方式依赖(推荐方式)
*
可以使用
`git submodule`
的方式将 oblogmsg 作为主项目的子模块
*
在主项目的 CMakeLists.txt 文件中使用
`add_subdirectory(submodule_path_to_oblogmsg)`
来依赖 oblogmsg,该命令执行后将提供
`oceanbase::oblogmsg_shared`
和
`oceanbase::oblogmsg_static`
两个 targets
*
在主项目相关 CMakeLists.txt 文件中,对于要依赖 oblogmsg 的 target t1,使用
`target_link_libraries(t1 PRIVATE oceanbase::oblogmsg_shared)`
或者
`target_link_libraries(t1 PRIVATE oceanbase::oblogmsg_static)`
即可
### 依赖编译后的 oblogmsg 库
*
编译、安装 oblogmsg
```
shell
# 编译 oblogmsg
git clone https://github.com/oceanbase/oblogmsg.git
mkdir
oblogmsg-build
cd
oblogmsg-build
cmake
-S
../oblogmsg
-B
.
cmake
--build
.
# 本地安装
cmake
--install
.
--prefix
=
${
OBLOGMSG_INSTALL_PATH
}
```
*
主项目中依赖编译、安装后的 oblogmsg
*
在主项目 CMakeLists.txt 文件中使用
`set(CMAKE_PREFIX_PATH $ENV{OBLOGMSG_INSTALL_PATH} ${CMAKE_PREFIX_PATH})`
设置 oblogmsg 库搜索路径
*
然后使用
`find_package(oblogmsg REQUIRED)`
使加载 oblogmsg,该命令执行成功后将提供
`oceanbase::oblogmsg_shared`
和
`oceanbase::oblogmsg_static`
两个 targets
*
在主项目相关 CMakeLists.txt 文件中,对于要依赖 oblogmsg 的 target t1,使用
`target_link_libraries(t1 PRIVATE oceanbase::oblogmsg_shared)`
或者
`target_link_libraries(t1 PRIVATE oceanbase::oblogmsg_static)`
即可
## oblogmsg部分接口说明
### 创建一个record
1. void ILogRecord::setSrcType(int type)
1. void ILogRecord::setSrcType(int type)
功能描述:
功能描述:
...
@@ -210,7 +240,7 @@
...
@@ -210,7 +240,7 @@
true 此record已经完成序列化,或者此record是由一段数据反序列化后创建的
true 此record已经完成序列化,或者此record是由一段数据反序列化后创建的
false 此record还未进行序列化
false 此record还未进行序列化
*
反序列化一个record,或者从一个已经序列化过的record中(ILogRecord::parsedOK()返回true)解析数据
###
反序列化一个record,或者从一个已经序列化过的record中(ILogRecord::parsedOK()返回true)解析数据
1. int ILogRecord::parse(const void* ptr, size_t size)
1. int ILogRecord::parse(const void* ptr, size_t size)
功能描述:
功能描述:
...
@@ -384,13 +414,13 @@
...
@@ -384,13 +414,13 @@
返回值:
返回值:
返回一个StrArray类型的指针,该指针指向存着后镜像的值,可通过StrArray->size()接口获取数据的列数,StrArray->elementAt(int i, const char*& s, size_t& length)接口获取每列的数据
返回一个StrArray类型的指针,该指针指向存着后镜像的值,可通过StrArray->size()接口获取数据的列数,StrArray->elementAt(int i, const char*& s, size_t& length)接口获取每列的数据
*
从一个未序列化过的record中(ILogRecord::parsedOK()返回false)解析前后镜像字段的数据
###
从一个未序列化过的record中(ILogRecord::parsedOK()返回false)解析前后镜像字段的数据
1. int ILogRecord::getTableMeta(ITableMeta*& tblMeta)
1. int ILogRecord::getTableMeta(ITableMeta*& tblMeta)
功能描述:
功能描述:
从一个record获取表的元数据信息,从一个未序列化过的record取值时,tblMeta必须为一个空指针
从一个record获取表的元数据信息,从一个未序列化过的record取值时,tblMeta必须为一个空指针
参数:
参数:
tblMeta 需为一个空指针,该接口会将此指针指向record的元数据地址,内存由
logmessage
管理,调用方不需要释放
tblMeta 需为一个空指针,该接口会将此指针指向record的元数据地址,内存由
oblogmsg
管理,调用方不需要释放
返回值:
返回值:
0 成功
0 成功
其他值 失败
其他值 失败
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录