随笔分类 -  go

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页

Gin框架系列02:路由与参数
摘要:回顾# 上一节我们用Gin框架快速搭建了一个GET请求的接口,今天来学习路由和参数的获取。 请求动词# 熟悉RESTful的同学应该知道,RESTful是网络应用程序的一种设计风格和开发方式,每一个URI代表一种资源,客户端通过POST、DELETE、PUT、GET四种请求方式来对资源做增删改查的操 阅读全文

posted @ 2020-05-25 17:00 ExplorerMan 阅读(453) 评论(0) 推荐(0) 编辑

Gin_路由
摘要:1. 基本路由 gin 框架中采用的路由库是基于httprouter做的 1、router:=gin.Default():这是默认的服务器。使用gin的Default方法创建一个路由Handler;2、然后通过Http方法绑定路由规则和路由函数。不同于net/http库的路由函数,gin进行了封装, 阅读全文

posted @ 2020-05-25 16:54 ExplorerMan 阅读(969) 评论(0) 推荐(0) 编辑

beego 的正则路由
摘要:* beego的restful路由 https://blog.csdn.net/fareast_mzh/article/details/86667517 * main.go // beego-route project main.gopackage main import ( "fmt" "gith 阅读全文

posted @ 2020-05-25 16:41 ExplorerMan 阅读(721) 评论(0) 推荐(0) 编辑

golang中发送http请求的几种常见情况
摘要:整理一下golang中各种http的发送方式 方式一 使用http.Newrequest 先生成http.client -> 再生成 http.request -> 之后提交请求:client.Do(request) -> 处理返回结果,每一步的过程都可以设置一些具体的参数,下面是一个最朴素最基本的 阅读全文

posted @ 2020-05-20 21:29 ExplorerMan 阅读(918) 评论(0) 推荐(0) 编辑

