retry-go retry 113 go

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 1/3 基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 2/3 基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3 项目地址:https://gi ......
kubernetes Istio Grpc Go

go语言基础

1.常量,变量,指针定义 package main import "fmt" const s = 2 const ( Unknown = 0 Female = 1 Male = 2 ) var n = 3 func main() { a, b, c := 1, 2, "str1" a, b = b, ......
语言基础 语言 基础

go 数组

前言: go中数组的使用, 数组是一个由固定长度的特定类型元素组成的序列, 一个数组可以由零个或多个元素组成, 存放多个同一类型的数据,是一种复杂数据类型 正文: 定义数组语法: var 数组变量名 [元素数量]Type = [元素数量]Type {} 元素数量是常量 一旦定义不能改变 定义方式如下 ......
数组 go

go流程控制语句

前言: go中if else,switch, for ,go的使用 正文: ifelse 流程控制 语法: if 表达式 { //code1 }else if 表达式{ //code2 }else{ //code3 } if条件判断语句中不需要括号 代码示例1: if else isLogin := ......
语句 流程

go常量

前言: Go语言中的常量使用关键字 const 定义,用于存储不会改变的数据, 常量是在编译时被创建的,即使定义在函数内部也是如此 并且只能是布尔型、数字型(整数型、浮点型和复数)和字符串型 正文: 常量的定义 : const name [type] = value 常量规则: 1、常量定义后,可以 ......
常量

go web 框架

在 Go语言开发的 Web 框架中,有两款著名 Web 框架分别是 Martini 和 Gin,两款 Web 框架相比较的话,Gin 自己说它比 Martini 要强很多。Gin 是 Go语言写的一个 web 框架,它具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,非常好的支持中间件和 js ......
框架 web go

【入门】Go语言Map集合详解

一、Map集合介绍 1.1 什么是Map集合? map集合是一种无序的键值对的集合 map是通过key来快速检索数据,key类似于索引,指向数据的值 在获取 Map 的值时,如果键不存在,返回该类型的零值,例如 int 类型的零值是 0,string 类型的零值是 "" Map 是引用类型,如果将一 ......
语言 Map

【命令设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 命令模式(Command Pattern)是一种数据驱动的设计模式,也是一种行为型设计模式。这种模式的请求以命令的形式包裹在对象中,并传给调用对象。调用对象再寻找合适的对象,并把该命令传给相应的处理者。即把请求或操作封装成单个对象,并使其可以被参数化和延迟执行,这种方式将命令和执行者进行了有效 ......
设计模式 命令 语言 模式 Python

go生成唯一的随机数

需求在并发下生成不同的随机数,使用match/rand下的不满足需要 package main import ( "crypto/rand" "fmt" "math/big" "strconv" "sync" "time" ) func main() { wg := sync.WaitGroup{} ......
随机数

NSQ TCP协议规范-protocol_v2.go

通过本文你将学到: nsq中TCP协议是怎么处理的? nsq是怎么应对升级版本的(通过增加商量协议号,使升级比较方便) nsq使用的网络字节序是什么形式的? TCP通信中为啥要处理粘包?怎么处理粘包?NSQ中又是怎么处理粘包的?http是怎么处理粘包的?若传输的是UDP是否会出现粘包的现象? 一、协 ......
protocol_v protocol NSQ TCP go

用go实现get/post请求调用api

注册登录 首页 专栏 后端 文章详情 用go实现get/post请求调用api Heroine 1 发布于 2022-09-01 上海 最近的一次demo,相当于一次复习吧,把踩的坑都记录一遍 先复习一下调用接口的过程 需要url 是get方法,还是post方法? url需要加参数吗? 序列化? 1 ......
post get api

Go: go module

replace module: module-b module: module-a ......
module Go go

(转)为什么 Go 有两种声明变量的方式,有什么区别,哪种好?

原文:https://blog.csdn.net/EDDYCJY/article/details/122465567 大家好,我是煎鱼。 有一位读者刚入门 Go ,提了一个很有意思的问题:Go 有几种声明变量的方式,作为初学者,到底用哪种,有什么区别,又为什么要有多种声明方式呢? 为此,煎鱼将和大家 ......
变量 方式 Go

go数据类型的转换

前言: Go语言同其他语言不同,不存在隐式类型转换, 因此所有的类型转换都必须显式的声明。go在类型转换方面还是有点乱的。 正文: 整型之间的相互转换 转换方式: newNum := type(oldNum) 示例: newNum := int8(num) 转换为 int8 只能小的往大的数据类型转 ......
类型 数据

go算术运算符 ,关系运算符,逻辑运算符等运算符

算术运算符 算术运算符就是加减乘除等操作。 + 相加 A+B - 相减 A-B * 相乘 A*B / 相除 B/A % 求余 B%A ++ 自增 A++ ,go中没有 ++A ,只有 A++ 。另外不能参与运算 -- 自减 A-- ,go中没有 --A ,只要A-- 。另外不能参与运算 示例1:相除 ......
运算符 算术 逻辑

用 Go 剑指 Offer 07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,nul ......
Offer Go 07

【入门】Go语言切片详解

一、Go语言切片简介 1.1 切片的概念 数组和切片相比较切片的长度是不固定的,可以追加元素,在追加时可能会使切片的容量增大,所以可以将切片理解成 "动态数组",但是,它不是数组。 ......
语言

【go】谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)

教程集为您提供谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)等资源,欢迎您收藏本站,我们将为您提供最新的谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)资源 文章目录 一、概述 二、负载均衡算法 2.1 概述 2.2 轮询算法 2.3 随机算法 2.4 随机轮询算法 ......
算法 一致性 Golang

