买域名需要备案吗/上海网站seo策划
文章目录
- 0. 环境介绍
- 0. 前置步骤
- 1. 安装Kibana和Elasticsearch
- 2. 安装Canal和Canal Adapter
- 2.1 修改数据库配置
- 2.1.1 修改配置
- 2.1.2 验证mysql binlog配置
- 2.1.3 查看日志文件
- 2.1.4 用JDBC代码插入数据库
- 2.2 安装Canal Server
- 2.3 安装Canal Adapter
- 修改两处配置文件
- 配置文件取消注释一定要自己手动删除`#`,不要用快捷键。否则***会导致文件格式出问题***
参考
ClientAdapter: Canal的Adapter配置项目
Sync ES:Canal的Adapter中ES同步的配置项
使用 Docker 部署 canal 服务
docker canal-server canal-adapter mysql
Canal(基于Docker同步mysql数据到elasticsearch)
Canal部署过程中的错误
0. 环境介绍
- Canal 1.1.4
- Canal Adapter 1.1.4
- Kibana: 6.8.8
- ElasticSearch: 6.4.3
由于Canal 1.1.4只能适配 ElasticSearch: 6.4.3,因此使用了上述的版本。
Kibana选择 6.8.8是因为他可以用中文?但我没有配置成功。此外Kibana的6.8可以和ES6.4结合。其他情况下需要版本一一对应
关于Kibana和ES的版本对应以及中文设置问题,可以参考
- Kibana 汉化相关配置 i18n 及版本问题
- Kibana将语言设置为中文
- Elasticsearch和Kibana版本对应关系
0. 前置步骤
dokcer服务网络准备
参考让ELK在同一个docker网络下通过名字直接访问, 首先用docker设置一个网络,以后所有相关的容器都放到这里。
docker network create mynetwork
ES的内存准备
命令行输入
sysctl -w vm.max_map_count=262144
1. 安装Kibana和Elasticsearch
参考我之前的博客Ubuntu服务器ELK部署与实践。
注:不同的版本对应的配置方案也需要修改,我的修改有:
Kibana修改
原配置(7.8.0)
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elasticsearch:9200"]
# 操作界面语言设置为中文
i18n.locale: "zh-CN"
现配置(6.8.8)
server.port: 5601
server.host: "0.0.0.0"
server.basePath: "/kibana" # 这个是用来配置nginx访问用的
# server.host: "127.0.0.1"
# 注意看这里的参数变了
elasticsearch.url: "http://elasticsearch:9200"
# 操作界面语言设置为中文
# 6.4不支持
# i18n.locale: "zh-CN"
此外,由于版本变更,相关的API也发生了变更,请多多留意
Create index API 7.8.0
Create index 6.4
数据来自Kaggle的新闻,因此按照数据字段名称,新建如下字段
PUT news_2
{"mappings": {"_doc": {"properties": {"id": {"type": "text","index": true},"title": {"type": "text","analyzer": "ik_max_word"},"_desc": {"type": "text","analyzer": "ik_max_word"},"image": {"type": "text","analyzer": "ik_max_word"},"url": {"type": "text","analyzer": "ik_max_word"},"news_source": {"type": "text","analyzer": "ik_max_word"},"_date": {"type": "date"}}}}
}
2. 安装Canal和Canal Adapter
Canal是用来做数据库slave的,他的原理就是读取数据库的日志文件,实现实时同步(相比logstash的cron表达式可以更加实时)。
2.1 修改数据库配置
2.1.1 修改配置
首先新建数据库的docker镜像
docker run -p 3306:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
接下来去/data/mysql/conf
路径下,新建my.cnf
文件,输入以下内容
[mysqld]
#binlog setting
log-bin=mysql-bin # 开启logbin
binlog-format=ROW # binlog日志格式
server-id=1 # mysql主从备份serverId,canal中不能与此相同
docker restart重启mysql
2.1.2 验证mysql binlog配置
新建新闻表
CREATE SCHEMA MyTest;use MyTest;create table News
(
id INT(11),
title VARCHAR(2125),
desc VARCHAR(2125),
image VARCHAR(2125),
url VARCHAR(2125),
source VARCHAR(2125),
date Date
)DEFAULT CHARSET=utf8;
检查该新闻表的状态
mysql -u root -p // mysql登录
>show databases;
>use MyTest; // 开启数据库
>show variables like 'log_%';
>show variables like 'binlog_format';
>show master status; // binlog日志文件 mysql-bin.000001
>reset master; // 重置日志
以下截图来自https://blog.csdn.net/qq_32836247/article/details/116561732,展示了应有的配置结果
2.1.3 查看日志文件
cd /var/lib/mysql // 进入日志文件目录
mysqlbinlog -vv mysql-bin.000001 // row格式查看日志
2.1.4 用JDBC代码插入数据库
这个就自己实现吧。不用全部插入,因为Adapter要基于新的日志和ES同步。
2.2 安装Canal Server
首先安装canal-server,复制配置文件到外面
# 启动docker
docker pull canal/canal-server:v1.1.4
docker run --name canal-server -id canal/canal-server:v1.1.4# 复制配置文件
docker cp canal-server:/home/admin/canal-server/conf/ /data/canal_/canal
docker cp canal-server:/home/admin/canal-server/logs/ /data/canal_/canal# 删除并重新启动
docker stop canal-server && docker rm canal-serverdocker run --name canal -p 11111:11111 \
-v /data/canal_/canal/conf/example/instance.properties:/home/admin/canal-server/conf/example/instance.properties \
-v /data/canal_/canal/conf/canal.properties:/home/admin/canal-server/conf/canal.properties \
-v /data/canal_/canal/logs/:/home/admin/canal-server/logs/ \
--network mynetwork \ # 这个是我“让ELK在同一个docker网络下通过名字直接访问”博客中新建的网络,以后所有127.0.0.1都写成docker的name就可以
-d canal/canal-server:v1.1.4
修改Server配置文件example/instance.properties
注意,canal.properties
中的destination要和后续的Canal Adapter保持一致
验证服务是否启动成功
docker exec -it [c_id]/bin/bash
cd canal-server/bin/
./start.sh // 启动服务
cd canal-server/logs/example/
tail -100f example.log // 查看日志
2.3 安装Canal Adapter
# 启动docker
docker pull slpcat/canal-adapter:v1.1.4
docker run --name canal-adapter -id slpcat/canal-adapter:v1.1.4# 复制配置文件
docker cp canal-adapter:/opt/canal-adapter/conf /data/canal_/canal-dapter
docker cp canal-adapter:/opt/canal-adapter/logs /data/canal_/canal-dapter# 删除并重新启动
docker stop canal-adapter && docker rm canal-adapterdocker run --name canal-adapte -p 8081:8081 \
-v /data/canal_/canal-dapter/conf:/opt/canal-adapter/conf \
-v /data/canal_/canal-dapter/logs:/opt/canal-adapter/logs \
--network mynetwork \
-d slpcat/canal-adapter:v1.1.4
修改两处配置文件
配置文件取消注释一定要自己手动删除#
,不要用快捷键。否则会导致文件格式出问题
配置文件详解
ClientAdapter: Canal的Adapter配置项目 application.ym(application.yml)
Sync ES:Canal的Adapter中ES同步的配置项 (user.yml)
修改配置文件application.yml
。
name logger就是在发生数据修改的时候,直接实时更新到log中,如下图
修改完上述配置,可以看到name为es的canalAdapters被启动了。因此要去es文件夹下修改,注意以下字段的配置。目前只是能够运行起来,至于业务实际应用可能还有待验证。
相关文章:

