每秒1w+分布式事务--dtm的Redis存储性能测试分析

## 概述 之前dtm给出了Mysql作为存储引擎的性能测试报告,在一个普通配置的机器上,2.68w IOPS,4核8G机器上,能够支持大约每秒900+分布式事务,能够满足大部分公司的业务需求。 此次带来的是Redis存储引擎的测试报告,在一个普通配置的机器上,能够达到大约10800每秒的分布式事务能力,对比Mysql存储,有10倍左右的性能提升,满足绝大部分公司的业务需求。 下面我们来详细说明测试的步骤,并分析其中影影响性能的各个因素。 ## 测试环境 下面的服务器都来自...阅读全文

Go语言中文网 2021-12-28 10:38:03 yedf

Go内置database/sql连接池 - 源码学习

## 引言 Go内置了数据库相关的库 - database/sql,实现数据库操作相关的接口,其中还包含一个很重要的功能 - 连接池,用来实现连接的复用,限制连接的数量,从而最大程度的复用连接,提高性能,避免连接数量失控,导致资源消耗不可控。 本文借Go内置的database/sql库,来一起学习如何一步步设计包含连接池的数据库组件,包括模型抽象、连接复用,以及如何管理连接数。 ## 设计 ### 模型抽象 首先,我们要对解决领域进行抽象。 我们目标是设计一个...阅读全文

Go语言中文网 2021-12-27 18:35:43 uuid

前后端交互,密码加密,RSA 实现前端 js 加密,后端 go 解密

# RSA 加密算法简介 一种比较常见的非对称加密算法,常用于前后端交互中的密码加密,前端使用公钥加密密码,后端使用私钥进行解密。公钥可对外开放,私钥是存放在服务端,外部正常情况下是拿不到解密私钥的。 **以下为百度百科的部分解释:** `RSA` 公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。 在公开密钥密码体制中,加密密钥(即公开密钥)`PK` 是公开信息,而解密密钥(即秘密密钥)`SK` 是需要保密的。加密算...阅读全文

Go语言中文网 2021-12-27 11:19:02 Grassto

让 Go 的错误处理更加强大

Go 所提供的默认的 `errors` 包有很多的不足。编写多层架构应用程序并使用 API 公开功能的时候,相比于单纯的 `string` 类型的值,更需要具有上下文信息的错误处理。意识到这个缺点后,我开始实现一个更强大,更优雅的 error 包。这是一个逐渐演化的过程,随着时间推移,我需要在这个包中引入更多的功能。 在此,我们会探讨我们如何使用一个 `CustomError` 数据类型为应用中带来更多的价值,并且使错误处理更强大。 首先需要明白的是,如果实现了 `Error()` ...阅读全文

Go语言中文网 2021-12-26 21:55:28 dust347

如何使用 atomic 包减少锁冲突

