当前封装基于工程项目,目录结构为下图1.log日志属于工具类包所以我们在utils目录下创建相关目录以及文件package logs
import "github.com/sirupsen/logrus"
//定义各级别日志的函数
func Debug(fields map[string]interface{}, msg string){
/*
接收参数解释:查看logrus
原创
2023-09-08 10:32:21
748阅读
Golang提供了官方的http包,对于http操作非常的方便和简洁。但是不同于PHP,使用Golang的包来做http操作,还是没有那么”直接“,需要实例化一下这个,实例化一下那个,有点像Java,因此,为了以后书写方便,就把基本的请求写在此。下次用的时候,直接copy就好了。get 请求get请求有好几种方式直接使用net/http包内的函数请求import "net/http"
...
re
转载
2023-12-26 11:30:23
56阅读
由于同事每次让我这边清空redis数据(string,集合)都需要我来操作比较麻烦,所以开放了个api给他。考虑到golang直接操作redis没新意,换个思路:此api通过控制shell脚本来一步到位。 ...
转载
2021-08-24 18:31:00
192阅读
2评论
说明Golang中引入error接口类型作为错误处理的标准模式,如果函数要返回错误,则返回值类型列表中肯定包含error;Golang中引入两个内置函数panic和recover来触发和终止异常处理流程,同时引入关键字defer来延迟执行defer后面的函数。错误/异常处理的一些原则错误处理的正确姿势
- 失败的原因只有一个时,不使用error
- 没有失败时,不使用error
- error应放
转载
2024-04-20 17:46:01
56阅读
前言Go语言并不像Java那样有类的概念,以及extends这样的关键字,但是可以用其特有的数据结构来实现类似面向对象的特性。主要有结构体实现封装,组合实现继承,接口实现多态。 封装可以隐藏类的实现细节并使代码具备模块化,继承可以扩展已存在的模块,多态的作用除了复用性外,还可以解决模块之间高耦合的问题。 文章目录前言一、结构体实现封装二、组合实现继承三、接口实现多态接口定义与实现接口实现多态 一、
转载
2023-10-02 21:00:41
181阅读
package util import ( "crypto/md5" "encoding/hex" "fmt" "os" "runtime" "strconv" "time" ) var strCGroupLogID string = "" func LogRecord(msg string, le
原创
2021-05-27 11:10:08
1891阅读
代码传送门1、日志主要说明:谁在什么时间,在什么地方,做了什么事情,产生了什么影响,影响的变化因子。2、日志系统主要建设在oplogger基础上。将现有的mysql存储方式改成elasticsearch的存储方式。并且更新了现有字段,使其更优化3、以下为主要设计原理图:以下为时序图:4、需要重写的接口如下://! 本地物流服务
service Logger {
rpc Operate(Operat
转载
2024-04-24 11:14:32
45阅读
golang操作MySQL数据库总结准备数据库和表下载安装MySQLhttps://dev.mysql.com/downloads/mysql/创建一个go_db数据库create database go_db打开数据库use go_db创建表CREATE TABLE user_tbl (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
username VA
转载
2024-09-08 23:25:01
59阅读
Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源。正如DockerPool在免费Docker电子书Docker —— 从入门到实践中这样提到的:作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。首先,Docker 容器的启动可以在秒级实现,这相比传统的虚
转载
2023-08-23 15:59:49
73阅读
日志包的使用(log, zap)
原创
2023-06-20 10:49:28
196阅读
问题由来以前出现panic问题,我们会习惯通过日志给出的代码行,在对比数据分析问题,如果推断不出来,我们会多加日志,重新panic,再继续定位。如果打印了很多堆栈日志,但是日志信息不够怎么办,我们总不能加日志等下次重现后再定位吧?这样定位bug的工作效率特别低,所以我们可以仔细阅读堆栈日志,结合打印的日志快速定位bug。在阅读堆栈日志时,可能我们会疑惑:为什么定义是这样:
func TestSta
转载
2024-08-27 15:58:40
42阅读
文章目录GoLang之GC 的历史及演进(4)16. Go 历史各个版本在 GC 方面的改进?17. Go GC 在演化过程中还存在哪些其他设计?为什么没有被采用?并发栈重扫ROC传统分代 GC18. 目前提供 GC 的语言以及不提供 GC 的语言有哪些?GC 和 No GC 各自的优缺点是什么?19. Go 对比 Java、V8 中 JavaScript 的 GC 性能如何?V8 的 GCJa
转载
2024-04-16 08:28:15
57阅读
# Dockerfile的golang封装
Docker是一种容器化技术,它可以将应用程序及其依赖项打包到一个独立的容器中,从而实现应用程序的跨平台运行。Golang是一种高效的编程语言,结合Docker可以方便地构建和部署Golang应用程序。
在本文中,我们将介绍如何使用Dockerfile来封装一个基于Golang的应用程序。我们将一步步地创建一个Dockerfile,并为其添加必要的指
原创
2024-04-11 04:58:07
34阅读
io模型 计算机的io模型区分为多种,目前用的最多的也就是nio、epoll、select。 结合不同场景使用不同的io模型才是正解。 具体可以查看我之前写的io模型演进。io模型演进 golang中网络io gola...
转载
2021-09-22 15:46:00
472阅读
2评论
# Golang与Python的封装:跨语言的协作
在现代软件开发中,我们经常需要将不同编程语言的优势结合起来,以实现更好的性能和可维护性。Go(Golang)作为一种高效、并发友好的语言,与Python的灵活性和丰富的库生态相结合,可以创造出强大而高效的应用。本文将探讨如何在Golang中封装Python代码,达成跨语言的协作,并提供代码示例和序列图来帮助更好地理解这一过程。
## 背景
原创
2024-09-14 06:29:17
38阅读
一、声明接口 二、实现接口,这里却将接口作为成员变量,进而将接口的实现转换为接口的调用,仅仅是封装
原创
2022-08-02 17:08:55
125阅读
# 如何实现golang操作redis封装
## 整体流程
首先,我们需要安装redis相关的库,然后连接到redis数据库,并对其进行操作。接下来,我们需要封装这些操作,让其更加方便使用。
以下是实现"golang操作redis封装"的步骤:
| 步骤 | 描述 |
|------|---------------|
| 1 | 安装redis库 |
| 2
原创
2024-03-31 03:32:51
229阅读
1、database/sql包sql包提供了保证SQL或类SQL数据库的泛用接口。使用sql包时必须注入(至少)一个数据库驱动。(1)获取mysql driver:go get -v github.com/go-sql-driver/mysql(2)代码示例:package main
import (
"database/sql"
"fmt"
"log"
"time"
_ "gith
转载
2023-12-12 23:44:06
0阅读
seelog介绍seelog是用Go语言实现的一个日志系统,它提供了一些简单的函数来实现复杂的日志分配、过滤和格式化。主要有如下特性: XML的动态配置,可以不用重新编译程序而动态的加载配置信息 支持热更新,能够动态改变配置而不需要重启应用 支持多输出流,能够同时把日志输出到多种流中、例如文件流、网络流等 支持不同的日志输出 命令行输出 文件输出 缓存输出 支持log rotate SMTP邮件 上面只列举了部分特性,seelog是一个特别强大
原创
2021-06-01 12:28:19
880阅读
文章目录日志收集一、项目背景二、解决方案三、面临问题四、业界方案4.1 ELK4.2 存在问题:五、架构设计5.1 组件介绍5.2 将学到的技能六、队列消息的通信模型6.1 点对点模式(queue)6.2 发布/订阅(topic)七、Kafka7.1 介绍7.2 工作流程7.2 选择Partition原则7.3 ACK应答机制7.4 Topic和数据日志7.5 Patition结构7.6 消费数
转载
2023-09-18 16:55:15
271阅读