使用 Docker 部署 canal 服务实现MySQL和ES实时同步
文章目录 0. 环境介绍0. 前置步骤1. 安装Kibana和Elasticsearch2. 安装Canal和Canal Adapter2.1 修改数据库配置2.1.1 修改配置2.1.2 验证mysql binlog配置2.1.3 查看日志文件2.1.4 用JDBC代码插入数据库 2.2 安装Canal Server2.3 安装Canal Adapter修改两处配置文件配置文件取…...

const易错详解
const对比 常量指针 int b; (1)const int *a &b;//常量指针(2)int const *a &b; //常量指针常量指针:指向的变量值不能被修改 
网络安全—黑客技术【自学】
一、黑客是什么 原是指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。但后来,黑客一词已被用于泛指那些专门利用电脑网络搞破坏或者恶作剧的家伙。 二、学习黑客技术的原因 其实,网络信息空间安全已经成为海陆空之…...

作为数据产品经理的一天
数据产品经理作为这两年大数据行业的热门职业,经常有小伙伴会问我数据产品经理是做什么的,给大家简单讲下作为数据产品经理的一天是怎么度过得,算是一篇记录文吧,看完或许大家对这个职业的了解会更深入一些。 01 早上10点&#…...

Rust 编程小技巧摘选(7)
Rust 编程小技巧(7) 1. 结构体 Display trait 结构体的两种形式,对应的成员取法不同; 前者用 self.成员变量名 self.x, self.y;后者用 self.成员索引号 self.0, self.1, self.2, ...... use std::fmt::Display; use std::fmt::Result; us…...