Es 自由查询
摘要:Yes. That's how it works. RawStringQuery is a query, not the message body. As such, you use it like you'd do with any query: package main import ( "fm 阅读全文

posted @ 2020-05-20 17:12 ExplorerMan 阅读(275) 评论(0) 推荐(0) 编辑

Golang groupcache LRU 缓存简介与用法
摘要:1.LRU LRU(Least Recently Used,最近最久未使用算法)是一种常见的缓存淘汰算法,当缓存满时,淘汰最近最久未使用的元素,在很多分布式缓存系统(如Redis, Memcached)中都有广泛使用。其基本思想是如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可 阅读全文

posted @ 2020-05-06 16:02 ExplorerMan 阅读(946) 评论(0) 推荐(0) 编辑

使用Golang的singleflight防止缓存击穿
摘要:背景 singleflight 介绍 示例 源码分析 其他 Top 背景 在使用缓存时,容易发生缓存击穿。 缓存击穿:一个存在的key,在缓存过期的瞬间,同时有大量的请求过来,造成所有请求都去读dB,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。 Top singleflight 介绍 i 阅读全文

posted @ 2020-04-24 18:31 ExplorerMan 阅读(794) 评论(0) 推荐(0) 编辑

深度解密 Go 语言之 sync.Pool
摘要:最近在工作中碰到了 GC 的问题:项目中大量重复地创建许多对象,造成 GC 的工作量巨大,CPU 频繁掉底。准备使用 sync.Pool 来缓存对象,减轻 GC 的消耗。为了用起来更顺畅,我特地研究了一番,形成此文。本文从使用到源码解析,循序渐进,一一道来。 本文基于 Go 1.14 目录 是什么 阅读全文

posted @ 2020-04-21 09:29 ExplorerMan 阅读(572) 评论(0) 推荐(0) 编辑

golang中字符串的查找方法小结
摘要:1)func Contains(s, substr string) bool这个函数是查找某个字符是否在这个字符串中存在,存在返回true 示例如下: import ( "fmt" "strings" ) func main() { fmt.Println(strings.Contains("wid 阅读全文

posted @ 2020-04-09 11:55 ExplorerMan 阅读(1552) 评论(0) 推荐(0) 编辑

Go mod 使用【h】
摘要:如何使用 Modules ? 把 golang 升级到 1.11(现在1.12 已经发布了,建议使用1.12) 设置 GO111MODULE GO111MODULE GO111MODULE 有三个值:off, on和auto(默认值)。 GO111MODULE=off,go命令行将不会支持modul 阅读全文

posted @ 2020-04-08 16:36 ExplorerMan 阅读(514) 评论(0) 推荐(0) 编辑

grpc-gateway:grpc转换为http协议对外提供服务
摘要:我所在公司的项目是采用基于Restful的微服务架构,随着微服务之间的沟通越来越频繁,就希望可以做成用rpc来做内部的通讯,对外依然用Restful。于是就想到了google的grpc。 使用grpc的优点很多,二进制的数据可以加快传输速度,基于http2的多路复用可以减少服务之间的连接次数,和函数 阅读全文

posted @ 2020-04-07 18:34 ExplorerMan 阅读(958) 评论(0) 推荐(0) 编辑

goku-api-gateway
摘要:高可用的微服务解决方案 通过EOLINKER API网关,帮助企业进行API服务治理与API性能维护,降低IT运维的成本,提高系统灵活性,安全可靠地将企业内部系统通过微服务架构互相连接,为企业数字化赋能。 阅读全文

posted @ 2020-04-07 18:24 ExplorerMan 阅读(675) 评论(0) 推荐(0) 编辑

Go语言开发的微服务框架
摘要:Go语言开发的微服务框架有什么? 1、项目名称:Istio 项目简介:Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要对服务的代码进行任何修改。 2、项目名称:Go-kit 项目简介: 阅读全文

posted @ 2020-04-07 15:58 ExplorerMan 阅读(4831) 评论(0) 推荐(0) 编辑

go-kit 微服务 服务熔断(hystrix-go 实现)
摘要:go-kit 微服务 服务熔断(hystrix-go 实现) 对客户端请求login方法添加熔断 Hystrix 在微服务架构中,每个服务都是相互关联的,比如我们下单服务和扣钱服务是分开的,现在扣钱服务出现的bug不能正常服务 Hystrix可以让我们在在微服务架构中对服务间的调用进行控制,加入一些 阅读全文

posted @ 2020-04-07 15:51 ExplorerMan 阅读(973) 评论(0) 推荐(0) 编辑

雪崩利器 hystrix-go 源码分析
摘要:阅读源码的过程,就像是在像武侠小说里阅读武功秘籍一样,分析高手的一招一式,提炼出精髓,来增强自己的内力。之前的帖子说了一下微服务的雪崩效应和常见的解决方案,太水,没有上代码怎么叫解决方案。github上有很多开源的库来解决雪崩问题,比较出名的是Netflix的开源库hystrix。集流量控制、熔断、 阅读全文

posted @ 2020-04-07 15:50 ExplorerMan 阅读(311) 评论(0) 推荐(0) 编辑

hystrix-go简介
摘要:hystrix是一个容错库,旨在隔离指向远程系统,服务和第三方库的请求,杜绝级联故障,并在复杂的分布式系统中实现弹性,毕竟在分布式系统中,故障是不可避免的。 此项目脱胎于由Netflix开源的同名java项目。https://github.com/Netflix/Hystrix 像Hystrix命令 阅读全文

posted @ 2020-04-07 15:03 ExplorerMan 阅读(322) 评论(0) 推荐(0) 编辑

golang 函数作为参数传递(回调)
摘要:和其他很多语言一样,golang中函数也可以作为其它函数的参数进行传递,然后在其它函数内调用执行,一般称之为回调。 语法:以函数签名作为主调函数的形参的类型,即传递一个指向函数的指针 func main() { sayhello("john", addperfix)} func addperfix( 阅读全文

posted @ 2020-04-02 18:31 ExplorerMan 阅读(2192) 评论(0) 推荐(0) 编辑

go 单向通道
摘要:func GetCha(cha <-chan int) { //这里参数用了一个单向通道 只允许接收 for{ if v,ok := <-cha; ok{ fmt.Println(v) } } //cha <- 2 这里会发生编译错误 } func main() { cha := make(chan 阅读全文

posted @ 2020-04-02 18:30 ExplorerMan 阅读(255) 评论(0) 推荐(0) 编辑

go channel select如何屏蔽已关闭通道
摘要:go channel select如何屏蔽已关闭通道(如果不屏蔽的话,select 一直会处于选择状态) func main() { channel := make(chan int ,20) selectChannel(channel) getChannel(channel) time.Sleep 阅读全文

posted @ 2020-04-02 18:29 ExplorerMan 阅读(649) 评论(0) 推荐(0) 编辑

go err
摘要:golang自定义err方案很多 // Errno 代表某种错误的类型 type Errno int func (e Errno) Error() string { return "errno " + strconv.Itoa(int(e)) } func main(){ // 示例3。 const 阅读全文

posted @ 2020-04-02 18:27 ExplorerMan 阅读(224) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页

导航