银行跨行转账业务是一个典型分布式事务场景,假设A需要跨行转账给B,那么就涉及两个银行的数据,无法通过一个数据库的本地事务保证转账的ACID,只能够通过分布式事务来解决。分布式事务分布式事务在分布式环境下,为了满足可用性、性能与降级服务的需要,降低一致性与隔离性的要求,一方面遵循 BASE 理论:基本业务可用性(Basic Availability)柔性状态(
......
528
0
0
2022-05-31
GO 权限管理之 Casbin我们来回顾一下上次分享的 GO中 gjson 库的应用和分享,它主要是提供了一种非常快速且简单的方式从json文档中获取相应值分享了 json与 gjson分别代表什么gjson 的简单使用gjson 校验,获取值gjson的 json 行gjson的键路径匹配规则gjson的修饰符和自定义修饰符要是对 gjson还有点兴趣的话
......
594
0
0
2022-05-30
前言简化并发开发以下代码内容均来自大彬大佬1.简单例子将数组内的数据转变为他们的平方分解以上过程为三个步骤生产信息 producer(),遍历切片处理信息 square(),计算平方消费信息 main(),消费1.生产信息func producer(nums ...int) <-chan int {
// 创建带缓冲通道
out :
......
585
0
0
2022-05-30
距离上次写的博客我的go语言学习经历已经过去五个月了,说实话,这段时间非常痛苦,学习曲折(难度很大),断断续续(差点放弃),但是还是坚持了下来,获益匪浅。那么这一次主要是干啥呢?下面听我娓娓道来:kubernetes (k8s)学习,源码攻坚k8s的代码量非常大,而且比较复杂,所以被称为Golang中最大的开源软件,毫不为过,下面给大家截个图:这里如果大家要
......
402
0
0
2022-05-28
// 借用例子
package main
import (
"fmt""time"
)
type field struct {
name string
}
func (p *field) print() {
fmt.Println(p.name)
}
func main() {
......
505
0
0
2022-05-24
Hello大家好,我是 roseduan,上一篇文章我为大家推荐了一些 Go 语言的入门练手项目,希望对你有所帮助。今天分享的是一些数据结构和算法的项目,在我自己学习 Go 语言的时候,在掌握基础的语法知识之后,会针对性的刷一些 leetcode 题目,借此来巩固自己的语法知识,然后也能够保持解算法题目的感觉,可谓是一举两得吧。所以从下面这些优秀的项目中,一
......
503
0
0
2022-05-21
什么是TCC,TCC是Try、Confirm、Cancel三个词语的缩写,最早是由 Pat Helland 于 2007 年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。TCC组成TCC分为3个阶段Try 阶段:尝试执行,完成所有业务检查(一致性), 预留必须
......
487
0
0
2022-05-21
go-ip2region基于 ip2region 使用 go 扩展的一个简单的 IP 地址归属地查询服务github在线IP地址归属地查询功能提供 http 接口查询 IP 地址归属地提供命令行 下载/更新 最新的 ip2region.db ip 库 (数据来源原仓库)使用可直接下载 releases&nbs
......
440
0
0
2022-05-20
在 Golang 中的 map 结构,在删除键值对的时候,并不会真正的删除,而是标记。那么随着键值对越来越多,会不会造成大量内存浪费?首先答案是会的,很有可能导致 OOM,而且针对这个还有一个讨论:github.com/golang/go/issues/20135。大致的意思就是在很大的 map 中,delete 操作没有真正释放内存而可能导致内存 OOM。
......
380
0
0
2022-05-18
上篇说到超超从汇编的角度的解析了make和new的区别,下面来到了面试中常见的考点GC,Go的GC常常因为性能问题被业界所诟病,下面跟着超超来看看内存垃圾是如何产生的,以及Go从1.3到1.8在GC上做了哪些改进吧!内存垃圾面试官:你知道程序的垃圾是怎么产生的吗?考点:Go内存管理超超:程序在内存上被分为堆区、栈区、全局数据区、代码段、数据区五个部分。对于C
......
412
0
0
2022-05-18
大家好,我是 roseduan,经常看到一些小伙伴学习完 Go 语言的基础知识之后,无法找到合适的练手项目,然后就很迷茫。今天我向大家推荐几个我觉得还不错的 Go 语言入门练手项目,你可以根据自己的兴趣,选择一个合适的,自己去看看,学习一下。在这之前,需要说明一下,很多人看到别人的项目代码一头雾水,完全没有头绪,这是很正常的。因为别人的项目,可能是经历很长时
......
439
0
0
2022-05-17
记录一下如何利用recover和gin中间件来优雅的实现异常处理首先是中间件的实现:package exception
import (
"github.com/gin-gonic/gin"
"log"
"net/http"
)
type Api struct {
Code int
M
......
623
0
0
2022-05-17
背景最近在写Go,有一个项目是多模块的,版本的发布都是在一起的,为了其他项目使用这些模块,所以需要在一个仓库中实现多个模块的发布。仓库结构仓库结构如下:.├── README.md├── a│ ├── a.go│ └── go.mod└── b ├── b.go └── go.mod其中a/go.mod使用如下命令生成:go mod in
......
390
0
0
2022-05-16
Go 团队接受了新增对模糊测试的支持的提议。Go 的应用越来越广泛。现在它是云原生软件、容器软件、命令行工具和数据库等等的首选语言。Go 很早之前就已经有了内建的 对测试的支持。这使得写测试代码和运行都相当简单。什么是模糊测试?模糊测试fuzz testing(fuzzing)是指向你的软件输入非预期的数据。理想情况下,这种测试会让你的应
......
387
0
0
2022-05-16
爬虫步骤明确目标(确定在哪个网站搜索)爬(爬下内容)取(筛选想要的)处理数据(按照你的想法去处理)扩展包go get github.com/antchfx/htmlquery
代码如下package main
import ("fmt""github.com/antchfx/htmlquery""strings""sync"
)
const
......
330
0
0
2022-05-15