golang程序/POSTMAN访问https链接无响应

https中证书起到身份验证和加密传输的作用. 后来证实是证书问题,访问站点证书有问题,无法确认所以无法建立连接并得到响应. golang如何不确认证书 以post方式为例,get类同 package main import ( "crypto/tls" "fmt" "io/ioutil" "net/http" "net/url" "strings" ) func main() { // InsecureSkipVerify 跳过证书确认 client := &http.Client{ Tran...阅读全文

2019 年 Python、Golang、Java、C++、Rust 该如何选择?

Python、Golang、Java、C++、Rust这几门编程语言都是2019非常火热的语言,这几门语言各有特点各有优劣,因此很多初学者总是纠结于如何在这五种语言间选择。实践出真知,下面分别推荐几个 Gitee 上的 Python、Golang、Java、C++、Rust 语言的优质开源项目,希望通过这十个项目帮助大家深入了解这五种语言:)Python:推荐项目1、web代码部署工具 walle-web walle 让用户代码发布终于可以不只能选择 Jenkins,支持各种web代码发布,ph...阅读全文

简书 2019-11-21 20:02:51

要优雅退出吗?dubbogo给你

dubbogo Apache Dubbo是由阿里开源的一个RPC框架,而dubbogo则是相对应的go语言版本: 之前dubbogo一直没有优雅退出的机制,终于有小伙伴忍不住了强烈要求我们实现这个部分。艰难摸鱼了两周之后,我才把这个搞完,该功能的PR是https://github.com/apache/dubbo-go/pull/255。 当我们讨论优雅退出的时候,最基本的要求是自动无损停机。它同时强调了自动和无损两个方面。 首先是自动,而与自动对应的则是手动了。手工介入的缺陷是显而易见的,它要...阅读全文

Golang学习笔记-Goroutines

并发 首先 go 是一个实现并发的语言,并非并行 并发 vs 并行 并行是在同一时间内,可以同时执行多个任务;并发则是在一个时间片内只能执行单一任务,并把一段时间切分为多个时间片,不同时间片执行不同任务,在宏观上看像是在一段时间内同时执行了多个任务。如下图: currency 并行不会总是导致更快的执行时间。这是因为并行运行的组件可能必须相互通信。在组件在多个内核中并行运行的情况下,此通信开销很高。因此,并行程序并不总是能够缩短执行时间 在golang 中使用 goroutines 和 chan...阅读全文

GoLang使用Redis

1、Redis 优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作 2、安装Redis 可前往官网:https://redis.io/,redis的安装、启动这里不多做介绍 3、安装redigo开源库 可使用命令行自动安装或者到github下载手动安装 go get github.com/garyburd/re...阅读全文

go mod 依赖管理的心路历程

在用kubebuilder写一个k8s operator defaultvm,主要是串起ovn网络和虚机的创建,为用户提供默认可用的虚机。 Kubebuilder 是一个基于 CRD 来构建 Kubernetes API 的框架,可以使用 CRD 来构建 API、Controller 和 Admission Webhook。 代码里面调用了 kubevirt.io/client-go 定义的 virtualmachine,使用go mod进行依赖管理,默认引用了 kubevirt.io/clie...阅读全文

Segmentfault 2019-11-22 01:02:40 manshu

golang 定时器mycron

Golang 实现游戏定时器 刚开始学习golang,发现Go没有游戏里定时器功能,有个cron库实现了golang版的cron功能。 但是里面用了是sort全排序,在游戏里,通常是存在数万个定时器,采用排序算法效率较低, 根据其实现思路,将其改成最小堆实现,同时去掉了一些游戏定时器不需要的内容。 其使用如下: // 创建定时器 c := cron.New() // 启动定时器 c.Start() // 停止定时器 c.Stop() // 延迟调用函数 ...阅读全文

Go语言中文网 2019-11-21 16:14:32 juine

Alpine 的 CGO 问题

