目录新建数据库config.gogameblog.gohttpSimplify server.gocomment.gogameblog.goserver.gopostman test apiAxiosgamelist.goHTTPgamelist.goserver.goAxios新建数据库 将部分数据存储至Mysql,使用axios通过golang ......
157
0
0
2023-06-11
目录引子运行命令显示输出显示到标准输出输出到文件发送到网络保存到内存对象中输出到多个目的地运行命令,获取输出分别获取标准输出和标准错误标准输入环境变量检查命令是否存在封装总结引子在工作中,我时不时地会需要在Go中调用外部命令。前段时间我做了一个工具,在钉钉群中添加了一个机器人,@这个机器人可以让它执行一些写好的脚本程序完成指定的任务。机器人倒是不难,照着钉钉 ......
164
0
0
2023-06-10
简介权限管理在几乎每个系统中都是必备的模块。如果项目开发每次都要实现一次权限管理,无疑会浪费开发时间,增加开发成本。因此,casbin库出现了。casbin是一个强大、高效的访问控制库。支持常用的多种访问控制模型,如ACL/RBAC/ABAC等。可以实现灵活的访问权限控制。同时,casbin支持多种编程语言,Go/Java/Node/PHP/Python/. ......
161
0
0
2023-06-09
目录Go语言内置的log包实现了简单的日志服务Logger标准logger的配置配置日志前缀(SetPrefix)配置日志输出位置创建新logger对象日志库级别runtime.Caller可变参数的日志实现往文件里面写日志日志切割(按文件大小切割、按日期切割)总结Go语言内置的log包实现了简单的日志服务log包定义了Logger类型,该类型提供了一些格式 ......
202
0
0
2023-06-08
目录引言csrf小档案一、CSRF及其实现原理CSRF攻击示例二、如何预防三、CSRF包的使用及实现原理csrf包的安装基本使用使用net/http包启动的服务echo框架下使用csrf包gin框架下使用csrf包beego框架下使用csrf包实现原理csrf结构体csrf包的工作流程为什么GET、HEAD、OPTIONS、TRACE的请求方法不需要toke ......
169
0
0
2023-06-07
目录引子思路实战节点通信主节点工作节点将它们放在一起代码效果总结引子如今很多云原生系统、分布式系统,例如 Kubernetes,都是用 Go 语言写的,这是因为 Go 语言天然支持异步编程,而且静态语言能保证应用系统的稳定性。笔者的开源项目 Crawlab 作为爬虫管理平台,也应用到了分布式系统。本篇文章将介绍如何用 Go 语言编写一个简单的分布式系统。思路 ......
193
0
0
2023-06-06
目录安装与简单测试常见请求与分组请求获取参数 与 参数合法性验证获得query中参数获得multipart/urlencoded form中的参数模型绑定和参数验证自定义参数验证项目结构参考Gin框架运行模式Gin如何获取客户ipGin处理请求结果以String类型响应请求以Json格式响应请求以文件形式响应请求设置http响应头Gin处理html模板Gin ......
221
0
0
2023-06-06
前言最近一直有小伙伴私信我学Go语言的问题:有的小伙伴觉得客户端太卷了,想转服务端,觉得 Java 也卷,想学Go语言;有的小伙伴是想从PHP或者Java转 Go ,做高并发编程,觉得Go更有前途。聊的多了,发现这是一个共性问题,所以干脆整理成文章,希望对更多的人有帮助。这篇文章会结合我的经历:聊聊我认为客户端转服务端开发最大的挑战是什么? 如何高效转型做服 ......
159
0
0
2023-06-06
目录1. channel 底层结构2. channel 的创建3. channel 的发送流程4. channel 的接收流程5. channel 使用注意事项以下源码都摘自 golang 1.16.15 版本。1. channel 底层结构Golang 中的 channel 对应的底层结构为 hchan 结构体(channel的源码位置在Golang包的 ......
186
0
0
2023-06-05
目录一、背景二、官网代码示例三、锁的实现一、背景在kubernetes的世界中,很多组件仅仅需要一个实例在运行,比如controller-manager或第三方的controller,但是为了高可用性,需要组件有多个副本,在发生故障的时候需要自动切换。因此,需要利用leader election的机制多副本部署,单实例运行的模式。应用程序可以使用外部的组件比 ......
241
0
0
2023-06-05
目录Hpack 是啥HPACK 原理如何编码举个编码🌰HPACK 实现遇到的坑Hpack 是啥Hpack 是 HTTP2 的头部压缩算法。在 HTTP1 中,每次传输都会有大量的 Header 携带,我们可以拿一个实际的请求来看,如图一:图一:请求 header这里面 Header 很多是请求共性的,比如 method: POST,就是 post 请求的 h ......
189
0
0
2023-06-03
目录背景概述架构设计理念面向接口设计会话 Session消息 Message协议 Proto编码 Codec连接 Socket有机的组合插件 Plugin组件未来展望背景DMicro 诞生的背景,是因为我写了 10 来年的 PHP,想在公司内部推广 Go, 公司内部的组件及 rpc 协议都是基于 swoole&nbsp ......
199
0
0
2023-06-03
目录Go素数筛选分析1. 素数筛选介绍2. 代码分析3. 代码验证4. 总结Go素数筛选分析1. 素数筛选介绍学习Go语言的过程中,遇到素数筛选的问题。这是一个经典的并发编程问题,是某大佬的代码,短短几行代码就实现了素数筛选。但是自己看完原理和代码后一脸懵逼(仅此几行能实现素数筛选),然后在网上查询相关资料,依旧似懂非懂。经过1天的分析调试,目前基本上掌握了 ......
160
0
0
2023-06-02
我们平时在开发中肯定避不开的一个问题是如何在不可靠的网络服务中实现可靠的 网络通信 ,其中 http 请求重试是经常用的技术。但是 Go 标准库 net/http 实际上是没有重试这个功能的,所以本篇文章主要讲解如何在 Go 中实现请求重试。 概述 一般而言,对于网络通信失败的处理分为以下几步: 感知错误。通过不同的错误码来识别不同的错误,在H ......
175
0
0
2023-06-01
目录前言Improvements1. Genesis (Runes)2. Bytes3. Remainder4. Masking5. Masking Improved6. Source7. Utilizing strings.Builder8. "Mimicing" strings.Builder with package unsafeBenchmarkQ: ......
177
0
0
2023-05-31