golang
文章平均质量分 57
找不到我的路
一枚php小菜狗
展开
-
singleflight 防缓存击穿 使用及原理
文章目录以下文章来源于学点程序 ,作者silencepersingleflight 包主要是用来做并发控制,整个包的核心代码不到100行,充分利用到了map和WaitGroup的特性。常见的场景比如防止 缓存击穿 ,我们可以来模拟一下这种场景:缓存击穿:缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到...转载 2020-03-25 14:02:16 · 4927 阅读 · 4 评论 -
golang根据经纬度计算两地举例
package mainimport ( "fmt" "math")func main() { lat1 := 30.29092 lng1 := 120.074234 lat2 := 30.286866 lng2 := 120.075977 fmt.Println(EarthDistance(lat1, lng1, lat2, lng2))}// 返回值的单位为米f...转载 2019-08-15 10:27:17 · 853 阅读 · 1 评论 -
golang在alpine中的坑
golang在alpine请求一个hosts定义的域名时不生效解决方案echo "hosts: files dns" > /etc/nsswitch.conf参考:https://github.com/golang/go/issues/22846以下为调整后的dockerfileFROM alpineRUN apk add --no-cache libc6-compat #二进制...原创 2019-08-05 10:49:34 · 3743 阅读 · 0 评论 -
golang接口编程
文章目录能做什么?示例http请求入口logicIndexLogic.gotest.gotest1.goInstance.go能做什么?假设现在有一个请求,请求会带一个参数event,要根据不同的event实现对应的处理逻辑那么我们就可以用到接口编程了示例http请求入口 //入口 func (i *IndexCtl) Index() { //接...原创 2018-12-17 14:53:08 · 451 阅读 · 0 评论 -
GO-Grpc微服务开发六 网关和http调用
GO-Grpc微服务开发六 网关和http调用proto文件定义将定义的proto编译为go文件网关中注册服务http请求proto文件定义syntax = "proto3";package kibana;//引入google api实现http转rpcimport "google/api/annotations.proto";//service name is kibanaserv...原创 2018-11-16 10:25:50 · 3592 阅读 · 0 评论 -
GO-Grpc微服务开发一 概览
GO-Grpc微服务开发一 概览概览项目地址主要依赖/工具目录结构概览项目地址git@github.com:juelite/micro-srv.git主要依赖/工具github.com/Unknwon/goconfig 配置文件解析github.com/golang/protobuf/proto 数据传输格式Protocol Buffers 编译器目录结构├── README...原创 2018-11-08 10:09:38 · 795 阅读 · 0 评论 -
GO-Grpc微服务开发五 服务调用优化
GO-Grpc微服务开发四 服务调用优化获取服务进行缓存使用连接池获取服务进行缓存 //初始化服务变量 var service []*consul.CatalogService //获取缓存句柄 bt, err := GetCacheClient() //服务缓存名称 key := "service_" + name //获取缓存 ...原创 2018-11-08 10:02:29 · 1040 阅读 · 0 评论 -
GO-Grpc微服务开发四 服务调用for php
GO-Grpc微服务开发二 服务调用for php参考文档列表一.环境搭建1.安装grpc扩展2.下载protoc命令3.安装PHP GRpc SDK二.通过protoc文件生成PHP文件编写proto文件protoc命令生成PHP文件三.PHP客户端调用微服务 例子1proto文件编辑参考文档列表PHP grpc官方文档 https://grpc.io/docs/quickstart/ph...原创 2018-11-08 09:59:47 · 1772 阅读 · 0 评论 -
GO-Grpc微服务开发三 服务调用for golang
GO-Grpc微服务开发二 服务调用for golang微服务调用rpc微服务调用rpcgolang 版package mainimport ( consulapi "github.com/hashicorp/consul/api" "fmt" "os" &a原创 2018-11-08 09:57:06 · 1022 阅读 · 0 评论 -
GO-Grpc微服务开发二 服务编写
GO-Grpc微服务开发一 服务编写服务编写1.定义proto文件2.将定义的proto编译为go文件3.编写服务微服务运行 (本地环境示例)启动consul启动并注册服务服务编写1.定义proto文件//示例为elc日志syntax = "proto3";//service name is kibanaservice Kibana { //service method is...原创 2018-11-08 09:54:07 · 576 阅读 · 0 评论 -
常见加解密算法golang版本
常见加解密算法golang版本MD5RSA常量/公共方法定义解析公私钥公钥加公钥分段加公钥验签公钥解密私钥加密私钥分段加密私钥加签私钥解密AES公共方法AES/CBC 加解密AES/ECB 加解密DES3DES demo其他随机生成字符串生成字符串掩码可逆加密算法demoMD5 /** * MD5 * @param str string 需要加密的字符串 *...原创 2018-11-09 18:43:06 · 2138 阅读 · 3 评论 -
golang desede(3des)加解密
package mainimport ( "bytes" "crypto/cipher" "crypto/des" "encoding/base64" "encoding/hex" "fmt" "strings")const ( KEY = "FRNX" IV = &原创 2018-09-11 19:31:30 · 1956 阅读 · 0 评论 -
GRPC+CONSUL 服务发现
GRPC简介gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持.gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流...原创 2018-09-11 19:29:07 · 4645 阅读 · 0 评论 -
grpc微服务写redis缓存
依赖包golang.org/x/net/contextgoogle.golang.org/grpcgithub.com/Unknwon/goconfig //为了读取配置文件google.golang.org/grpcgithub.com/golang/protobuf/protoprotoc 工具需先安装https://github.com/google/protob...原创 2018-09-11 19:27:39 · 1740 阅读 · 0 评论