爬虫程序中使用爬虫ip的优势
作为一名爬虫技术员,我发现在爬虫程序中使用代理IP可以提升爬取效率和匿名性。今天,我就来详细讲解一下代理IP在爬虫程序中的工作原理及应用。 首先,我们来了解一下代理IP在爬虫程序中的工作原理。当我们使用爬虫程序进行数据采集时…...

json-server的入门
由于前端开发的时候,需要向后端请求数据,有的时候后端还没有准备好,所以需要使用一些简单的静态数据,但是我们更加希望能够模拟请求以及请求回来的过程,这个时候就需要使用json-server Json-Server的介绍 json-server…...

uniapp调查问卷评价功能
我本来用的是uniapp官方提供的组件uni-rate组件,但修改成我想要的样式有点麻烦,于是我就自己手写一个,比用组件简单一点; dom结构 <text class"formTit must">请您对本次活动进行评价</text> <view cl…...

Centos Linux带进度条复制(同步)文件和文件夹
centos linux 内建文件复制/备份命令 rsync 目的:我想从一个磁盘复制一堆文件到另一个磁盘,不希望改变文件的属性(尤其是所有者、还有创建时间、修改时间),最好还得能给我显示进度条。文件太多了,好几百GB…...

从数据仓库到数据结构:数据架构的演变之路
在上个世纪,从电子商务巨头到医疗服务机构和政府部门,数据已成为每家组织的生命线。有效地收集和管理这些数据可以为组织提供宝贵的洞察力,以帮助决策,然而这是一项艰巨的任务。 尽管数据很重要,但CIOinsight声称&…...

kafka-2.12使用记录
kafka-2.12使用记录 安装kafka 2.12版本 下载安装包 根据你的系统下载rpm /deb /zip包等等, 这里我使用的是rpm包 安装命令 rpm -ivh kafka-2.12-1.nfs.x86_64.rpm启动内置Zookeeper 以下命令要写在同一行上 /opt/kafka-2.12/bin/zookeeper-server-start.sh /opt/kafka-2…...

C++笔记之将定时器加入向量并设置定时器的ID为i
C笔记之将定时器加入向量并设置定时器的ID为i code review! 文章目录 C笔记之将定时器加入向量并设置定时器的ID为i关于代码中的void operator()() 运行 代码 #include <chrono> #include <iostream> #include <thread> #include <vector>// 定义定时…...

