酷客365
  • 首页
  • AI
  • 前端
  • 服务器
  • Java
  • PHP
  • 关于我
  • 首页
  • AI
  • 前端
  • 服务器
  • Java
  • PHP
  • 关于我
  1. 首页
  2. golang
  3. 文章列表
golang类似canal监听MySQL的binlog变更进行数据库多活部署

golang golang类似canal监听MySQL的binlog变更进行数据库多活部署

前言 假期在家学习技术,最近用一些小厂的VPS由于小厂不大稳定会做MySQL多活的配置,但是目前没有找到很好的工具做MySQL之间的同步的工作所以就做了这么一个小工具,上图是我引入的库,下面是一些关键代码 关键代码 package main import ( "database/sql" "fmt" "github.com/go-mysql-org/go-mysql/canal" "github.com/go-mysql-org/go-mysql/mysql" "github.com/go-mysql-org/go-mysql/replication" _ "github.com/go-sql-driver/mysql" // 导入 MySQL 驱动 "github.com/spf13/viper" "log" "os" "strings" "time" ) var g…

4次阅读 0个评论
golang 五天前
golang 适配器 单例模式

golang golang 适配器 单例模式

场景 代码层面的单进单出 比如我要指定一个短信供应商,并且整个程序都使用该供应商 比如我要指定一个缓存适配器,并且整个程序都使用该适配器 比如原来已经有写一个短信供应商,我需要进行重写,又不想修改原来的代码 下面我们以短信为例 根目录下 main.go 文件(位置1) package main import ( "fmt" "test/aliSms" "test/sms" "test/tencentSms" ) func main() { sms.SetAdapter(&aliSms.Adapter{}) fmt.Printf("output: %s \n", sms.GetAdapter().SendSms()) sms.SetAdapter(&tencentSms.Adapter{}) fmt.Printf("output: %s \n", sms.GetAdapter().SendSms()) } sms目录下 main.go 文件 (位置2) …

15次阅读 0个评论
golang 2024-08-29
golang 适配器模式 简单示例记录

golang golang 适配器模式 简单示例记录

package main import ( "fmt" ) // Target 是客户端期望的接口 type Target interface { Request() string } // Adaptee1 是第一个需要适配的类 type Adaptee1 struct{} func (a *Adaptee1) SpecificRequest1() string { return "Called SpecificRequest1()" } // Adapter1 是第一个适配器类 type Adapter1 struct { adaptee *Adaptee1 } func (adapter *Adapter1) Request() string { return adapter.adaptee.SpecificRequest1() } // Adaptee2 是第二个需要适配的类 type Adaptee2 struct{} func (a *Adaptee2) SpecificRequest2() string { return &quot…

19次阅读 0个评论
golang 2024-08-27
Linux shell 通过环境变量方式启动golang 程序记录

golang Linux shell 通过环境变量方式启动golang 程序记录

golang程序中使用 os.LookupEnv 获取环境变量时,在Linux下启动golang程序时可以使用 export VAR=b 来赋值 shell 使用时整体示例 #!/bin/bash export HTTP_ADDR=0.0.0.0:39033 export DEBUG=true ./xxx

11次阅读 0个评论
golang 2024-06-16
golang 网页截屏开发

golang golang 网页截屏开发

最近在做一个网页截屏的功能,通过搜索,找到一个golang下不需要下载Chrome的网页截图的功能,主要是依靠 github.com/chromedp/chromedp 这个库来处理。 github.com/chromedp/chromedp 库简单使用方法在这里记录一下: ctx, cancel := chromedp.NewContext(context.Background()) defer cancel() chromedp.Run(ctx, chromedp.ActionFunc(func(ctx context.Context) error { _, err := domain.SomeAction().Do(ctx) return err }))

15次阅读 0个评论
golang 2024-06-15
golang 枚举 使用示例

golang golang 枚举 使用示例

package main import ( "fmt" ) // 定义枚举类型 NicFlag type NicFlag uint // 枚举常量定义 const ( FlagUp NicFlag = 1 << iota // FlagUp=1 FlagBroadcast // FlagBroadcast=2 FlagLoopback // FlagLoopback=4 FlagPointToPoint // FlagPointToPoint=8 FlagMulticast // FlagMulticast=16 ) // 提供一个全局字典,用于存储枚举名称与枚举值之间的对应关系 var flagNames = map[NicFlag]string{ FlagUp: "up", FlagBroadcast: "broadcast", FlagLoopback: "loopback", // … 其他枚举值的映射 FlagPointToPoint: "pointtopoint&quo…

28次阅读 0个评论
golang 2024-03-22
一个golang 基于 interface 链式调用的示例

golang 一个golang 基于 interface 链式调用的示例

// 定义一个接口,包含一个接收者为接口类型的方法,该方法返回接口自身以便于链式调用 type Chainable interface { DoSomething() Chainable DoSomething2() Chainable } // 假设我们有两个不同的结构体,它们各自实现了Chainable接口 type Step1 struct{} func (s *Step1) DoSomething() Chainable { fmt.Println("执行 Step1 的操作") return s } func (s *Step1) DoSomething2() Chainable { fmt.Println("执行 Step2 的操作") return s } func main() { // 开始链式调用 chain := &Step1{} chain.DoSomething().DoSomething2() }

15次阅读 0个评论
golang 2024-02-27
Server Send Event 类似ChatGPT返回消息接收golang版

golang Server Send Event 类似ChatGPT返回消息接收golang版

Client Side: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>服务器发送事件</title> </head> <body> <h1>获取服务器更新</h1> <div id="result"></div> </body> <script> if (typeof(EventSource) !== "undefined") { //创建新的EventSource对象,然后发送更新页面的URL. //每接收一次更新,就触发message事件,添加onmessage事件处理程序. //最后将接收到的数据输入到页面.event对象的data属性中保存着更新的数据. var source = new EventSource("http://1…

12次阅读 0个评论
golang 2023-09-05
golang 处理富文本内容img,为src增加前缀

golang golang 处理富文本内容img,为src增加前缀

// 用到的库 github.com/PuerkitoBio/goquery // 为 content 里面的 img src 增加前缀 // contont 内容 // profix 图片前缀 func replaceContentImgSrc(contont, profix string) (string, error) { doc, err := goquery.NewDocumentFromReader(strings.NewReader(contont)) if err != nil { return "", err } doc.Find("img").Each(func(i int, selection *goquery.Selection) { imgSrc, ok := selection.Attr("src") if ok { selection.SetAttr("src", profix+imgSrc) } }) html, err := doc.Html() if err != nil…

9次阅读 0个评论
golang 2022-01-21
go-zero项目整套解决方案(转)

golang go-zero项目整套解决方案(转)

我现在一个项目 完全go-zero开发, 已经实现的用到技术栈 nginx做网关,统一auth鉴权 go-zero用http+grpc开发微服务业务(go-zero内部自适应限流、熔断) filebeat收集日志—> kafka —>gostash(代替logstash,go-zero作者开发的)上报数据到—->elasticsearch prometheus 监控go-zero的http、grpc服务(go-zero内部已封装好,直接配置就可以用) jager做链路追踪(go-zero内部已封装好,直接配置就可以用) 消息队列go-queue(kq的kafka,go-zero作者开发的) 定时任务、延时任务 asynq (这里也可以用go-queue的dq,go-zero作者开发的) 分布式事务 go-zero集成dtm 阿里云镜像服务,阿里云效做cicd , 直接发到阿里云k8s

9次阅读 0个评论
golang 2021-12-22
golang 编译时,报错 missing go.sum entry解决方法

golang golang 编译时,报错 missing go.sum entry解决方法

增加参数即可 go build -mod=mod

71次阅读 0个评论
golang 2021-07-26
另外一个版本的Dockerfile,记录一下,用于编译golang 的

golang 另外一个版本的Dockerfile,记录一下,用于编译golang 的

# builder FROM golang:alpine AS builder ENV GO111MODULE=on  ENV GOPROXY="https://goproxy.cn" WORKDIR /go/src/app COPY . . RUN go build . # runner FROM alpine:latest WORKDIR /root/ COPY –from=builder /go/src/app . ENV TZ=Asia/Shanghai EXPOSE 8001 ENTRYPOINT ["./main"]

133次阅读 0个评论
golang 2021-07-02
centos 7 下yum方式安装最新的golang环境

golang centos 7 下yum方式安装最新的golang环境

首先导入go的yum源 rpm –import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo 执行安装操作 yum install golang -y 验证版本 go version

146次阅读 0个评论
golang 2021-06-30
drone部署go项目的一些示例记录

golang drone部署go项目的一些示例记录

.drone.yml 文件 kind: pipeline type: docker name: default steps: – name: 编译 image: golang:1.16.5-alpine pull: if-not-exists environment: GOPROXY: https://mirrors.aliyun.com/goproxy/ commands: – CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . – name: 构建镜像 image: plugins/docker pull: if-not-exists settings: mirror: https://xxxx.mirror.aliyuncs.com # 我自己的加速地址 purge: false username: from_secret: docker_user # 在 drone 的 secret 里面设置的变量 password: from_secret: docker_pass # 在 drone 的 sec…

118次阅读 0个评论
golang 2021-06-29
golang通过docker部署的Dockerfile

golang golang通过docker部署的Dockerfile

FROM golang:1.16.5-alpine WORKDIR /build COPY ./ /build RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . FROM alpine:latest LABEL maintainer="eric chan" ############################################################################### # INSTALLATION ############################################################################### # 使用国内alpine源 # RUN echo http://mirrors.ustc.edu.cn/alpine/v3.8/main/ > /etc/apk/repositories RUN echo http://mirrors.aliyun.com/alpine/v3…

124次阅读 0个评论
golang 2021-06-25
  • 1
  • 2
  • »
Eric chan  QQ:80148096 微信:heise2012
Eric chan QQ:80148096 微信:heise2012
99年开始上网 01年开始搞《江湖》 04年学PHP 07年学C# 08年毕业后从事IT相关工作 工作期间接触各种语言服务器等,目前属于自由工作者。 目前后台主要使用的语言是PHP、GO、Java 前端包括混合APP技术(uniapp、apicloud)都有开发过。 使用PHP自行开发了一套基础商城框架。
阅读量
114490
评论数
0
标签
3desAndroidbinlogcanalcentosChatGPTcicomposercosDeepSeekdockerdocker swarmDockerfiledronedtueasyswooleelectronelementUIESModulefrp
一言一句话
-「」
热门文章
VMware15 安装 mac OS 10.15 调整分辨率

VMware15 安装 mac OS 10.15 调整分辨率

在Mac虚拟机里的终端执行下面的命令,执行完之后重启即可 1920*1080分辨率: sudo...
Quartz MySQL Specified key was too long; max key length is 767 bytes

Quartz MySQL Specified key was too long; max key length is 767 bytes

昨天使用定时任务框架Quartz,建表时数据库报错,在此记录一下,通常情况下为了方便兼容emoji表...
阿里小号突然不能开机了阿里小号客服电话

阿里小号突然不能开机了阿里小号客服电话

阿里小号突然不能开机了,找不到他们的客服,搜索了半天 才找到的,在这里记录一下 10029...
VMware 安装 Mac os时必要操作

VMware 安装 Mac os时必要操作

解锁工具Unlocker ,对 VMware进行解锁 在 *.vmx...
WordPress出现Briefly unavailable for scheduled maintenance. Check back in a minute. 的解决方法

WordPress出现Briefly unavailable for scheduled maintenance. Check back in a minute. 的解决方法

今天刚好博客升级提示一个错误,在这里记录一下 解决方法:...
猜你喜欢
golang 适配器模式 简单示例记录

golang 适配器模式 简单示例记录

package main import ( "fmt" ) // Target...
微信小程序多组件之间 css 用 deep 不生效的一些处理办法

微信小程序多组件之间 css 用 deep 不生效的一些处理办法

直接上代码了,vue3 setup 模式下 需要额外写一个script...
wordpress上传文件自动重命名方法一

wordpress上传文件自动重命名方法一

function custom_rename_uploaded_files($file) {...
最近要在IDE或者浏览器插件中使用到Google翻译,但是国内又不大方便,某大佬提供了一个反代配置

最近要在IDE或者浏览器插件中使用到Google翻译,但是国内又不大方便,某大佬提供了一个反代配置

需要一个服务器,然后新建一个站点,然后用NGINX进行配置,其中反代配置如下 location /...
golang类似canal监听MySQL的binlog变更进行数据库多活部署

golang类似canal监听MySQL的binlog变更进行数据库多活部署

前言...
关于我们

个人学习文章收集

版权说明

本站部分资源和文章来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。

Copyright @2025 酷客365 网站地图 琼ICP备15003184号-3
 Theme by Puock