knet 基于Golang的轻量级并发TCP框架
基于Golang的轻量级并发TCP框架 #### [中文文档](https://hxoreyer.github.io) ##### 实例: server: ```go package main import ( "fmt" "net" "time" "github.com/hxoreyer/knet" ) func main() { logger := knet.NewKlog("./logger") logger.SetUpd...阅读全文
基于Golang的轻量级并发TCP框架 #### [中文文档](https://hxoreyer.github.io) ##### 实例: server: ```go package main import ( "fmt" "net" "time" "github.com/hxoreyer/knet" ) func main() { logger := knet.NewKlog("./logger") logger.SetUpd...阅读全文
<section id="nice" data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="font-size: 16px; color: black; padding: 0 10px; line-height: 1.6; word-spacing: 0px; letter-spacing: 0px; word-break: break-word; word-wrap: break-word; text-align:...阅读全文
![MySQL 连接数过多的处理方法合集](https://kalacloud.com/static/c976e8f8a5cea3670bd67260ac6c3b1c/ef245/head.jpg) 本文首发:[MySQL 连接数过多的处理方法合集 - Too many connections - 卡拉云](https://kalacloud.com/blog/mysql-error-too-many-connections/) 碰到`Can not connect to MySQL...阅读全文
## 限流器实现之TokenBucket 大家好,我是「Go学堂」的渔夫子。上篇文章我们讲解了漏桶(LeakyBucket)的实现原理。本文我们介绍另外一种限流器---令牌桶(TokenBucket)。 ![图1-大纲-70%.png](https://static.studygolang.com/211206/9882aa006d736c7522d20b404e6dab24.png) ### 令牌桶(TokenBucket)简介 ##### 令牌桶实现的基本思想...阅读全文
OpenIM介绍OpenIM是由前微信技术专家打造的*开源*的即时通讯组件。OpenIM包括IM服务端和客户端SDK,实现了高性能、轻量级、易扩展等重要特性。开发者通过集成OpenIM组件,并私有化部署服务端,可以将即时通讯、实时网络能力快速集成到自身应用中,并确保业务数据的安全性和私密性。代码100%开源,开源协议Apache-2.0 License任何企业和个人都可以免费使用(包括商用)。开发者可以选择自行安装私有化部署,基于SDK二次开发。项目成果官方文档:https://doc.ren...阅读全文
什么是TCC,TCC是Try、Confirm、Cancel三个词语的缩写,最早是由 Pat Helland 于 2007 年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。 ### TCC组成 TCC分为3个阶段 - Try 阶段:尝试执行,完成所有业务检查(一致性), 预留必须业务资源(准隔离性) - Confirm 阶段:如果所有分支的Try都成功了,则走到Confirm阶段。C...阅读全文
![MySQL 配置文件 my.cnf / my.ini 逐行详解](https://kalacloud.com/static/6e41df55307c672df56f332965ec1c15/ef245/head.jpg) 本文首发:[MySQL 配置文件 my.cnf / my.ini 逐行详解 - 卡拉云](https://kalacloud.com/blog/how-to-edit-mysql-configuration-file-my-cnf-ini/) ## MySQL ...阅读全文
Recursive (aka reentrant) mutexes are a bad idea. The fundamental reason to use a mutex is that mutexes protect invariants, perhaps internal invariants like "p.Prev.Next == p for all elements of the ring,'' or perhaps external invariants like "my...阅读全文
![MySQL「 Every derived table must have its own alias」错误修复方法](https://kalacloud.com/static/ad5bd2fa8963abc4ce481a2c19c228d6/ef245/head.jpg) 本文首发:《[MySQL「 Every derived table must have its own alias」1248 错误修复法](https://kalacloud.com/blog/what-is-the...阅读全文
上手GO有俩月了,刚好最近业务用到短网址服务,搜了一遍GitHub没找到想要的,索性自己撸了一个,目前已经用在了公司线上业务中,运行了查不到一个月了没发现什么毛病,分享给有需要的同学;由于是初学者,对GO理解很浅,有问题欢迎交流,轻喷🤔 #### Github项目地址 > https://github.com/weiwei2012holy/short_url 阅读全文
## Go Markdown 博客系统 > Golang 练手项目 > 基于 Go 语言实现的 Markdown 博客系统 ### 技术栈 * 前端框架:bootstrap * 语言:go * 网络库:标准库 net/http * 配置文件解析库 [Viper](https://github.com/spf13/viper) * 日志库zap:https://github.com/uber-go/zap * elasticsearch:https://github....阅读全文
随着微服务架构的流行,随之而来就必然遇到跨服务的分布式事务这个难题。分布式事务之所以难,主要是因为分布式系统中的各个节点都可能发生各种非预期的情况。本文先介绍分布式系统中的异常问题,然后介绍这些问题带给分布式事务的挑战,接下来指出现有各种常见用法的问题,最后给出正确的方案。 ## NPC的挑战 分布式系统最大的敌人可能就是NPC了,在这里它是Network Delay, Process Pause, Clock Drift的首字母缩写。我们先看看具体的NPC问题是什么: - N...阅读全文
<div align="center"> <h1 style="width: 100%; text-align: center;">Lancet</h1> <p style="font-size: 18px"> lancet(柳叶刀)是一个全面、高效、可复用的go语言工具函数库。 lancet受到了java apache common包和lodash.js的启发。 </p> <div align="center" style="text-alig...阅读全文
```golang package main import ( "fmt" "sync" ) func main() { wg:=&sync.WaitGroup{} ch:=make(chan int ,100) send:= func() { for i:=0;i<100;i++{ ch<-i } //不开启close,如何不死锁? //close(ch) } recv:= func(id int) { de...阅读全文
## 工具快速访问 - JSON 转 GO: <https://www.printlove.cn/tools/json2go> - YAML 转 GO: <https://www.printlove.cn/tools/yaml2go> - SQL 转 go-zero Model: <https://printlove.cn/tools/sql2gozero> - SQL 转 GORM Model: <https://www.printlove.cn/tools/sql...阅读全文
![](https://tva1.sinaimg.cn/large/008i3skNly1gwuz3q9a2nj30rs0rs3z1.jpg) # 前言 平时大家写完 `gRPC` 接口后是如何测试的?往往有以下几个方法: 1. 写单测代码,自己模拟客户端测试。 ![](https://tva1.sinaimg.cn/large/008i3skNly1gwv0138u2ij31eq0lwn07.jpg) 2. 可以搭一个 `gRPC-Gateway` 服务,这样就可以在...阅读全文
github地址: https://github.com/gphper/go-redis-manager阅读全文
我是一名热爱go的大学生(gopher),目前已经go已经用了很久了,也在公司负责后端项目的开发,但是到现在为止感觉技术差不多是有了,但是遇到了一些问题很困扰,一直不知道怎么弄才能搞好,就是go的工程化这一块,整个项目怎么划分目录,怎么划分各个业务模块,因为go不可以循环引用,模块没有划分好很容易就会循环引用,前一段时间写代码直接 api model service一套,sql语录直接写在service里,业务复杂了确实不太好,后来看到别人还有dao层,现在也在尝试新的布局,但是不知道布局应该用...阅读全文
![如何使用 MySQL Workbench 自动生成 ER 图、同步更新远程数据库 - MySQL Workbench 使用教程](https://kalacloud.com/static/cf8791bf053a13d36038dcb97bc78daf/ef245/head.jpg) MySQL Workbench 作为 MySQL 官方出品的数据库 GUI 管理工具,它的强大是其他免费管理工具无法匹敌的。特别是使用 MySQL Workbench 设计数据库,创建及同步 ER 图(实...阅读全文
# Ketty ketty 是一个Golang 开发的简单的日志美化输出 Logger。 ## Github [https://github.com/anqiansong/ketty](https://github.com/anqiansong/ketty) ## 安装 ```bash $ go install github.com/anqiansong/ketty@latest ``` ## 快速开始 ```go func main(){ ...阅读全文