2024年10月18日

go 反射 遍历对象属性 切片 Map

摘要: package main import "fmt" import "reflect" func main() { p1 := Person{Name: "test1", Age: 20, Address: "1323"} p2 := Person{Name: "demo2", Age: 24, Ad 阅读全文

posted @ 2024-10-18 22:05 dz45693 阅读(9) 评论(0) 推荐(0) 编辑

2022年9月21日

skywalking安装以及使用go

摘要: Skywalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s)架构而设计。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。 1.部署Elasticsearch 这里基于Docker简单单机部署,普通部署和集群部署可以参考官方文档。 阅读全文

posted @ 2022-09-21 20:57 dz45693 阅读(1334) 评论(0) 推荐(0) 编辑

2022年9月17日

go gorm select * 优化

摘要: 很多时候sql查询都不允许select * 出现要求指定列名,如果你是用gormv2 ,恭喜你可以使用QueryFields属性,如果是gormv1版本怎么样,难道要升级gormV2吗,这里提供种反射的实现,可能不是最优解,但只是一个方案。 首先mysq建一个表 CREATE TABLE `test 阅读全文

posted @ 2022-09-17 14:02 dz45693 阅读(904) 评论(0) 推荐(0) 编辑

2022年4月20日

go实现 银行卡Luhn校验

摘要: 一、银行卡号码的校验规则 银行卡号码的校验采用Luhn算法,校验过程大致如下: 1. 从右到左给卡号字符串编号,最右边第一位是1,最右边第二位是2,最右边第三位是3…. 2. 从右向左遍历,对每一位字符t执行第三个步骤,并将每一位的计算结果相加得到一个数s。 3. 对每一位的计算规则:如果这一位是奇 阅读全文

posted @ 2022-04-20 12:24 dz45693 阅读(1276) 评论(0) 推荐(0) 编辑

2022年3月13日

go smtp示例

摘要: ​书接上文邮件实现详解,这里我们及我们简单复习一下smtp的指令如下: telnet smtp.163.com 25 [outpout] ehlo dz45693 [outpout] auth login [outpout] 输入用户名base64 [outpout] 输入密码base64 mail 阅读全文

posted @ 2022-03-13 21:04 dz45693 阅读(1446) 评论(0) 推荐(0) 编辑

2022年3月10日

go GCM加密解密 gin中间件加密解密,gin文件流处理

摘要: ​要给已有的系统启用加密解密,目前推荐的是aes的gcm模式的加密和解密,在微服务如果向前有公共方法处理 读取数据和写返回数据,那么比较简单,修改以前的公共方法,但是这样本地调试平时肯定是明文,所以要加判断,如果以前的读数据和写数据是五花八门那就比较麻烦,在微服务体系里面一般有网关这个服务,所以加密 阅读全文

posted @ 2022-03-10 22:21 dz45693 阅读(2328) 评论(0) 推荐(0) 编辑

2022年2月12日

Gin 通用的日志中间件

摘要: main.go package main import ( "demo/gindemo/middleware" "github.com/gin-gonic/gin" "net/http" ) func main() { // 1.创建路由 r := gin.Default() r.Use(middl 阅读全文

posted @ 2022-02-12 13:46 dz45693 阅读(1627) 评论(0) 推荐(0) 编辑

2022年1月9日

Go websocket 聊天室demo2

摘要: 上文Go websocket 聊天室demo以及k8s 部署 后面有一个问题, 如果2个客服端 分别来链接到不同的服务 如何发布消息了? 如图: cliant A ->ServerA 推送消息到kafka >推送消息到 服务A和B >服务AB都去寻找自己的client集合 >发送消息给具体的客户端【 阅读全文

posted @ 2022-01-09 16:27 dz45693 阅读(1531) 评论(0) 推荐(0) 编辑

Go websocket 聊天室demo以及k8s 部署

摘要: ​本来打算练习go websocket 做一个示例,结果在网上找了一个聊天室的示例【Go websocket 聊天室的详细实现和详细分析_上官二狗的博客-CSDN博客_go websocket 聊天室】,感觉不错就拿来用一下。 介绍 首先需要有一个客户端 client 的 manager ,mana 阅读全文

posted @ 2022-01-09 09:32 dz45693 阅读(1870) 评论(0) 推荐(0) 编辑

2021年11月29日

go redis锁

摘要: redis经常用作分布式锁,这里记录一个简单的锁代码如下: package main import ( "crypto/rand" "encoding/base64" "fmt" "github.com/go-redis/redis" "io" "sync" "time" ) func main() 阅读全文

posted @ 2021-11-29 19:53 dz45693 阅读(1664) 评论(0) 推荐(0) 编辑

2021年11月19日

golang 时间missing Location in call to Date

摘要: golang使用"Asia/Shanghai"时区转换时间格式报:missing Location in call to Date 当然解决方法1是:time.FixedZone //os.Setenv("ZONEINFO","D:\\ProgramFiles\\Go\\lib\\time\\zon 阅读全文

posted @ 2021-11-19 12:24 dz45693 阅读(1823) 评论(0) 推荐(0) 编辑

2021年5月13日

Go jaegerde 应用【logger+gorm+grpc+http】

摘要: 在以前的Go语言jaeger和opentracing 有用来做日志,但是很多时候我们希望数据库的操作也可以记录下来,程序一般作为http或者grpc 服务, 所以grpc和http也是需要用中间件来实现的。首先看程序的目录, 只是一个简单的demo: 因为程序最后会部署到k8s上,计划采用docke 阅读全文

posted @ 2021-05-13 20:49 dz45693 阅读(2403) 评论(0) 推荐(0) 编辑

2021年4月29日

Go gRPC 调试工具

摘要: 在开发grpc的时候,Go gRPC 调试工具 可以说是必备工具。 安装: go get github.com/fullstorydev/grpcui go install github.com/fullstorydev/grpcui/cmd/grpcui grpcui -help #验证是否安装 阅读全文

posted @ 2021-04-29 08:26 dz45693 阅读(2037) 评论(0) 推荐(0) 编辑

2021年4月20日

iris和xxl-job整合

摘要: 在以前的文章中go任务调器gocron和xxl-job 尝试xxl和gin的整合,由于项目统一用iris 所以需要研究出如何与iris整合, 直接上代码: package main import ( "context" "fmt" "log" "github.com/kataras/iris/v12 阅读全文

posted @ 2021-04-20 23:12 dz45693 阅读(2056) 评论(0) 推荐(0) 编辑

2021年4月18日

Go Grpc部署到 k8s【端口共享】

摘要: 书接上文Go Grpc部署到 k8s【负载均衡】 grpc server端我们暴露了9090和8080端口,这次我们的http服务用iris,并且绑定到9090端口。 GO文件 服务端代码main.go: package main import ( "context" "fmt" pb "grpcd 阅读全文

posted @ 2021-04-18 11:15 dz45693 阅读(2740) 评论(0) 推荐(0) 编辑

rocketmq事务 go 采用rocketmq-client-go的实现

摘要: 我想用rocketMq大家主要是用它的事务,所以拿着官方的代码体验一下 环境 用docker安装rocketMq #需要创建文件夹 /docker/namesrv/logs /docker/namesrv/store /docker/rocketmq/logs /docker/rocketmq/st 阅读全文

posted @ 2021-04-18 08:16 dz45693 阅读(4232) 评论(1) 推荐(0) 编辑

2021年4月7日

Go Grpc部署到 k8s【负载均衡】

摘要: 网上关于grpc在k8s上的负载均衡很多,我这里就不在重复了,直接看代码吧: 我的grpc客户端和服务段都是用beego实现的,【我这里比较偷懒,直接把源码放到 k8s的一个master上】,首先需要说明以下我的k8s版本 Server: 协议在protos\hello.proto如下: synta 阅读全文

posted @ 2021-04-07 13:03 dz45693 阅读(3469) 评论(0) 推荐(0) 编辑

2021年4月4日

ubuntu18安装Kubernetes 1.20.5

摘要: 在以前的文章 Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装 和 Centos 使用kubeadm安装Kubernetes 1.15.3,由于某些原因需要更新版本,索性直接安装最新的版本来试一下。 1.Install 1.安装并启用 Docker sudo apt in 阅读全文

posted @ 2021-04-04 21:59 dz45693 阅读(2973) 评论(0) 推荐(0) 编辑

2021年4月3日

k8s Python API

摘要: 主要使用https://github.com/kubernetes-client/python/blob/master/kubernetes/docs/ 这个说明, 一般主要是创建pod 和svc,以及更新pod,直接上代码如下: from kubernetes import client, con 阅读全文

posted @ 2021-04-03 20:12 dz45693 阅读(2835) 评论(0) 推荐(0) 编辑

2021年3月31日

go nacos服务发现

摘要: 本来想研究一下nacos的服务发现,原来sample这么详细啊,直接运行代码吧: package main import ( "fmt" "time" "github.com/nacos-group/nacos-sdk-go/clients" "github.com/nacos-group/naco 阅读全文

posted @ 2021-03-31 22:27 dz45693 阅读(3758) 评论(0) 推荐(0) 编辑

2021年3月21日

k8s集群日志收集ELK和graylog

摘要: 使用ELK+Filebeat架构,还需要明确Filebeat采集K8S集群日志的方式。 方式1:Node级日志代理在每个节点(即宿主机)上可以独立运行一个Node级日志代理,通常的实现方式为DaemonSet。用户应用只需要将日志写到标准输出,Docker 的日志驱动会将每个容器的标准输出收集并写入 阅读全文

posted @ 2021-03-21 18:10 dz45693 阅读(4002) 评论(0) 推荐(0) 编辑

2021年3月16日

go kafka group

摘要: 在以前的文章kafka初探go和C#的实现里面我们用了sarama来消费kafka的消息,但是很遗憾它没有group的概念。没办法 我们只能用sarama-cluster来实现, 注意sarama版本不要太新否则有错误panic: non-positive interval for NewTicke 阅读全文

posted @ 2021-03-16 15:01 dz45693 阅读(2400) 评论(0) 推荐(0) 编辑

2021年3月6日

K8S 上部署 jenkins[go的持续集成]

摘要: 书接上文jenkins自动化部署go【docker+jenkins+go+gitlab+harbor+k8s】 我原计划是想把jenkins安装到docker,后来搞了一些时间也没有搞定所以才安装在ubuntu虚拟机上,这次尝试安装到k8s上,关于nfs的安装大家可以参考 ubuntu kubern 阅读全文

posted @ 2021-03-06 17:14 dz45693 阅读(2661) 评论(0) 推荐(0) 编辑

2021年3月1日

ubuntu kubernetes中使用NFS创建pv_pvc

摘要: 1、NFS PV PVC 介绍NFS 即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过 NFS,可以访问远程共享目录,就像访问本地磁盘一样。NFS 只是一种文件系统,本身并没有传输功能,是基于 RPC(远程过程调用)协议实现的,采用 阅读全文

posted @ 2021-03-01 20:02 dz45693 阅读(2667) 评论(0) 推荐(0) 编辑

jenkins自动化部署go【docker+jenkins+go+gitlab+harbor+k8s】

摘要: 首先说一下我的环境,首先准备一台ubuntu18.4虚拟机,安装docker, 然后用docker 安装gitlab[大家可以参考 Ubuntu Docker搭建GitLab以及常规配置使用] 和harbor【大家可以参考 Ubuntu18 安装搭建Harbor】,关于k8s的安装大家 可以参考 U 阅读全文

posted @ 2021-03-01 09:12 dz45693 阅读(3335) 评论(0) 推荐(0) 编辑

2021年2月26日

geoip【go和C#】

摘要: 在项目中经常遇到通过ip获取区域信息,geoip无疑是一个很好的选择https://dev.maxmind.com/geoip/, 大家在这里可以下载IP库 。还有在ip中经常遇到字符串和数字的转换 GOip数字和字符的转换我们可以用 github.com/thinkeridea/go-extend 阅读全文

posted @ 2021-02-26 14:25 dz45693 阅读(2219) 评论(0) 推荐(0) 编辑

2021年2月19日

Go语言jaeger和opentracing

摘要: OpenTracing开放式分布式追踪规范,常见实现:jaeger和zipkin docker启动一个实例: docker run -p 5775:5775/udp -p 16686:16686 -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 14 阅读全文

posted @ 2021-02-19 17:50 dz45693 阅读(2577) 评论(0) 推荐(0) 编辑

2021年2月6日

docker 安装graylog

摘要: 首先我的docker上已经有es和mongdb了,那么我的graylog希望用已有的es和mongo。 docker pull graylog/graylog:3.3 docker run \ --link mongodb:mongo \ --link es:elasticsearch \ --na 阅读全文

posted @ 2021-02-06 10:35 dz45693 阅读(2581) 评论(0) 推荐(0) 编辑

2021年2月5日

go和asp.netCore读取nacos配置

摘要: 上文docker安装nacos我们已经安装了nacos,现在我们来看看如何读取配置文件。我们的nacos的示例采用和 go读取consul配置文件 一致: go 我这里采用 https://github.com/nacos-group/nacos-sdk-go 客户端, 直接上上代码: packag 阅读全文

posted @ 2021-02-05 18:44 dz45693 阅读(2391) 评论(0) 推荐(0) 编辑

docker安装nacos

摘要: 网上安装的说明很多,比较好一点是https://www.cnblogs.com/binz/p/12295346.html 和 https://blog.csdn.net/u011374856/article/details/109204466, 我一般希望把配置和日志文件放到ubuntu物理机上,首 阅读全文

posted @ 2021-02-05 17:22 dz45693 阅读(2638) 评论(0) 推荐(0) 编辑

2021年2月4日

asp.netcore5.0使用xxl-job

摘要: 书接上文go任务调器gocron和xxl-job 我们来看看asp.netcore5.0里面怎么使用, 非常高兴有大佬们的贡献https://github.com/NanoFabricFX/DotXxlJob, 我的xxl-job是2.2.0,按照githab上我们需要安装DotXxlJob.Cor 阅读全文

posted @ 2021-02-04 23:05 dz45693 阅读(3150) 评论(1) 推荐(1) 编辑

2021年2月3日

go任务调器gocron和xxl-job

摘要: 常见的go调度器有GitHub - ouqiang/gocron: 定时任务管理系统 和 GitHub - xuxueli/xxl-job: A distributed task scheduling framework.(分布式任务调度平台XXL-JOB) gocron 结构如下: 我们来搞一个简 阅读全文

posted @ 2021-02-03 23:36 dz45693 阅读(3799) 评论(0) 推荐(0) 编辑

2021年1月29日

谷歌身份验证 asp.net core和go的实现

摘要: 一、Google Authenticator 基本概念 Google Authenticator是谷歌推出的一款动态口令工具,旨在解决大家Google账户遭到恶意攻击的问题,在手机端生成动态口令后,在Google相关的服务登陆中除了用正常用户名和密码外,需要输入一次动态口令才能验证成功,此举是为了保 阅读全文

posted @ 2021-01-29 00:03 dz45693 阅读(2573) 评论(0) 推荐(0) 编辑

2021年1月24日

kafka初探go和C#的实现

摘要: kafka是一个消息队列, 和activeMQ, RabbitMQ类似, 一般都只是用到消息定订阅和发布。 环境 环境我们还是依赖docker来完成 -- 拉镜像docker pull wurstmeister/kafkadocker pull wurstmeister/zookeeper dock 阅读全文

posted @ 2021-01-24 19:05 dz45693 阅读(2245) 评论(0) 推荐(0) 编辑

as.net core 5.0 Configuration读取consul的kv存储

摘要: Consul 关于consul的环境搭建很简单,可以用docker临时搭建以下, consul关于KV存储的api也很简单,注意/v1/kv/是默认的公共路径 -- 运行docker docker pull consul:latest docker run --name consul -d -p 8 阅读全文

posted @ 2021-01-24 14:16 dz45693 阅读(2300) 评论(0) 推荐(0) 编辑

2021年1月23日

go和C# 雪花算法

摘要: 雪花算法能满足高并发分布式系统环境下ID不重复,并且基于时间戳生成的id具有时序性和唯一性,结构如下: 由图我们可以看出来,snowFlake ID结构是一个64bit的int型数据。 第1位bit:在二进制中最高位为1,表示的是负数,因为我们使用的id应该都是整数,所以这里最高位应该是0。 41b 阅读全文

posted @ 2021-01-23 21:08 dz45693 阅读(2303) 评论(0) 推荐(0) 编辑

2021年1月22日

go读取consul配置文件

摘要: 在上文我们的 go学习笔记:使用 consul 做服务发现和配置共享 这里我们单独来用viper实现读取consul的配置, 我习惯与用yaml格式, 所以 首先 新建yaml文件 store: book: - author: john price: 10 - author: ken price: 阅读全文

posted @ 2021-01-22 23:01 dz45693 阅读(3623) 评论(0) 推荐(0) 编辑

2021年1月17日

go学习笔记:使用 consul 做服务发现和配置共享

摘要: 使用consul,其主要有四大特性: 1. 服务发现:利用服务注册,服务发现功能来实现服务治理。 2. 健康检查:利用consul注册的检查检查函数或脚本来判断服务是否健康,若服务不存在则从注册中心移除该服务,减少故障服务请求。 3. k/v数据存储:存储kv数据,可以作为服务配置中心来使用。 4. 阅读全文

posted @ 2021-01-17 21:44 dz45693 阅读(4526) 评论(0) 推荐(0) 编辑

go学习笔记:gorm基本使用

摘要: 关于gorm的使用,官网非常详细推荐大家有时间仔细看 https://gorm.io/zh_CN/docs/conventions.html, 我这里只是演示日常的使用增删改查: 创建数据: 新建一个gormdemo的数据库,然后执行下面的sql语句,就会建立一个animals的表,里面还有一些测试 阅读全文

posted @ 2021-01-17 14:17 dz45693 阅读(6628) 评论(0) 推荐(0) 编辑

2021年1月12日

Go学习笔记 : cobra 包简介

摘要: cobra 是 go 语言的一个库,可以用于编写命令行工具。通常我们可以看到git pull 、docker container start 、apt install 等等这样命令,都可以很容易用corba来实现,另外,go 语言是很容易编译成一个二进制文件,本文将实现一个简单的命令行工具。 主要功 阅读全文

posted @ 2021-01-12 21:32 dz45693 阅读(2314) 评论(0) 推荐(0) 编辑

导航