go

gin框架学习手册

拈花ヽ惹草 提交于 2020-10-22 23:29:20
前言   gin框架是go语言的一个框架,框架的github地址是: https://github.com/gin-gonic/gin   转载本文,请标注原文地址: https://www.cnblogs.com/-beyond/p/9391892.html 安装gin框架 go get -u github.com/gin-gonic/gin    第一次使用gin框架   创建一个文件main.go,拷贝如下内容 package main import ( "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.GET("/get", func(c *gin.Context) { c.JSON(200, gin.H{"message": "use get method"}) }) router.Run() }   使用 go run main.go 运行程序,程序默认绑定的是8080端口,测试使用浏览器访问localhost:8080/get,会有如下response:    切换绑定端口   gin框架默认的是绑定到8080端口,但是可以切换端口,方法就是指定router.Run()的参数。   router.Run()的声明如下: func (engine *Engine) Run

[Go] 使用packr包把静态文件打包进二进制内

老子叫甜甜 提交于 2020-10-22 13:34:14
当使用golang开发一个网站时 , 一般是需要部署下静态文件的资源 ,go只是提供接口 , 打包完的go二进制文件不包含静态文件资源 但是当做一个小型的应用时还要再部署静态资源显得比较麻烦 , 这个时候可以使用packr这个包来把静态资源直接打包进二进制里 包的github地址是 https://github.com/gobuffalo/packr 使用的时候可以直接在go.mod里使用v2版本就可以了 go.mod github.com/gobuffalo/packr/v2 v2.5.1 调用的时候使用import引入 import ( "github.com/gobuffalo/packr/v2" ) 具体方法可以参照我这个 , 也可以去看下文档 //获取文件内容,可以打包到二进制 func FileGetContent(file string) string { str := "" box := packr.New("tmpl","../static") content, err := box.FindString(file) if err != nil { return str } return content } 重点是在最终打包build的时候 ,先使用packr2 build 以下 , 然后再去go build packr2命令需要单独下载 https:/

Ubuntu Server搭建Hyperledger Fabric 2.1学习环境

这一生的挚爱 提交于 2020-10-22 08:12:57
最近在学习Hyperledger Fabric,它是由 Linux 基金会发起创建的开源区块链分布式账本。 Hyperledger Fabric是一个开源区块链实现,开发环境建立在 VirtualBox 虚拟机上,部署环境可以自建网络,也可以直接部署在 BlueMix 上,部署方式可传统可 Docker 化,共识达成算法插件化,支持用 Go 和 JavaScript 开发智能合约,尤以企业级的安全机制和 membership 机制为特色。 今天来聊聊怎么搭建一个基于Ubuntu Server的Hyperledger Fabric吧。 01 基本环境配置 建议用虚拟机装一个Ubuntu Server版本即可,不要装图形界面,那个太卡了。Ubuntu Server版本安装的时候注意,选择英文版本的,中文简体安装会出错。 安装好后记得换源成阿里云的,这里换的时候由于虚拟机上不支持复制黏贴,只能手动输入一下啦: deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors

Netty入门教程——认识Netty(转)

╄→尐↘猪︶ㄣ 提交于 2020-10-22 01:04:36
什么是Netty? Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。 Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke's Choice Award,见 https://www.java.net/dukeschoice/2011 )。它活跃和成长于用户社区,像大型公司 Facebook 和 Instagram 以及流行 开源项目如 Infinispan, HornetQ, Vert.x, Apache Cassandra 和 Elasticsearch 等,都利用其强大的对于网络抽象的核心代码。 以上是摘自 《Essential Netty In Action》 这本书,本文的内容也是本人读了这本书之后的一些整理心得,如有不当之处欢迎大虾们指正 Netty和Tomcat有什么区别? Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,他的实质是一个基于http协议的web容器,但是Netty不一样,他能通过编程自定义各种协议,因为netty能够通过codec自己来编码/解码字节流,完成类似redis访问的功能,这就是netty和tomcat最大的不同。 有人说netty的性能就一定比tomcat性能高,其实不然,tomcat从6

转行IT做后端开发,学python还是java?

假装没事ソ 提交于 2020-10-22 00:56:29
你还在纠结Java还是Python的这件事,毫无疑问,这个时候,你仍然还是一个菜鸟,甚至连门都没入。 我为什么这么说呢,先别怼我,压制你心里的怒火,继续往下 我先问大家一个问题,为什么中国人用刀又是很容易上手的一件事情,而外国人用筷子,应该是他们在中国吃饭时最痛苦的一件事情吧。为什么会这样呢?其实原因非常简单,当我们学会了一门技术难度要求更高的技能以后,再去降级学习难度更低的技能是非常容易的一件事情,反之则不然。 这里面有三点我必须说破,却很少有人从这个角度来给大家做分析: 1.如果一个不懂2-3门编程语言的人,或者很少使用到Java或者Python ,来告诉你Java好还是Python好,这是赤裸裸的不负责 任。 如果这个人Python并且混得还稍微可以,他一定会告诉你Python好,如果这个人用Java ,他-定会告诉你用Java好。 如果两个语言都没有用过的键盘侠,他会告诉你语言都是相通的,不要纠结。每个人都说得好有道理的样子,于是让你无从选择。熟练使用8种以上的编程语言,所以才稍微感觉有点资格,来说一说这两门编程语言。 虽然,从我个人的角度在我心目中,编程语言只有两种,第-种是Java/C,第二种是其它。但是我不能通过这种偏激的方式来误导大家。 2.我们必须要明白Java和Python的各自定位。 Java源自C和C+ +的技术体系,于1995年推出

聊聊canal-go的SimpleCanalConnector

江枫思渺然 提交于 2020-10-21 20:30:38
序 本文主要研究一下canal-go的SimpleCanalConnector SimpleCanalConnector canal-go-v1.0.7/client/simple_canal_connector.go type SimpleCanalConnector struct { Address string Port int UserName string PassWord string SoTime int32 IdleTimeOut int32 ClientIdentity pb.ClientIdentity Connected bool Running bool Filter string RollbackOnConnect bool LazyParseEntry bool } SimpleCanalConnector定义了Address、Port、UserName、PassWord、SoTime、IdleTimeOut、ClientIdentity、Connected、Running、Filter、RollbackOnConnect、LazyParseEntry属性 NewSimpleCanalConnector canal-go-v1.0.7/client/simple_canal_connector.go //NewSimpleCanalConnector