项目中需要使用一个简单的定时任务调度的框架,最初直接从GitHub上搜了一个star比较多的,就是 https://github.com/robfig/cron 这个,目前有8000+ star。刚开始使用的时候发现问题不大,但是随着单机需要定时调度的任务越来越多,高峰期差不多接近500QPS,随
前言 很多时候我们都在window上使用goland,并直接使用goland调试go代码。 但是很多时候我们的程序运行在Linux服务器上,虽然可以通过dlv命令行进行手动打断点调试,但是太麻烦了。 因此我查阅资料发现,goland是支持远程调试的,因此写篇文章记录一下。 操作步骤 安装dlv
0.目录 1.表现 1.1 空值赋值 1.2 nil 值赋值 2.原因 2.1 append 并未改变原有 slice 2.2 如果 nil map 支持赋值 3.两种改进设计思路 3.1 slice 标准 3.2 map 标准 1.表现 1.1 空值赋值 t := []int{} t = app
登录是大部分网站都具备的一个功能,作为用户使用系统的第一步,如果登陆逻辑设计不合理,容易被攻击者利用,造成安全问题。 密码泄漏 弱口令 相信大家都知道弱口令是什么意思,用户为了方便,一般会使用123456、admin、passwd、password、123qwe等这些作为自己的常用密码,方便好记。
文章目录:目录前后端接口交互接口返回值约定返回值规范正确返回错误返回统一定义错误码错误码规范Controller 层如何用?正确返回错误返回详细代码实现错误码Controller总结问题思考 前后端接口交互 我们都知道,前端通常会通过后台提供的接口来获取数据来完成前端页面的渲染,前端可以为 PC
前言 go-zero 群里经常有同学问: 服务监控是通过什么算法实现的? 滑动窗口是怎么工作的?能否讲讲这块的原理? 熔断算法是怎么设计的?为啥没有半开半闭状态呢? 本篇文章,来分析一下 go-zero 中指标统计背后的实现算法和逻辑。 指标怎么统计 这个我们直接看 breaker : typ
RPC(Remote Procedure Call),是一个大家既熟悉又陌生的词,只要涉及到通信,必然需要某种网络协议。我们很可能用过HTTP,那么RPC又和HTTP有什么区别呢?RPC还有什么特点,常见的选型有哪些? 1. RPC是什么 RPC可以分为两部分:用户调用接口 + 具体网络协议。
Gorm GORM CRUD 数据库的增删改查 go get -u github.com/jinzhu/gorm go get -u github.com/jinzhu/gorm/dialects/mysql go常规查询操作 package main import ( "encodin
系列目录     【已更新最新开发文章,点击查看详细】   我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意见,或者参与了客户研究,感谢你帮助我们继续引导 Visual Studio 的产品路线图。现在我有一个激动人心的消息要宣布,Visu
一. 前言 多少次熬夜加班, 直至见到凌晨四点的太阳; 多少个早晨洗漱的时候, 看到洗脸盆掉的全是头发; 整天coding, debugging, 设计, 画图, 文档, 会议, 演示...... 看似充实饱和的工作, 又夹杂了多少苦涩与无奈;   二. 程序员其实很难 是的, 程序员其实很难,
前言 群里老有同学问,go-zero 的 数据库 和 redis 库是否有连接池支持。先说结论:有的,可以放心大胆用! 从框架设计来说,对于数据库连接这种资源当然是尽可能减少频繁操作: 为业务减负 提升框架自身的性能 池化技术是一个通用化技术,本身就应该作为一个通用库支撑框架的上层业务 所以不管是
安装界面 启动程序之后,会在浏览器中自动打开安装界面。 因为程序会使用到 Redis 和 MySQL,所以安装前请输入 Redis、MySQL 配置信息,点击初始化按钮,会将用到的数据表和默认数据进行初始化,在右侧可以看到初始化的日志信息。 如上,初始化成功后,重新启动程序,会在浏览器中自动打
Previously 前两篇文章(缓存稳定性 和 缓存正确性)跟大家讨论了缓存的『稳定性』和『正确性』,缓存常见问题还剩下『可观测性』和『规范落地&工具建设』 稳定性 正确性 可观测性 规范落地和工具建设 上周文章发完之后,很多同学对我留的问题进行了深入的讨论,我相信经过深度的思考,会让你
Gin // 初识 Gin框架 //下载(可能会下载不全。缺什么get什么即可) //go get -u -v github.com/gin-gonic/gin package main import ( "github.com/gin-gonic/gin" "log" "net/htt
一、函数基础 函数由函数声明关键字 func、函数名、参数列表、返回列表、函数体组成 函数是一种类型。函数类型变量可以像其他类型变量一样使用,可以作为其他函数的参数或返回值,也可以直接调用执行 函数名首字母大小写决定了其包可见性 参数和返回值需用()包裹,如果返回值是一个非命名的参数,则可省略。函