Canal MySql 数据增量/全量同步数据到 ES Canal 项目地址 Server 部署 官方文档QuickStart ClientAdapter 部署 官方文档ClientAdapter 同步数据到 ES 官方文档Sync-ES 遇到问题 SQL 需要使用别名, 没有自动转换
但表查询也需要使用别名,没有会空指针
日期格式, 需要使用 ES 标准格式
"createTime": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||strict_date_optional_time||epoch_millis" } ETL etlCondition参数使用 {}, 传参使用 ; 分割
Harbor 安装使用 安装参考 install-config
注意事项 如果使用 IP 访问, 生成证书需要添加 IP openssl req -sha512 -new \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=luokai.com" \ -key luokai.com.key \ -out luokai.com.csr \ -addext "subjectAltName=IP:192.168.50.165,IP:127.0.0.1" # IP 添加在这里 如果使用 IP 访问, harbor.yml 配置 # harbor.yml # hostname: 192.168.50.165 hostname: 0.0.0.0 如果使用 IP 访问或 HTTP, docker 配置 # /etc/docker/daemon.json { "insecure-registries": ["192.168.50.165"] }
java pkcs12 sudo openssl pkcs12 -export -in vault.crt -inkey vault.key -out vault.p12 -name "vault" jks sudo keytool -importkeystore -srckeystore vault.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore vault.jks import keytool -list -keystore $JAVA_HOME/lib/security/cacerts # 默认密码 changeit keytool -import -alias <证书别名> -keystore $JAVA_HOME/jre/lib/security/cacerts -file your.crt keytool -import -alias vault -keystore cacerts -file /etc/pki/ca-trust/source/anchors/tls.crt
topic 副本数修改 { "version": 1, "partitions": [ { "topic": "message", "partition": 0, "replicas": [1, 2, 3] }, { "topic": "message", "partition": 1, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 0, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 1, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 2, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 3, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 4, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 5, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 6, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 7, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 8, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 9, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 10, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 11, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 12, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 13, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 14, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 15, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 16, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 17, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 18, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 19, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 20, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 21, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 22, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 23, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 24, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 25, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 26, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 27, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 28, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 29, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 30, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 31, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 32, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 33, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 34, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 35, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 36, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 37, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 38, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 39, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 40, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 41, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 42, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 43, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 44, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 45, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 46, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 47, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 48, "replicas": [1, 2, 3] }, { "topic": "__consumer_offsets", "partition": 49, "replicas": [1, 2, 3] } ] } # 修改 sudo -u kafka sh .
Outliner Text text text
more items list OK Title 2 hello ok Tables Some Data 12 bukkkk 32 more ok nice 23 kok Fone Blol i fff [[file:./lean1.pdf ]]
Source code public class Demo { } DONE key C-c C-d DEADLINE: <2022-12-21 Wed>
DONE key C-c C-t DEADLINE: <2022-12-28 Wed 12:30>
Test Load
NVIM 打造 Java IDE JavaHello/nvim
Java开发环境配置 安装 jdk11 +配置好环境变量
# Java runtimes export JAVA_8_HOME=/path/jdk8 # default export JAVA_11_HOME=/path/jdk11 export JAVA_17_HOME=/path/jdk17 export JAVA_HOME=$JAVA_17_HOME # jdt.ls 运行依赖 安装 maven 配置好环境变量
# Maven export MAVEN_HOME=/path/maven 安装 gradle 可选
安装 vscode 相关 Java 扩展包 (vscode/mason.nvim 任意选择一种方式安装)
vscode-java-pack jdt.ls,junit test, debug 依赖 java-decompiler 反编译依赖 如果你不是使用 vscode, 可使用 mason.nvim 安装 java 插件 :MasonInstall jdtls java-debug-adapter java-test
配置 lombok 无需手动下载, vscode-java, mason.nvim jdtls 都包含了
# 默认为Y启用 # 优先读取 vscode-java 扩展的 lombok-x.
NVIM 打造 Java IDE 当你习惯了 Vim 文本编辑器,你就习惯了 Vim 文本编辑器(🐶)。
配置 配置地址 将配置拷贝到本机的 ~/.config/ 文件中。 配置都写了中文描述,使用前需自己看下。
关键配置和插件 <Leader> 键修改为了;. 使用 packer.nvim 管理插件。 nvim-lsp 实现常见编程语言代码提示等功能。 vim-fugitive 最好用的 Git 插件, 可查看修改,提交等。 LeaderF 文件缓冲区等搜索插件, 配合 rg 使用全局搜索起飞。 asynctasks.vim 异步执行任务插件,可执行终端命令,我用于编译打包构建发布。 vim-floaterm 浮动终端,我用于执行一下命令,配合 asynctasks.vim 使用。 Java IDE 实现功能描述 代码提示,使用 nvim-cmp cmp-nvim-lsp nvim-jdtls 插件, eclipse.jdt.ls 后端支持。支持单文件工程,Maven, Gradle 工程 跳转到定义 gd, 跳转到实现 gi, 查看引用 gr, 查看文档 K。 命令模式下 :OR 自动导包, Format 格式化代码 大纲快捷键<space>o,vista.vim 插件实现 get,set, 构造方法, impl 等操作,快捷键 <Leader> ca debug 使用 nvim-dap 插件, 依赖 java-debug 和 vscode-java-test。 Java 开发配置描述 依赖 nvim 0.
Org Mode pay-channel 结构调整
pay-common channel-api pay-channel
从零打造 NVIM IDE 安装NVIM
基础配置 新建配置文件 基础配置 插件安装 插件管理器 常用插件 插件配置
使用 GDB + Qemu 调试 Linux 内核 Linux 内核编译 使用 master 分支
$ git clone https://github.com/torvalds/linux.git $ cd linux $ make mrproper # 清理旧配置和编译生成的文件 $ make x86_64_defconfig # 生成默认配置 $ make nconfig # 开启 debug 选项 # Kernel hacking --> Compile-time checks and compile options --> Debug information --> Generate DWARF Version 5 Debuginfo $ make -j$(nproc) # 编译 # 内核文件 $ ls -hl vmlinxu $ ls -hl ./arch/x86_64/boot/bzImage # 压缩后的内核文件 文件系统制作 使用 busybox