canal同步mysql数据到es
环境信息
docker
mysql 8.0.25
canal 1.1.5
canal-admin 1.1.5
canal-adapter 1.1.5
elasticsearch 7.3.0
环境搭建mysql修改 my.ini,开启 binlog
1234[mysqld]log-bin=mysql-binbinlog-format=ROWserver-id=1
使用 docker-compose 启动 mysql
12345678910111213141516version: "3"services: db: container_name: mysql8 image: mysql:8.0.25 command: mysqld --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWO ...
树形表结构设计
需求背景根据一个部门查询这个部门的全部子级部门
方案 1: 正常设计
字段
备注
id
部门 id
dept_name
部门名称
parent_id
上级部门 id
这种设计方案是符合第三范式的最简单方案。可以完美描述树状结构,并且没有任何冗余数据。但缺点也是显而易见的。如果跨层级查询就要递归查询
方案 2: 冗余路径
字段
备注
id
部门 id
dept_name
部门名称
parent_id
上级部门 id
path
从最上级到该节点的路径 以 / 分割
数据试例
id
dept_name
parent_id
path
1
xx 科技有限公司
/1
2
研发部
1
/1/2
3
后端
2
/1/2/3
4
前端
2
/1/2/4
5
产品设计部
1
/1/5
6
PD
5
/1/5/6
7
UED
5
/1/5/7
...
接到了域名到期的诈骗电话
域名到期?今天家里人接到了一个来自济南的号码053186922572的电话,说网站域名到期。6 月 30 号刚查过还有很长一段时间才过期,网站当时是我搞的,所以就问我怎么回事。我根据她的描述第一反应是骗子。就让他把电话给我,我来看看。
当拿到电话之后查了一下是山东济南的电话的时候基本就已经肯定是诈骗了。上网简单搜了一下这个诈骗套路,一般都是说域名到期,然后委托他们给你注册一个新的域名(注意是新的,不是给原来的续费),手续分很贵,不懂的人很容易就上当了。
xx 互联网公司?本着戏耍的态度,我打了那个电话回去。接电话的是一个男生,他问我是干什么的,我说你刚才给我打电话说域名到期了,我想咨询一下,然后他说,电话不是他打的,是同事打的,同事出去了。他不知道同事的业务,我问他们是啥公司的,他说是 xx 互联网公司。我让他同事回来给我打回来。这里我就很确定了是诈骗了。
这个时候我在网上搜了一下 xx 互联网公司,根据企查查中的记录,他们公司确实有域名服务,进了他们公司官网,看到了一醒目的 18 年左右的公告链接,点开之后显示说近期有人冒充他们公司的名号进行诈骗,说什么已报案了之类的巴拉巴拉的。
又 ...
Windows 搜不到wifi解决
我是用 mac 的,最近在折腾一些跟.net framwork相关的东西,一直远程也不太方便就用Boot Camp装了个了个 Windows,刚开始用多个好好的,直到因为一些问题我手贱点了重置网络。然后系统就搜不到 wifi 了。
驱动问题?我一开始认为是驱动问题,我以为是因为硬件驱动导致的,苹果的硬件不支持微软的系统不是很正常,第一次驱动时Boot Camp装的,在 Windows 上面点了重置,鬼知道把驱动重置成了什么样子。所以我的想法就是搞一个Boot Camp。切换到 Mac,打开Boot Camp选择下载 windows 支持,将下载好的文件搞到 windows 里面安装。但是并没有什么用,依然搜不到 wifi。网上搜了一下,几乎都是认为是驱动的问题,说要安装驱动精灵什么的,试了一下果然没用,官方的驱动软件都搞不定的杂牌子搞不定很正常。
Wifi Autoconfig继续查了一些资料,发现可能是Wifi Autoconfig服务没启动。按下 Win + R 快捷键,输入 service 回车。然后找到Wifi Autoconfig这个服务,果然没启动。把他启动了 wifi 功 ...
Github Action 不同Job共享数据
背景一个.net framwork 项目需要 windows 环境进行构建,构建完之后依赖一些其他的 action 进行一些后续的操作,但这些 action 其中一些不支持 windows 环境。
实现使用actions/upload-artifact@v2上传需要共享的数据。使用actions/download-artifact@v2下载需要共享的数据
12345678910111213141516171819202122232425262728293031323334353637383940name: .NETon: workflow_dispatch: push: branches: - masterjobs: build_job: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Setup MSBuild uses: microsoft/setup-msbuild@v1 - name: Setup NuGet ...
两个字符串的最长公共子序列问题-从暴力递归到动态规划优化
动态规划问题的最终解是找到转移方程,但是转移方程很多时候并不是那么好找的。
问题描述给定两个字符串寻找最长公共子序列。例如”ab1c2de3f”和”x1y2z3”的最长子序列为”123”
暴力递归暴力递归的解决思路是很容易想到的。递归函数返回两个字符串 str1,str2 到 index1,index2 位置的最长公共子序列的长度。递归终止的条件是两个串中任意一个串是空串,那么最长公共子序列的长度为 0。到任意一个 index1,index2 位置有以下几种可能性
最长公共子序列的最后一个值和 str1[index1] 、str2[index2]都相同。
最长公共子序列的最后一个值和 str1[index1] 、str2[index2]都不相同。
最长公共子序列的最后一个值和 str1[index1] 、str2[index2]其中一个相同。
这样就把问题拆分成了子问题,使用递归求解。
12345678910111213141516171819class Solution { public int longestCommonSubsequence(String te ...
图的问题模版
有关图的问题算法一般不是很复杂,难点一般在于数据结构,一张图可以用很多种的数据结构表达出来,相对应的同一种算法在不同的数据结构下面就有不同的表现。因此对于图问题有一个自己顺手的数据结构是很有必要的。当遇到不是自己顺手的数据结构可以手写转换器转换成自己熟悉的数据结构。以下是个人顺手的数据结构
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import java.util.*;class Node { public Integer value; /** * 入度 */ public int in; /** * 出度 */ public int out; public List<Node> next; public List<Edge> edges; public Node(Integer value) { thi ...