Golang 很棒,静态编译十分方便。但是,它也不是 100% 静态编译的,因为它需要依赖glibc ( 标准C运行库 )。 而 Docker 最常用的 Apline 镜像,使用的是 musl 库,并不能愉快的运行 Go 程序 网上大部分教程都是教你,CGO_ENABLED=0 go build -a -installsuffix cgo,使用纯 Go 编译,不用 CGO 链接 glibc ,问题就可以解决了。 但是最麻烦的问题是,你需要引入 C/C++ 库的时候,你并不能禁用 CGO 。 幸好...阅读全文

2020 年,你学的编程语言价值多少?

编程语言是人们指导或控制机器的工具,其开发目的在于让操控机器的过程更加简单和顺畅。正因如此,数百种编程语言应运而生。然而,它们的命运却各不相同。一些语言已不复使用,或将在未来几年淘汰。相应地,一些语言将会被充分使用,还有一些崭新的编程语言正在逐渐被人们所接受。本文选取真实可信的调查、统计数据、搜索结果以及薪资等数据,预测 2020 年编程语言的发展趋势。这篇文章将帮助初学者选择适合自己的入门语言,并指导资深人士在切换语言和继续使用当前语言之间作出选择。 我通过两个表格总结了过去五年间编程语言的潮...阅读全文

为什么区块链是不可篡改的

区块链的数据结构是由包含事务信息的块按远近顺序排列的。块按远近顺序在这个链中链接,每个块都指向前面的块。 区块链通常被视为一个垂直堆栈,第一个块是堆栈底部的第一个块,然后将每个块放在前一个块的顶部。使用堆栈将块依次堆叠的概念可视化之后,我们可以使用一些术语,如“高度”来表示块与第一个块之间的距离;和“top”或“top”表示新添加的块。 每个块头生成一个SHA256加密散列来生成散列值。使用这个散列值,可以标识区块链中相应的块。同时,每个块可以通过其块头的“父块哈希值”字段引用前一个块(父块)。...阅读全文

Segmentfault 2019-11-22 01:02:39 真是很秃ran

认识 Go 语言中的数组

数组是具有相同唯一类型的一组已编号且长度固定的数据项序列。 声明方式 在 Go 语言中,数组的声明方式为 var identifier [len]type。 声明时没有指定数组的初始化值,因此所有的元素都会被自动初始化为默认值 0。 // 声明一个数组 var a1 [5]int 复制代码Go 语言中的数组是值类型,因此还可以用 new 来创建: var a2 = new([5]int) 复制代码new 返回类型的指针,因此 a1 与 a2 的区别在于:a1 的类型为 [5]int,a2 的类型...阅读全文

掘金 2019年11月21日 江不知

Go接口之nil != nil

本文来自“灰子学技术”,原文链接如下所示:https://mp.weixin.qq.com/s/ZBd1UcIJFk_DonkxVNgERA一、引出话题:在开始这个话题之前,我们先看一段代码以及其输出结果,代码如下所示: Output: 从上面的输出结果来看,GetA()返回的类型为*A就算赋值为nil,也不等于nil。看到这里笔者觉得很奇怪,明明是GetA()返回值是nil,为什么nil的判断条件是false呢?二、原因分析:在研究了interface之后,笔者发现了真相,原来Go语言中的in...阅读全文

【TiDB@丰巢】支付平台的迁移之旅

因为本文是我第一次发表在 丰巢技术团队 公众号上,所以在简书上发表只能算是转载。丰巢第一次在生产环境实际使用TiDB,是在2018年,其场景是每天产生一亿条以上数据的推送平台,当时我们还发了一篇文章,被PingCAP官方收录:TiDB at 丰巢:尝鲜分布式数据库。这次,因为实际的项目需要,我们选择了QPS和数据一致性要求更高的支付平台,作为第二个迁移到TiDB上的项目。由于丰巢的所有支付,都会通过该平台产生,所以其稳定性和性能,都是重中之重了,而这次的迁移之旅,也就特别的漫长和曲折。1. 支付...阅读全文