![](https://raw.githubusercontent.com/studygolang/gctt-images2/master/Go-How-to-Reduce-Lock-Contention-with-the-Atomic-Package/1.png) ## 写在前面 > 本文基于 Golang 1.14 Go 提供了 channel 或 mutex 等内存同步机制,有助于解决不同的问题。在共享内存的情况下,mutex 可以保护内存不发生数据竞争(data rac...阅读全文

Go语言中文网 2021-12-26 21:40:52 double12gzh

context canceled,谁是罪魁祸首?

灵魂三问: 1. 客户端请求超时,取消了请求,服务端还会继续执行么? 2. 客户端请求超时,取消了请求,服务端还会返回结果么? 3. 客户端请求超时,取消了请求,服务端会报错么? # 问题现象 告警群里有告警,定位到报错的微服务看到如下报错:`Post http://ms-user-go.mp.online/user/listByIDs: context canceled`。 ![image-20211223104344170](https://bbk-images....阅读全文

Go语言中文网 2021-12-23 17:26:07 nanjingfm

Go实战 | 一文带你搞懂从单队列到优先级队列的实现

原文链接:https://mp.weixin.qq.com/s/bPLRcsmSO5_MvqN8F812zQ 大家好,我是「Go学堂」的渔夫子,今天跟大家聊聊在我们项目中的优先级队列的实现及应用场景。 ### 优先级队列概述 队列,是数据结构中实现先进先出策略的一种数据结构。而优先队列则是带有优先级的队列,即先按优先级分类,然后相同优先级的再 进行排队。优先级高的队列中的元素会优先被消费。如下图所示: ![图1-优先级队列概况图.png](https://p6-...阅读全文

Go语言中文网 2021-12-23 09:23:04 yudotyang

Beerus 1.1.5来啦,支持用形参接收参数,可以切换到JSON模式

此次更新的地方在于: 1. 可以用路由函数的形参接收参数 2. 可以切换到JSON模式 3. 可以接收同名的多参数 这里有一个详细的演示视频,有兴趣的同学可以点击观看。 [https://www.bilibili.com/video/BV1JR4y1W7fJ](https://www.bilibili.com/video/BV1JR4y1W7fJ/)阅读全文

Go语言中文网 2021-12-22 13:04:34 1784955689

golang 解决下载文件名乱码 Safari浏览器下载文件名乱码

一开始的写法: `c.Header("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", url.QueryEscape(showFileName)))` 能够兼容大多数浏览器,部分浏览器文件名还是会乱码,比如iPhone的Safari浏览器 终极写法: `c.Header("Content-Disposition", fmt.Sprintf("attachment; filename*=utf...阅读全文

Go语言中文网 2021-12-22 10:25:34 eflight

最好用的 5 款 React 富文本编辑器

![react 富文本编辑器](https://kalacloud.com/static/e4f1295739c94edeb0fdaad95153e5a7/ef245/01_header.jpg) 本文首发:[最好用的 5 款 React 富文本编辑器 - 卡拉云](https://kalacloud.com/blog/top-5-rich-text-editors-for-react/) 富文本编辑器常用于网络上各种形式的内容展示,从简单的静态博客到复杂的内容管理系统。它应用于多种...阅读全文

Go语言中文网 2021-12-17 20:57:58 HiJiangChuan

最好用的七大顶级 API 接口测试工具

![最好用的七大顶级 API 接口测试工具](https://kalacloud.com/static/cca5dd88bb85116cac0e36c71bd5af9b/ef245/head.jpg) 本文首发:[最好用的七大顶级 API 接口测试工具 - 卡拉云](https://kalacloud.com/blog/api-testing-tools/) 现在 API 接口已经成为软件开发重要的组成部分,由于 API 并没有 GUI 图形界面,无法直观的对接口进行测试,所以对于前...阅读全文

Go语言中文网 2021-12-17 19:47:13 HiJiangChuan

gRPC: 使用 Buf 快速编译 protobuf 文件

![](https://oscimg.oschina.net/oscnet/up-6a3296fe36e519ac01732e962df22728978.png) ## 介绍 使用过 gRPC 的用户都应该知道,protocol buffer 文件需要使用相关的命令行,把 *.proto 文件编译成 *.go 文件。 根据不同需要,会使用到不同的命令行文件。以 Go 语言为例,我们需要大致如下几个命令行文件。 | 工具 | 介绍 | 安装 | | ---- | ---- |...阅读全文

Go语言中文网 2021-12-16 02:50:45 pointgoal

Beerus 上线啦,用 Go 开发的 web 解决方案

Beerus 是一个用 Go 开发的 web 解决方案,包含一个 web 框架,一个数据库操作框架,一个正在规划中的 RPC 框架,目前( web 框架,数据库操作框架 已经发布了第一个版本) ## Web 框架 因为他是牵头的框架,说到 web 大家想到的肯定是接口管理,所以他的名字就直接沿用了 Beerus ,也就是这一套项目的品牌名称,它是以 net/http 为基础,在此基础上扩展了路由的管理方式,并增加了拦截器,会话管理,用 struct 接收参数,参数验证等功能,还提供了 W...阅读全文

Go语言中文网 2021-12-15 17:46:13 1784955689

字节跳动北京招golang工程师-公司内golang为第一大语言,想应用吗

团队介绍我们负责维护字节跳动的广告系统-巨量引擎,目前是国内领先的广告平台,支撑抖音、今日头条、西瓜视频、番茄小说等多个爆款应用的商业化变现,是公司的核心部门,欢迎你成为我们新的一员!福利待遇1. 行业内极具竞争力的报酬,15-60K x 15+,优秀者另有期权2. 六险一金3. 免费三餐,餐后水果饮料、下午茶、零食供应,节日时会有节日美食供应4. 公司有合作的健身房, 可以健身、游泳、瑜伽,每年一次免费体检5. 双休,弹性工作,早10点-晚7点,根据实际情况会有一定的加班6. 公司附近租房每月...阅读全文

Go语言中文网 2021-12-13 21:08:31 xuechengwei

go执行脚本命令源码分析

## 简介 > 在开发中我们可能会遇到需要在程序中调用脚本的需求,或者涉及到两个语言之间的交互,笔者之前就遇到了需要在go中调用python的需求,然后在代码中应用了go-python3这个库,实际上在go中调用python的脚本也是一个解决之法。这片文章将介绍在go中运行shell脚本的方法以及对其源码的相应解析。 ## 程序用例 **test_command.go** ```go package learn import ( "fmt" "os...阅读全文

Go语言中文网 2021-12-12 15:25:32 LuciferMS

即时通讯(IM)开源项目OpenIM本周版本发布- v1.0.7-web端一键部署

介绍OpenIM:由前微信技术专家打造的基于 Go 实现的即时通讯(IM)开源项目,包括IM服务端和客户端SDK。开发者私有化部署,基于SDK二次开发,可以轻松替代第三方IM云服务,打造具备聊天、社交功能的app。无论是开发同城交友、企业办公亦或是当今最热门的元宇宙,还是在应用中集成IM功能,都非常便捷。OpenIM代码100%开源,开源协议Apache-2.0 License任何企业和个人都可以免费使用(包括商用)。请各位看官多多支持,转发和宣传,助力OpenIM成为开源IM的No1web端体...阅读全文

Go语言中文网 2021-12-10 17:43:26 OpenIM