go语言实现md5方法

import ("crypto/md5""fmt")func main(){//第一种方式md5data:=md5.Sum([]byte("caspar")) //校验和fmt.Printf("caspar经过md5方式一的值为:%x\n",md5data) //第二种方式 Md5Inst := md5.New() Md5Inst.Write([]byte("caspar"))md5data2:=Md5Inst.Sum(nil)fmt.Printf("caspar经过md5方式二的值为:%x\n...阅读全文

51CTO博客 2020-08-07 17:40:52 v824394795

Beego 路由组(Namespace)的定义

案例一func init(){ // 定义路由组 使用 Namespace func 来定义 // 路由组的使用: // 在最外层 一般新建一个路由组 关键字:NewNamespace // 返回值用于调用 AddNamespace func 进行注册 ns := beego.NewNamespace("/v1", // 在内部再次需要定义子路由组的时候。 可使用 // NS 级别的Namespace 去定义 理论上Namespace是可以无限进行嵌套的 beego.NSNamespace("/...阅读全文

Segmentfault 2020-08-12 15:32:31 code

[Introduction]Go特殊的引用类型:值传递/指针传递/引用传递

结论:golang中函数传参只有值传递变量名/变量值/变量地址var a = 10 log.Printf("%p\n",a) // 变量地址假设为 0x00000001变量名a,变量值10,变量地址0x00000001指针/引用指针变量存放其他变量的地址。在C++中引用就是变量的另一名字变量名本身并没有作用,只相当于代号利于程序员编程,引用作为别名本质上还是指向同一个内存地址。指针本质上占用一小段内存空间值传递值传递就是深拷贝,在函数内传递的副本,并不会影响函数外的实参在函数调用时,将实参深拷贝...阅读全文

Segmentfault 2020-08-12 09:32:32 Wzy_CC

Bytom侧链Vapor源码浅析-节点出块过程

在这篇文章中,作者将从Vapor节点的创建开始,进而拓展讲解Vapor节点出块过程中所涉及的源码。做为Vapor源码解析系列的第一篇,本文首先对Vapor稍加介绍。Vapor是目前国内主流公链Bytom的高性能侧链,是从Bytom主链中发展出来的一条独立的高性能侧链。Vapor是平台最重要的区块链基础设施之一,目前采用DPoS的共识算法,具有高性能、高安全、可扩展等特点,用于搭建规模化的商业应用。Vapor节点创建及出块模块的启动Vapor入口函数:vapor/cmd/vapord/main.g...阅读全文

Segmentfault 2020-08-11 18:32:33 比原链Bytom

go的 bytes.buffer 缓冲器

一、创建缓冲期bytes.buffer是一个缓冲byte类型的缓冲器1、使用bytes.NewBuffer创建:参数是[]byte的话,缓冲器里就是这个slice的内容;如果参数是nil的话,就是创建一个空的缓冲器。2、bytes.NewBufferString创建3、bytes.Buffer{} func main(){ buf1 := bytes.NewBufferString("hello") buf2 := bytes.NewBuffer([]byte("hello")) buf3 :=...阅读全文

Segmentfault 2020-08-11 15:32:32 code

Golang线程安全的map

最近在项目中需要在多线程下操作map,查阅资料后发现golang得sync包中有提供一个sync.map可以作为线程安全得map使用,但是最后同时推荐了另一个开源的cmap工具包,性能较sync.map更出色,所以没有使用golang的syanc包的map。在这里对两种map进行一下总结和学习。1.sync.mapgolang中如果在多个routine中使用map,是有可能会发生fatal错误导致程序挂掉的。所以在sync包中提供了一个线程安全的map,用Load和Store方法来代替对普通ma...阅读全文

Segmentfault 2020-08-11 13:32:35 user_NZ0oFMSa

Goland Run和Debug控制台乱码、出现莫名其妙的空格终极解决方法

# Goland Run 和 Debug 控制台乱码、出现莫名其妙的空格终极解决方法 因为是~~正版~~(学生认证白嫖),所以会习惯性更新 `Goland` ,从而踩到不少坑,这里说一下 `Goland` 控制台(console)出现的问题,包括 `乱码`、`空格`、`显示不全` 的问题 > 版本: `Goland Version 2020.02`(不保证后续版本有效) > ![image-WkcNO3U.png](https://static.studygolang.com/20...阅读全文

Go语言中文网 2020-08-07 13:02:12 avtion

使用 GoReleaser 发布你的应用

简介GoReleaser 采用 Golang 开发,是一款用于 Golang 项目的自动发布工具。无需太多配置,只需要几行命令就可以轻松实现跨平台的包编译、打包和发布到 Github、Gitlab 等版本仓库种。安装MacOS1 2 3 4 5 # 最新版本 $ brew install goreleaser/tap/goreleaser # 可能不是最新版本 $ brew install goreleaser 从 Docker 运行1 2 3 4 5 6 7 ...阅读全文

Go语言中文网 2020-08-07 11:53:00 xiexiaoming

golang中的iota介绍

iota是一个古希腊字母.在golang中表示常量计数器.使用的规则如下:每当const出现时, 都会使iota初始化为0.const中每新增一行常量声明将使iota计数一次.我们再来看看示例代码:const a0 = iota // a0 = 0 // const出现, iota初始化为0 const ( a1 = iota // a1 = 0 // 又一个const出现, iota初始化为0 a2 = iota // a1 = 1 // const新增一行, iota 加1 a3 = 6 /...阅读全文

Segmentfault 2020-08-10 14:32:34 zxyle

强力Django+杀手级xadmin开发在线教育网站 采用 Python3.7全新开发

### 强力Django+杀手级xadmin开发在线教育网站 采用 Python3.7全新开发 Django作为主流Python后端框架,在国内应用非常广泛,无论知名大厂,还是新兴小司,都争相使用 本课程就是一个Django的实战练手项目,以在线教育网站,带你吃透Django的各个知识点,不同于其它课程的是,本课程采用Django+xadmin完成项目,这套技术组合,可助你解决大部分Python类网站后端问题,解决很多企业的实际需求! 章节目录: 第1章 强力django+杀手级xad...阅读全文

Go语言中文网 2020-08-07 02:21:06 jiasuo

Dubbo-go 发布 1.5 版,朝云原生迈出关键一步

简介: 2008 年诞生的 Dubbo 已有十多年历史,依靠阿里和其社区,历久弥新。2016 年发布的 Dubbo-go 也已进入第五个年头,如今全面兼容 Dubbo v2.7.x 的 Dubbo-go v1.5 终于发布了。1.png 作者 | 于雨、何鑫铭 等 引语计算机技术浪潮每 10 年都有一次技术颠覆,相关知识体系最迟每 5 年都会革新一次,大概每两年贬值一半,在应用服务通信框架领域亦然。凡是有长期生命的通信框架,大概有 5 年的成长期和 5 年的稳定成熟期。每个时代都有其匹配的应用通...阅读全文

51CTO博客 2020-07-31 22:08:10 南笙5539

go micro 熔断与限流

本篇文章参考【Micro In Action(七):熔断与限流】https://medium.com/@dche423/m...@dche423写的太好了,这里仅做部分摘录介绍熔断go micro 封装了hystrix-go,gobreaker,都在plugins下下面是hystrix的例子import ( ... "github.com/micro/go-plugins/wrapper/breaker/hystrix/v2" ... ) func main(){ ... // New Serv...阅读全文

Segmentfault 2020-08-09 20:32:32 舞林

go micro 链路追踪

本片介绍go micro中使用jaeger作为链路追踪的使用jaeger相关知识请见官方文档,这里使用docker启动gaeger,作为测试使用启动jaegerdocker run -d -p 6831:6831/udp -p 16686:16686 jaegertracing/all-in-one:latest访问地址http://localhost:16686go micro版本2.x,和1.x有些许不同样例代码使用examples/greeter中代码修改srv/mian.go// Pac...阅读全文

Segmentfault 2020-08-09 20:32:32 舞林

go micro jwt 网关鉴权

本文介绍go micro中的api访问权限控制,这里仅仅介绍内部服务间的互相调用鉴权(jwt),不是针对用户系统的细致rbac模式。目标:内部服务间调用应在header上带上jwt token,否则返回错误提示信息有2种方式在每个服务上各自鉴权在网关上鉴权,各服务只需注册一个wrapper检查header中jwt信息鉴权。这样做有个前提,所有服务需放到同一个网络内,走统一的服务注册中心,这里主要介绍这种方式。先创建一个myauth的服务,对外提供2个接口GetJwt() 返回jwt token,...阅读全文

Segmentfault 2020-08-09 18:32:32 舞林

go micro plugin

这篇文章中的 plugin 主要讲https://github.com/micro/micro 中的插件,主要用于自定义网关中如何加载插件。(如文章[micro auth jwt])go-micro中的插件请见https://github.com/micro/go-p...官方README中有一些介绍https://github.com/micro/micr...官方示例:在项目目录创建plugin.gopackage main import ( "log" "github.com/micro/...阅读全文

Segmentfault 2020-08-09 16:32:31 舞林