阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

基于阿里巴巴开源的分布式数据同步系统安装配置文档otter

440次阅读
没有评论

共计 13100 个字符,预计需要花费 33 分钟才能阅读完成。

otter 项目开源地址:https://github.com/alibaba/otter

canal 项目开源地址:https://github.com/alibaba/canal

我们的用这个系统的背景:主要是做异地容灾,可是我们需要的现网的数据需要同步到容灾区。

工作原理:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

原理描述:

1. 基于 Canal 开源产品,获取数据库增量日志数据。什么是 Canal, 请点击

2. 典型管理系统架构,manager(web 管理)+node(工作节点)

a. manager 运行时推送同步配置到 node 节点

b. node 节点将同步状态反馈到 manager 上

3. 基于 zookeeper,解决分布式状态调度的,允许多 node 节点之间协同工作.

组件解释:

canal:

什么是 canal?otter 之前开源的一个子项目,开源链接地址:http://github.com/alibaba/canal

定位:基于数据库增量日式解析,提供增量数据订阅 & 消费,目前主要支持了 mysql

工作原理:

原理相对简单:类似 MYSQL 原有的主从复制机制。

1.canal 模拟 mysql slave 的交互协议,伪装自己为 mysql slave,想 mysql master 发送 dump 协议

2.mysql master 收到 dump 请求,开始推送 binary log 给 slave(也就是 canal)

3.canal 解释 binary log 对象(原始为 byte 流)

相关文档:

See the wiki page for : wiki 文档

环境配置:

canal、otter 依赖 jdk 环境、node 依赖 aria2 启动:

apt-get update && apt-get install default-jdk aria2 -y

组件安装配置:

canal:

a. canal 原理基于 mysql  binlog 技术;需要 binlog 的支持,而且 log 的 format 格式为 ROW:

[mysqld]

log-bin=mysql-bin #添加这一行就 ok

binlog-format=ROW #选择 row 模式

server_id=1 #配置 mysql replaction 需要定义,不能和 canal 的 slaveId 重复

b. 授权 slave 同步:

CREATE USER canal IDENTIFIED BY ‘canal’;

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘canal’@’%’;

或者:GRANT ALL PRIVILEGES ON *.* TO ‘canal’@’%’ ;

FLUSH PRIVILEGES;

解压直接使用。

配置文件:

vi conf/example/instance.properties

#################################################

## mysql serverId

canal.instance.mysql.slaveId = 1234

# position info,需要改成自己的数据库信息

canal.instance.master.address = 127.0.0.1:3306  #指定 master 的 ip:port

canal.instance.master.journal.name =  #配置 binlog 的 file 可以不用配置(默认是以当前启动)

canal.instance.master.position =          #配置 binlog 的 postion 可以不用配置(默认是以当前启动)

canal.instance.master.timestamp =

#canal.instance.standby.address =

#canal.instance.standby.journal.name =

#canal.instance.standby.position =

#canal.instance.standby.timestamp =

# username/password,需要改成自己的数据库信息

canal.instance.dbUsername = canal    #配置为授权的账号

canal.instance.dbPassword = canal    #配置授权的密码

canal.instance.defaultDatabaseName =  #可以指定数据库

canal.instance.connectionCharset = UTF-8  #配置编码格式

# table regex

canal.instance.filter.regex = .*\\..*

#################################################

启动、停止:

bin/startup.sh  bin/stop.sh

zookeeper:

安装配置:

配置所有的 zk 主机的 hosts 文件

192.168.56.1  zk

192.168.56.2  re

192.168.56.3  yt

zk 配置文件:

vim conf/zoo.cfg

#################################################

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/usr/local/zk_cluster/zookeeper-3.4.6_node1/data  #目录需要创建

#dataLogDir

# the port at which the clients will connect

clientPort=2181                        #每一个节点的 port 也不一样

server.1=zk:2887:3892              #不管是前面的 port 还是后面的 port。每一个节点都不一样

server.2=zk:2888:3893

server.3=zk:2889:3894

server.4=re:3386:3388:observer  #远端的 zkobserver 角色

server.5=re:3387:3389:observer  #远端的 zkobserver 角色

server.6=yt:2892:3895:observer  #远端的 zkobserver 角色

# the maximum number of client connections.

# increase this if you need to handle more clients

observer 配置:

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

peerType=observer  #指定此节点为 observer 类型

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/usr/local/zk_cluster/zookeeper-3.4.6_node4/data

#dataLogDir

# the port at which the clients will connect

clientPort=2184

server.1=zk:2887:3892

server.2=zk:2888:3893

server.3=zk:2889:3894

server.4=re:2890:3890:observer

server.5=re:2891:3891:observer

server.6=yt:2892:3895:observer

# the maximum number of client connections.

