使用canal同步MySQL数据

一、MySQL配置 1.1 安装 MySQL 略 1.2 修改 my.ini 配置文件 1[mysqld] 2log-bin=mysql-bin # 开启binlog 3binlog-format=ROW # 选择row模式 4server_id=1 # serverid唯一 1.3 授权 1GRANTSELECT,REPLICATIONSLAVE,REPLICATIONCLIENTON*.*TO'canal'@'%'IDENTIFIEDBY'canal';2FLUSHPRIVILEGES;1.4 重启数据库 1service mysqld restart 二、部署 canal 2.1 安装 java 1yum -y install java 验证安装 1java -version 2openjdk version "1.8.0_312" 3OpenJDK Runtime Environment (build 1.8.0_312-b07) 4OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode) 2.2 下载 canal 1wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz 2mkdir -p /opt/canal/deploy 3tar xf canal.deployer-1.1.5.tar.gz -C /opt/canal/deploy 2.3 配置 canal 1cd /opt/canal/deploy 2vim conf/example/instance.properties 3################################################# 4## mysql serverId , v1.0.26+ will autoGen server-id 自动生成 5# canal.instance.mysql.slaveId=0 6 7#……

阅读全文

Kubernetes开启Swap支持

说明 Kubernetes-1.22 版本引入了 alpha 支持,用于在每个节点的基础上为 Kubernetes 工作负载配置交换内存使用。 在之前的版本中,Kubernetes 不支持在 Linux 上使用交换内存,因为当涉及交换时,很难保证和说明 pod 内存利用率。作为 Kubernetes 早期设计的一部分,交换支持被认为是超出范围的,如果在节点上检测到交换,kubelet 将默认……

阅读全文

Vitess 上手

简介 Vitess 是用于部署、扩展和管理大型 MySQL 实例集群的数据库解决方案。 特性 扩展性 Vitess 集 MySQL 数据库的很多重要特性和 NoSQL 数据库的可扩展性于一体。其内建拆分分片功能使您能够对您的 MySQL 数据库集群无限水平扩展,同时无需为应用添加分片逻辑。 性能 Vitess 自动重写对数据库性能有损害的查询。它还使用缓存机制来调解查询,并……

阅读全文

Kubernetes 创建普通账号

背景 经常有碰到这种需求: 给某个用户某一指定名称空间下的管理权限 给用户赋予集群的只读权限 … 前提 准备一个 Kubernetes 机群 了解 Kubernetes 的认证授权流程 Linux 下使用 openssl 创建自签证书 一、为用户创建证书 创建证书只是实现 Kubernetes 认证用,具体拥有什么样的权限取决于 RBAC 授权。也就是 Role、ClusterRole。 1.1 创建私钥 1cd /etc/kubernetes/pki……

阅读全文

使用kubeadm升级Kubernetes集群到1.22版本

查看当前版本 1kubectl get nodes -owide 1NAME STATUS ROLES AGE VERSION 2k8s-master Ready <none> 548d v1.20.8 3k8s-node1 Ready <none> 548d v1.20.8 4k8s-node2 Ready <none> 548d v1.20.8 k8s不支持跨多个版本升级,因此需要先升级到1.21 安装kubeadm-1.21.4 1yum -y install kubeadm-1.21.4 kubectl-1.21.4 kubelet-1.21.4 创建升级计划 1kubeadm upgrade plan 1.21.4 --ignore-preflight-errors=ControlPlaneNodesReady,swap 由于没有label标识master节点,需要加上--ignore-preflight-errors=C……

阅读全文

使用skywalking监控gin web服务

简介 SkyWalking是一个开源的 APM 系统,包括对 Cloud Native 架构中分布式系统的监控、跟踪、诊断能力。核心功能如下。 服务、服务实例、端点指标分析 根本原因分析。在运行时分析代码 服务拓扑图分析 服务、服务实例和端点依赖分析 检测到缓慢的服务和端点 性能优化 分布式跟踪和上下文传播 数据库访问指标。检测……

阅读全文

使用gin+websocket实现任务的实时日志

背景 由于工作需要,在web端执行相关的部署操作,能够在页面实时展示部署任务的实时日志信息,使用到websocket来实现。 websocket通信特点 全双工通信协议 允许服务端主动向客户端推送数据 浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输……

阅读全文

使用session保存用户信息

gin-contrib/session支持的存储引擎 cookie redis 安装session包 1go get github.com/gin-gonic/contrib/session 基于cookie的session 创建cookieStore并放到gin中间件中 1func cookieSession(r *gin.Engine) { 2 store := sessions.NewCookieStore([]byte("secret")) 3 r.Use(sessions.Sessions("SESSIONID", store)) 4} main.go函数调用cookieSession 1func main() { 2 r := gin.Default() 3 cookieSession(r) 4 r.GET("/login", func(ctx *gin.Context) { 5 user := ctx.Query("user") 6 if user == "" {……

阅读全文

使用casbin做基于RBAC的权限验证

概述 Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。 Casbin可以 支持自定义请求的格式,默认的请求格式为{subject, object, action}。 具有访问控制模型model和策略policy两个核心概念。 支持RBAC中的多层角色继承,不止主体可以……

阅读全文

使用viper读取配置文件并允许使用环境变量

viper简介 Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序。它旨在在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持: 设置默认值 从JSON、TOML、YAML、HCL、envfile和Java属性配置文件中读取 实时观看和重新读取配置文件(……

阅读全文