分布式事务的这些常见用法都有坑,来看看正确姿势

随着微服务架构的流行,随之而来就必然遇到跨服务的分布式事务这个难题。分布式事务之所以难,主要是因为分布式系统中的各个节点都可能发生各种非预期的情况。本文先介绍分布式系统中的异常问题,然后介绍这些问题带给分布式事务的挑战,接下来指出现有各种常见用法的问题,最后给出正确的方案。 ## NPC的挑战 分布式系统最大的敌人可能就是NPC了,在这里它是Network Delay, Process Pause, Clock Drift的首字母缩写。我们先看看具体的NPC问题是什么: - N...阅读全文

Go语言中文网 2021-11-30 10:22:18 yedf

撸了一个可调试 gRPC 的 GUI 客户端

![](https://tva1.sinaimg.cn/large/008i3skNly1gwuz3q9a2nj30rs0rs3z1.jpg) # 前言 平时大家写完 `gRPC` 接口后是如何测试的?往往有以下几个方法: 1. 写单测代码,自己模拟客户端测试。 ![](https://tva1.sinaimg.cn/large/008i3skNly1gwv0138u2ij31eq0lwn07.jpg) 2. 可以搭一个 `gRPC-Gateway` 服务,这样就可以在...阅读全文

Go语言中文网 2021-11-29 15:02:41 crossoverJie

关于go工程化,模块化,项目目录划分的一些问题

我是一名热爱go的大学生(gopher),目前已经go已经用了很久了,也在公司负责后端项目的开发,但是到现在为止感觉技术差不多是有了,但是遇到了一些问题很困扰,一直不知道怎么弄才能搞好,就是go的工程化这一块,整个项目怎么划分目录,怎么划分各个业务模块,因为go不可以循环引用,模块没有划分好很容易就会循环引用,前一段时间写代码直接 api model service一套,sql语录直接写在service里,业务复杂了确实不太好,后来看到别人还有dao层,现在也在尝试新的布局,但是不知道布局应该用...阅读全文

Go语言中文网 2021-11-27 22:46:15 liubaorui

如何使用 MySQL Workbench 自动生成 ER 图、同步更新远程数据库 - MySQL Workbench 使用教程

![如何使用 MySQL Workbench 自动生成 ER 图、同步更新远程数据库 - MySQL Workbench 使用教程](https://kalacloud.com/static/cf8791bf053a13d36038dcb97bc78daf/ef245/head.jpg) MySQL Workbench 作为 MySQL 官方出品的数据库 GUI 管理工具,它的强大是其他免费管理工具无法匹敌的。特别是使用 MySQL Workbench 设计数据库,创建及同步 ER 图(实...阅读全文

Go语言中文网 2021-11-26 23:50:25 HiJiangChuan

如何使用 Workbench 远程连接到 MySQL 数据库 -MySQL Workbench 使用教程

![MySQL Workbench 使用教程:如何使用 Workbench 远程连接到 MySQL 服务器](https://kalacloud.com/static/0f04401a00607bc8a11bdf2c11b7f388/ef245/head.jpg) MySQL Workbench 是一款专门为 MySQL 设计的可视化数据库 GUI 管理工具,我们可以在自己的计算机上,使用图形化界面(GUI)远程管理 MySQL 数据库。 有关 MySQL 远程管理软件,你可以选择 ...阅读全文

Go语言中文网 2021-11-26 23:13:06 HiJiangChuan

go 二分查找

# go 二分查找 ## 二分查找 给定一个有序数组 [1,2,4,6,8,8,10],再给定一个target值,此处以 8 为例,一般有4个查询目标 1. 从左向右第一个大于等于target的值的下标 2. 从左向右第一个大于target的值的下标 3. 从左向右最后一个小于等于target的值的下标 4. 从左向右最后一个小target的值的下标 3 和 4 是 1 和 2 的对立面,而1 和 2本质上是同一个目标 ## code ```go packag...阅读全文

Go语言中文网 2021-11-26 02:04:22 letterbeezps

httptest WriteHeader无效问题

## 背景 测试一个调用http接口时,使用了httptest.NewServer来mock一个http服务端,在验证响应异常状态码时发现奇怪问题,明明设置了异常状态码,但是http.Get始终返回的状态码都是正常的200: ``` mockHttpSrv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello worl...阅读全文

Go语言中文网 2021-11-24 23:43:58 uuid

【米哈游】弹性工作、大量HC、高薪资回报

程序技术类、职能类、美术表现类、游戏策划类、游戏与平台运营类、境外发行类、市场商务类、综合管理类等各种职位都有大量 hc **投递链接:http://mtw.so/5Rj8lF** **福利待遇** 保底 16 薪(工作表现优秀的同学,无上限),每年二次的提薪机会 六险一金(全额五险一金 + 商业医疗保险),最近新增加了补充公积金 高于普遍标准的年假 本人、家属的年度体检福利 岗位具体薪酬参考Boss 直聘主页 内部咖啡社,每月很多免费咖啡 每日...阅读全文

Go语言中文网 2021-11-24 18:39:15 tinaaa

Protobuf 为啥比 JSON、XML 牛?

> 收录于 [《深入微服务》](https://printlove.cn/categories/%E6%B7%B1%E5%85%A5%E5%BE%AE%E6%9C%8D%E5%8A%A1/) 大家好,我是 “潇洒哥老苗”。 今天,我带大家更深层次的认识认识 Protobuf,如果你对 Protobuf 的用法还不熟悉,直接前往:[https://developers.google.com/protocol-buffers/docs/proto3](https://developers...阅读全文

Go语言中文网 2021-11-24 16:04:58 miaogaolin

MySQL Workbench 使用教程 - 如何使用 Workbench 操作 MySQL / MariaDB 数据库中文指南

![MySQL Workbench 使用教程 - 如何使用 MySQL Workbench 操作数据库](https://kalacloud.com/static/2bdadee47f747aa8b35007e256a0b778/ef245/head.jpg) 本文首发:《[MySQL Workbench 使用中文教程 - 卡拉云](https://kalacloud.com/blog/mysql-workbench-tutorial/)》 MySQL Workbench 是一款专门...阅读全文

Go语言中文网 2021-11-23 23:26:48 HiJiangChuan

Go时区Parse的坑

## 日期解析 ## 背景 当有一个日期字符串(2014-11-12 11:45:26)需要转化为Go的time类型,我们第一时间肯定会想到time包的Parse方法,指定字符串的格式layout: ```go layout := "2006-01-02 15:04:05" str := "2014-11-12 11:45:26" t, err := time.Parse(layout, str) ``` 但是,有个容易忽略的问题,go语言默认的时区用的是**UT...阅读全文

Go语言中文网 2021-11-23 22:31:08 uuid

go-python3使用指南与踩坑记录

## 简介 ​ 好久没有更新博客了,笔者毕业一年多了,在国内某大厂工作,最近在工作过程中接到了一个颇有挑战感的活,在解决过程中发现网上对这方面的学习资料还是有所欠缺,所以特地记录。没错,就是使用go调用python3的一些实践和探索。众所周知,go是静态类型的语言,python是动态类型的语言,要在静态类型的语言上调用动态语言,期间的翻译工作其实是十分繁杂的,其中充满了很多不确定性,下面由笔者带大家一起看看这个探索的历程。 ## 环境搭建 ​ github上有现成的go调用...阅读全文

Go语言中文网 2021-11-23 16:19:58 LuciferMS

「IM开源推荐」前微信技术专家打造,golang实现,一键部署,客户端SDK全平台支持,轻松替代IM云服务

## **背景** OpenIM成立之初就将“开源”作为核心战略来推进,开源充分体现了自由、平等、分享的互联网精神。 全球范围频繁发生的数据泄露、勒索病毒、隐私滥用等安全事件一次次给企业敲响警钟,企业管理者对数据资产的价值、数据安全的重要性有了更清晰的认识,数据安全成就企业核心价值。 IM作为核心业务数据,安全的重要性毋庸置疑,OpenIM开源以及私有化部署让企业能更放心使用。 如今IM云服务商收费高企,如何让企业低成本、安全、可靠接入IM服务,是OpenIM的历...阅读全文

Go语言中文网 2021-11-23 15:02:39 OpenIM