将一组元素四舍五入到指定精度(小数位数)numpy.around()
【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将一组元素四舍五入 到指定精度(小数位数) numpy.around() [太阳]选择题 关于以下代码说法错误的一项是? import numpy as np anp.array([21.3,9.67,8.5, -1.13, -2.67]) print(【显示】a为…...

tinyint这个值在MySQL中的值有哪些
在MySQL中,TINYINT是一种整数数据类型,用于存储小范围的整数值。它占用1个字节的存储空间,可以表示的值范围是从-128到127(有符号)或者从0到255(无符号)。 以下是在MySQL中使用TINYINT数据类型…...

JVM 内存结构
1、方法区(线程共享) 存储静态变量(静态方法、变量、代码块)、常量池、类信息 2、堆信息(线程共享) 存储实例对象,例如 new 出来的对象信息 A a1 new A() 3、虚拟机栈(线程隔离) 每个线程的都有…...

基于百度语音识别API智能语音识别和字幕推荐系统——深度学习算法应用(含全部工程源码)+测试数据集
目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 翻译3. 格式转换4. 音频切割5. 语音识别6. 文本切割7. main函数 系统测试工程源代码下载其它资料下载 前言 本项目基于百度语音识别API,结合了语音识别、视频转换音频识别以及语句停顿…...

数字万用表测量基础知识--使用DMM测量电流
概览 DMM(即数字万用表)是一种电气测试和测量仪器,可测量直流和交流信号的电压、电流和电阻。本文介绍如何正确使用和理解数字万用表(DMM)。 使用DMM测量电流 另一个常见的测量功能是直流和交流电流测量。电压是通过与电路并联进行测量&am…...

【BASH】回顾与知识点梳理(二十)
【BASH】回顾与知识点梳理 二十 二十. 十六至十九章知识点总结及练习20.1 总结20.2 练习 该系列目录 --> 【BASH】回顾与知识点梳理(目录) 二十. 十六至十九章知识点总结及练习 20.1 总结 shell script 是利用 shell 的功能所写的一个『程序 (prog…...

Arduino驱动SGP40空气质量传感器(气体传感器篇)
目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序 SGP40空气质量传感器是业内知名的瑞士公司Sensirion推出的新一代SGP40数字VOC传感器芯片。基于Sensirion的CMOSens技术,SGP40在单个芯片上提供了完整的传感器系统,包括温控微加热板和室内空气质量…...

识别和应对内存抖动
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、案例分析3.1 使用memory-profiler3.2 使用 cp…...

3.3用于共享数据保护的替代工具
用于共享数据保护的替代工具 虽然互斥元是最通用的机制,但提到保护共享数据时,它们并不是唯一的选择;还有别的替代品,可以在特定情况下提供更恰当的保护。 一个特别极端(但却相当常见)的情况,…...

探索数据之美:初步学习 Python 柱状图绘制
文章目录 一 基础柱状图1.1 创建简单柱状图1.2 反转x和y轴1.3 数值标签在右侧1.4 演示结果 二 基础时间线柱状图2.1 创建时间线2.2 时间线主题设置取值表2.3 演示结果 三 GDP动态柱状图绘制3.1 需求分析3.2 数据文件内容3.3 列表排序方法3.4 参考代码3.5 运行结果 一 基础柱状图…...

647. 回文子串
boolean默认类型是false class Solution {public int countSubstrings(String s) {if(s null) return 0;int result 0;int length s.length();boolean[][] dp new boolean[length][length];for(int j0;j<length;j){for(int i0;i<j;i){if(s.charAt(i) s.charAt(j)){i…...

cmake (更新中)
概述 关于 CMake CMake 是一个可扩展的开源系统,以一种与操作系统和编译器无关的方式来管理构建过程。与许多跨平台系统不同,CMake 被设计为与本机构建环境配合使用。在每个源代码目录中放置简单的配置文件(称为 CMakeLists.txt 文件…...

【go语言基础】指针数组和数组指针
1.概念 (1)指针数组: 存储指针的数组,也叫存储地址的数组,简单说就是存储地址的。 首先它是一个数组,数组中的元素都是指针(地址)。 (2)数组指针…...

ModaHub魔搭社区——Milvus Cloud向量数据库
向量数据库:在AI时代的快速发展与应用 摘要: 随着人工智能技术的不断进步,向量数据库在处理大规模数据方面发挥着越来越重要的作用。本文介绍了向量数据库的基本概念、应用场景和技术挑战,并详细阐述了Milvus Cloud作为典型的向量数据库产品的技术特点、性能优化和应用案例…...

【Java】常用Stream API
常见 Stream 流表达式 总体结构图 一、两大类型 中间操作(Intermediate Operations) 中间操作是指在Stream上执行的操作, 它们返回一个新的Stream, 允许你链式地进行多个中间操作. 终端操作(Terminal Operations) 对Stream进行最终处理的操作, 当调用终端操作时, Stream会开始执…...

P1941 [NOIP2014 提高组] 飞扬的小鸟
代码部分前有一千六百字了 P1941 [NOIP2014 提高组] 飞扬的小鸟 考察对背包 dp 算法过程理解的透彻性。过程透彻性也是解决所有问题的关键(建立在算法已学的基础上)。 n , m n,m n,m 的范围足够我们 O ( n m ) O(nm) O(nm) 的遍历整个地图。设 f i , …...

Vue3+Element plus+pageHelper实现分页
安装element plus npm install element-plus --save引入 修改main.js: import { createApp } from vue import App from ./App.vue import ElementPlus from element-plus import element-plus/dist/index.cssconst app createApp(App) app.use(ElementPlus) ap…...
外贸路上那些哭笑不得的事情
前几天一个老顾客在软件上联系,说自己上次的订货体验很满意,货物的质量很好,而且服务和回复也很及时, 比起他之前的供货商要好很多,他之前的供货商虽然货物的质量也很好,但是每次询问问题都是要等好久才给…...