# increase this if you need to handle more clients

启动、停止:

zookeeper-3.4.6_node4/bin/zkServer.sh start  zookeeper-3.4.6_node4/bin/zkServer.sh stop

注意:每一个节点都有一个唯一的 myid, 这个需要在 data 目录下创建一个 myid 文件并将本地节点对应的 server.x  x 的 id 写入 myid 中。data 目录需要建立哦

列如:第一个节点:

server.1=zk:2887:3892  只需要在 myid 文件中输入 1 即可

otter:

manager:

manager 是 web 管理界面,需要 mysql 数据库的支持,在 manager 上部署 mysql、授权。还需要原始的数据、载入原始数据;网上下载即可:

wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql

配置文件:

vim conf/otter.properties

## otter manager domain name #修改为正确访问 ip,生成 URL 使用

otter.domainName = 192.168.56.4    #配置访问的域名或者 ip

## otter manager http port

otter.port = 8080                        #配置 web 访问的 port

## jetty web config xml

otter.jetty = jetty.xml

## otter manager database config,修改为正确数据库信息

otter.database.driver.class.name = com.mysql.jdbc.Driver

otter.database.driver.url = jdbc:mysql://127.0.01:3306/ottermanager  #配置 manager 链接数据库

otter.database.driver.username = otter                                                #配置连接数据库的用户名

otter.database.driver.password = otter                                                #配置连接数据库的密码

## otter communication port

otter.communication.manager.port = 1099                                        #配置 node 链接的 port

## otter communication pool size

otter.communication.pool.size = 10

## default zookeeper address,修改为正确的地址,手动选择一个地域就近的 zookeeper 集群列表

otter.zookeeper.cluster.default = 192.168.56.1:2181,192.168.56.1 :2182,192.168.56.1:2183,192.168.56.2:3384,192.168.56.2:3385,192.168.56.3:2186  #配置一个就近的 zk 群集地址 写离 manager 最近的一个也可以 例 如:192.168.56.1:2181

## default zookeeper sesstion timeout = 90s

otter.zookeeper.sessionTimeout = 90000

## otter arbitrate connect manager config