MySQL如何控制用户输错密码尝试次数?

目录 生产环境MySQL死锁如何监控及如何减少死锁发生的概率 MongoDB有哪些优秀特性及适合的场景是什么 GO语言对比其他的编程语言有何优势?实际生产环境如何取舍? 一个大事务,有很多更新,现在被回滚了,但是又着急关机重启,怎么办才好? 如何降低UPDATE/DELETE时WHERE条件写错,或者压根没写WHERE条件带来的影响 MySQL如何控制用户输错密码尝试次数? 一、生产环境MySQL死锁如何监控及如何减少死锁发生的概率 首先,死锁并不是"锁死",死锁是由于两个或两个以上会话锁等待产...阅读全文

Segmentfault 2019-11-22 01:02:39 吕青珊

Go接口之nil != nil

本文来自“灰子学技术”,原文链接如下所示:https://mp.weixin.qq.com/s/ZBd1UcIJFk_DonkxVNgERA一、引出话题:在开始这个话题之前,我们先看一段代码以及其输出结果,代码如下所示:​Output: ​从上面的输出结果来看,GetA()返回的类型为*A就算赋值为nil,也不等于nil。看到这里笔者觉得很奇怪,明明是GetA()返回值是nil,为什么nil的判断条件是false呢?二、原因分析:在研究了interface之后,笔者发现了真相,原来Go语言中的i...阅读全文

Go语言中文网 2019-11-21 09:18:36 ZhDavis

企业级Android应用架构设计与开发

​企业级Android应用架构设计与开发Android初中级岗位竞争激烈,中高级岗位却供不应求,差别在哪里?架构能力!大厂招聘中,架构能力已是必备要求。本课程以企业级Android App的架构设计与功能开发,带你初探Android组件化架构、实战各类通用组件,学会构建高扩展性、高可靠性、高可维护性的Android工程,掌握一线互联网公司的工程架构与管理方式适合人群想要晋升为Android中高级的开发者想要获得架构能力的Android开发人员技术储备要求Android基础知识掌握Java语言有设...阅读全文

Go语言中文网 2019-11-21 03:37:13 fengwomei

玩转算法系列--图论精讲 面试升职必备(Java版)

​玩转算法系列--图论精讲 面试升职必备(Java版)图论算法是所有计算机专业的同学必学的基础知识;也是在算法,数据结构,离散数学等领域的重要内容;是面试,升职,计算机专业考研,考博的必考内容;更是计算机网络,编译原理,社交网络算法等领域的基础。但是,由于图论算法本身的复杂性和抽象性,让大多数同学头疼不已。在这个课程中,bobo老师将用其独到的问题讲解方式,庖丁解牛,深入浅出,让大家在这个课程中,真正地玩转图论算法。适合人群准备大厂面试的同学;准备竞赛, 考研的同学;对计算机基础算法感兴趣, 渴...阅读全文

Go语言中文网 2019-11-21 03:34:45 taiyangneng

Mac下安装golang

前言:越来越多人开始走学习golang之路,包括我身边的一些技术同事给自己“充电”新技术,能在未来工作中更好的生存发展。个人使用Mac环境,下面大概简述一安装过程:一、准备工作官网下载安装包:备注:目前最新稳定版本是v1.9开发工具包又分为安装版和压缩版。安装版是Mac和Windows特有的,他们的名字类似于:go1.9.darwin-amd64.pkggo1.9.windows-386.msigo1.9.windows-amd64.msi安装版,有点傻瓜式安装,环境路径都默认好,操作起来比较简...阅读全文

浅谈 CI/CD for kubernetes

生产环境如果准备上 kubernetes,那么必然绕不开如何高效进行 CI/CD 集成的话题。本文拟探讨常见的一些流程和方法,仅供参考。 最常见的 kubernetes 上的 app 发布方式 kubectl apply -f app.yaml kubectl apply -k ./app helm template <app-name> ./app --set vaules.tag.name=tag -n <namespace> > app.yaml && kubectl apply -f a...阅读全文