Go语言:编写一个 WebsiteRacer 的函数,用来对比请求两个 URL 来「比赛」,并返回先响应的 URL。如果两个 URL 在 10 秒内都未返回结果,返回一个 error。

问题: 你被要求编写一个叫做 WebsiteRacer 的函数,用来对比请求两个 URL 来「比赛」,并返回先响应的 URL。如果两个 URL 在 10 秒内都未返回结果,那么应该返回一个 error。 实现这个功能我们需要用到 net/http 用来调用 HTTP 请求 net/http/http ......
两个 URL WebsiteRacer 函数 语言

Spring-Retry(重试机制)

​ 在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败、调用远程服务失败、争抢锁失败。 这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而sprin ......
Spring-Retry 机制 Spring Retry

GO语言Windows安装和VScode配置

(1)去GO官方下载安装软件 https://go.dev/doc/install(2)exe安装,安装目录可以设置在c:\\go(3)环境变量配置,主要是GOROOT、GOPATH,参考https://blog.csdn.net/weixin_48102095/article/details/12 ......
Windows 语言 VScode

Go Expert Programming之iota

前言 iota常用于const表达式中,且其值是从零开始,const声明块中每增加一行iota值自增1。 使用iota可以简化常量定义,但其规则必须要牢牢掌握,否则在我们阅读别人源码时可能会造成误解或障碍。本节我们尝试全面的总结其使用场景,另外花一小部分时间看一下其实现原理,从原理上把握可以更深刻的 ......
Programming Expert iota Go

Swoole协程与Go协程的区别,很详细,很nice

进程、线程、协程的概念进程是什么?进程就是应用程序的启动实例。例如:打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源,数据资源,独立的内存空间。 线程是什么?线程属于进程,是程序的执行者。一个进程至少包含一个主线程,也可以有更多的子线程。线程有两种调度策略,一是:分时调度,二是:抢占式 ......
Swoole nice

Go语言环境搭建

1、SDK环境准备 下载地址:https://golang.google.cn/dl/,下载操作系统位数对应的SDK。此处我下载的是64位的,1.17.12版本。 1.1、解压下载的amd64.zip安装包 此处我的解压目录 -> D:\development\GOSDK\go,目录结构如下 1.2 ......
语言 环境

从源码解析Go exec timeout 实现机制

1. 背景 环境:golang 1.9,drawn 测试使用golang exec 执行命令,并配置过期时间,测试脚本如下。 现象:执行脚本后,到超时时间后并为超时退出,反而阻塞住了 func TestExecWithTimeout(t *testing.T) { ctx, cancel := co ......
源码 机制 timeout exec

如何在Go的函数中得到调用者函数名(caller)

在go语言中,可以通过runtimepackage中 Caller函数获取调用者信息 func Caller(skip int) (pc uintptr, file string, line int, ok bool) skip 表示查看第几层调用栈信息,其中0表示的就是当前调用Caller的函数 ......
函数 用者 caller

解决go get无法下载依赖的问题

推荐使用的go版本为1.13及以上版本,声明环境变量 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct #设置不用proxy的私有仓库,多用逗号相隔(可选) go env -w GOPRIVATE=*.corp. ......
问题 get

Go语言-安装篇

1.环境说明 OS:windows10 IDE: VsCode Golang: 1.20.2 2.Vscode安装 VsCode官方下载地址 选择相应的操作系统安装即可 3.Golang安装 3.1Golang安装 选择最新版本安装,安装地址 这里我选择的最新版本的1.20.2,安装地址选择 D:\ ......
语言

Go语言实现TCP通信

TCP协议为传输控制协议,TCP协议有以下几个特点:1. TCP是面向连接的传输层协议;2. 每条TCP连接只能有两个端点,每条TCP连接是点到点的通信;3. TCP提供可靠的交付服务,保证传送的数据无差错,不丢失,不重要且有序;4. TCP提供全双工通信,允许双方在任何时候都能发送数据,为此TCP ......
语言 TCP

Go语言中本地包的嵌套调用方法

最近学习区块链,在使用Go语言的过程中遇到本地包之间相互调用的问题,问题分为两个阶段: 1.如何调用本地包(参考文章:https://blog.csdn.net/taoerchun/article/details/104827702): Golang在1.11版本后加入了新特性go modules, ......
语言 方法