otter.manager.address = ${otter.domainName}:${otter.communication.manager.port

启动、停止:

bin/startup.sh    bin/stop.sh

访问 url:

http://192.168.168.4:8080

默认账号密码:admin/admin

node:

vim conf/otter.properties

# otter node root dir

otter.nodeHome = ${user.dir}/../

## otter node dir

otter.htdocs.dir = ${otter.nodeHome}/htdocs

otter.download.dir = ${otter.nodeHome}/download

otter.extend.dir= ${otter.nodeHome}/extend

## default zookeeper sesstion timeout = 60s

otter.zookeeper.sessionTimeout = 60000

## otter communication pool size

otter.communication.pool.size = 10

## otter arbitrate & node connect manager config

otter.manager.address = 192.168.56.4:1099  # 指定 manager 的 ip:port

启动、停止:注:node 启动需要先配置 nid,下面解释。

bin/startup.sh  bin/stop.sh

注意:这里提到一个 nid,这是 node 唯一的标识 我们如何得到这个 nid 的标识号呢?这个在 manager 上面添加的 node 产生的,下面会提到。这个 nid 文件需要在 node 的 conf 目录;也是只是添加标识号即可。nid 位于 conf 目录下。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2016-05/131368p2.htm

上面的是配置说明,下面的是配置过程:环境背景是两个数据库同步到异地的两个数据库:A-C、B-D。一共用了 5 台主机,192.168.64.132~134、139、140。zk 部署在 192.168.64.132~134。134 部署 3 个实例,

132、133 各部署一个实例;实例类型为 observer。node 节点也是在 192.168.64.132~134 上各配置 1 个。134 配置 2 个 canal 实例和 manager。

192.168.64.132~133、192.168.64.139~140 分别各部署一个 MySQL 实例。同步规则:139->132、140->133 其他的配置这里不说,在 manager 上配置的时候,简单说明一下。这里的服务器内部环境配置跳过。

manager 配置:

操作步骤:

1. 添加 zk 群集

2. 添加 node

3. 添加数据库:

a. 源库 jdbc:mysql://192.168.64.139:3306

b. 目标  jdbc:mysql://192.168.64.132:3306

4. 添加同步表信息:

a. 源数据表    .*

b. 目标数据表  .*

5. 添加 canal:

a. 提供数据库 IP 信息

6. 添加 channel:

7. 添加 pipeline:

a. 选择 node 节点

b. 选择 canal

8. 添加同步映射规则

a. 定义源表和目标表的同步关系

9. 启动

10. 测试数据

添加 zk 群集:机器管理 -> 添加 zookeeper 管理:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

群集列表以逗号分隔,冒号结束

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

添加 node 节点:机器管理 -> 添加 node 管理:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

机器端口建议为 2088

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

红色方框中的需要就是我们上面所说的 nid 标识

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

我们把 nid 添加到服务器的 node 里面吧,启动一下 node

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

添加数据库:这里使用默认的 test 库。源和目标库都要有相应的库:

字符集:

[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8

表:

CREATE TABLE `user` (

`id` int(11) NOT NULL auto_increment COMMENT ‘ 用户 ID’,

`name` varchar(50) NOT NULL default ” COMMENT ‘ 名称 ’,

`sex` int(1) NOT NULL default ‘0’ COMMENT ‘0 为男,1 为女 ’,

PRIMARY KEY  (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

配置数据表:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

无论是目标还是源,都要有一样的库表存在

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

添加 canal:

这里是在一个服务器配置两个 canal 实例:需要考虑到 id、port 冲突:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

添加 channel:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

添加 pipelin:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

添加同步映像规则:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

开启同步:

测试数据:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

多个实例和单个实例都是一样的,在这个环境中;两个源库,用的是两个 canal 模拟 slave。不同的库关联相对应的 canal、node,即可。这里我们又想到,上面的实例只是单个库 —> 单个库。

若是多个库呢?如何破?其实都是一样的,我们可以在同一个 channal–> Pipeline–> 映射表;添加映射表即可。也可以做一个库表对应一个 channal–> Pipeline–> 映射表。方法有很多。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-05/131368.htm

otter 项目开源地址:https://github.com/alibaba/otter

canal 项目开源地址:https://github.com/alibaba/canal

我们的用这个系统的背景:主要是做异地容灾,可是我们需要的现网的数据需要同步到容灾区。

工作原理:

基于阿里巴巴开源的分布式数据同步系统安装配置文档 otter

原理描述:

1. 基于 Canal 开源产品,获取数据库增量日志数据。什么是 Canal, 请点击

2. 典型管理系统架构,manager(web 管理)+node(工作节点)

a. manager 运行时推送同步配置到 node 节点

b. node 节点将同步状态反馈到 manager 上

3. 基于 zookeeper,解决分布式状态调度的,允许多 node 节点之间协同工作.

组件解释:

canal:

什么是 canal?otter 之前开源的一个子项目,开源链接地址:http://github.com/alibaba/canal

定位:基于数据库增量日式解析,提供增量数据订阅 & 消费,目前主要支持了 mysql

工作原理:

原理相对简单:类似 MYSQL 原有的主从复制机制。

1.canal 模拟 mysql slave 的交互协议,伪装自己为 mysql slave,想 mysql master 发送 dump 协议

2.mysql master 收到 dump 请求,开始推送 binary log 给 slave(也就是 canal)

3.canal 解释 binary log 对象(原始为 byte 流)

相关文档:

See the wiki page for : wiki 文档

环境配置:

canal、otter 依赖 jdk 环境、node 依赖 aria2 启动:

apt-get update && apt-get install default-jdk aria2 -y

组件安装配置:

canal:

a. canal 原理基于 mysql  binlog 技术;需要 binlog 的支持,而且 log 的 format 格式为 ROW:

[mysqld]

log-bin=mysql-bin #添加这一行就 ok

binlog-format=ROW #选择 row 模式

server_id=1 #配置 mysql replaction 需要定义,不能和 canal 的 slaveId 重复

b. 授权 slave 同步:

CREATE USER canal IDENTIFIED BY ‘canal’;

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘canal’@’%’;

或者:GRANT ALL PRIVILEGES ON *.* TO ‘canal’@’%’ ;

FLUSH PRIVILEGES;

解压直接使用。

配置文件:

vi conf/example/instance.properties

#################################################

## mysql serverId

canal.instance.mysql.slaveId = 1234

# position info,需要改成自己的数据库信息

canal.instance.master.address = 127.0.0.1:3306  #指定 master 的 ip:port

canal.instance.master.journal.name =  #配置 binlog 的 file 可以不用配置(默认是以当前启动)

canal.instance.master.position =          #配置 binlog 的 postion 可以不用配置(默认是以当前启动)

canal.instance.master.timestamp =

#canal.instance.standby.address =

#canal.instance.standby.journal.name =

#canal.instance.standby.position =

#canal.instance.standby.timestamp =

# username/password,需要改成自己的数据库信息

canal.instance.dbUsername = canal    #配置为授权的账号

canal.instance.dbPassword = canal    #配置授权的密码

canal.instance.defaultDatabaseName =  #可以指定数据库

canal.instance.connectionCharset = UTF-8  #配置编码格式

# table regex

canal.instance.filter.regex = .*\\..*

#################################################

启动、停止:

bin/startup.sh  bin/stop.sh

zookeeper:

安装配置:

配置所有的 zk 主机的 hosts 文件

192.168.56.1  zk

192.168.56.2  re

192.168.56.3  yt

zk 配置文件:

vim conf/zoo.cfg

#################################################

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/usr/local/zk_cluster/zookeeper-3.4.6_node1/data  #目录需要创建

#dataLogDir

# the port at which the clients will connect

clientPort=2181                        #每一个节点的 port 也不一样

server.1=zk:2887:3892              #不管是前面的 port 还是后面的 port。每一个节点都不一样

server.2=zk:2888:3893

server.3=zk:2889:3894

server.4=re:3386:3388:observer  #远端的 zkobserver 角色

server.5=re:3387:3389:observer  #远端的 zkobserver 角色

server.6=yt:2892:3895:observer  #远端的 zkobserver 角色

# the maximum number of client connections.

# increase this if you need to handle more clients

observer 配置:

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

peerType=observer  #指定此节点为 observer 类型

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/usr/local/zk_cluster/zookeeper-3.4.6_node4/data

#dataLogDir

# the port at which the clients will connect

clientPort=2184

server.1=zk:2887:3892

server.2=zk:2888:3893

server.3=zk:2889:3894

server.4=re:2890:3890:observer

server.5=re:2891:3891:observer

server.6=yt:2892:3895:observer

# the maximum number of client connections.

# increase this if you need to handle more clients

启动、停止:

zookeeper-3.4.6_node4/bin/zkServer.sh start  zookeeper-3.4.6_node4/bin/zkServer.sh stop

注意:每一个节点都有一个唯一的 myid, 这个需要在 data 目录下创建一个 myid 文件并将本地节点对应的 server.x  x 的 id 写入 myid 中。data 目录需要建立哦

列如:第一个节点:

server.1=zk:2887:3892  只需要在 myid 文件中输入 1 即可

otter:

manager:

manager 是 web 管理界面,需要 mysql 数据库的支持,在 manager 上部署 mysql、授权。还需要原始的数据、载入原始数据;网上下载即可:

wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql

配置文件:

vim conf/otter.properties

## otter manager domain name #修改为正确访问 ip,生成 URL 使用

otter.domainName = 192.168.56.4    #配置访问的域名或者 ip

## otter manager http port

otter.port = 8080                        #配置 web 访问的 port

## jetty web config xml

otter.jetty = jetty.xml

## otter manager database config,修改为正确数据库信息

otter.database.driver.class.name = com.mysql.jdbc.Driver

otter.database.driver.url = jdbc:mysql://127.0.01:3306/ottermanager  #配置 manager 链接数据库

otter.database.driver.username = otter                                                #配置连接数据库的用户名

otter.database.driver.password = otter                                                #配置连接数据库的密码

## otter communication port

otter.communication.manager.port = 1099                                        #配置 node 链接的 port

## otter communication pool size

otter.communication.pool.size = 10

## default zookeeper address,修改为正确的地址,手动选择一个地域就近的 zookeeper 集群列表

otter.zookeeper.cluster.default = 192.168.56.1:2181,192.168.56.1 :2182,192.168.56.1:2183,192.168.56.2:3384,192.168.56.2:3385,192.168.56.3:2186  #配置一个就近的 zk 群集地址 写离 manager 最近的一个也可以 例 如:192.168.56.1:2181

## default zookeeper sesstion timeout = 90s

otter.zookeeper.sessionTimeout = 90000

## otter arbitrate connect manager config

otter.manager.address = ${otter.domainName}:${otter.communication.manager.port

启动、停止:

bin/startup.sh    bin/stop.sh

访问 url:

http://192.168.168.4:8080

默认账号密码:admin/admin

node:

vim conf/otter.properties

# otter node root dir

otter.nodeHome = ${user.dir}/../

## otter node dir

otter.htdocs.dir = ${otter.nodeHome}/htdocs

otter.download.dir = ${otter.nodeHome}/download

otter.extend.dir= ${otter.nodeHome}/extend

## default zookeeper sesstion timeout = 60s

otter.zookeeper.sessionTimeout = 60000

## otter communication pool size

otter.communication.pool.size = 10

## otter arbitrate & node connect manager config

otter.manager.address = 192.168.56.4:1099  # 指定 manager 的 ip:port

启动、停止:注:node 启动需要先配置 nid,下面解释。

bin/startup.sh  bin/stop.sh

注意:这里提到一个 nid,这是 node 唯一的标识 我们如何得到这个 nid 的标识号呢?这个在 manager 上面添加的 node 产生的,下面会提到。这个 nid 文件需要在 node 的 conf 目录;也是只是添加标识号即可。nid 位于 conf 目录下。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2016-05/131368p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计13100字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7956540
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...