zoukankan      html  css  js  c++  java
  • golang常用模块介绍

    golang模块

    一、命令行库Cobra


    Cobra提供简单的接口来创建强大的现代化CLI接口,比如git与go工具。
    Cobra同时也是一个程序, 用于创建CLI程序

    https://www.jianshu.com/p/7abe7cff5384

    二、client-go


    Client-go是kubernetes官方发布的调用K8S API的golang语言包,可以用来开发K8S的管理服务、监控服务,配合前端展示,就可以开发出一款定制化的、可视化的管理或监控工具。目前最新版本为7.0,对应K8S的版本为1.10,访问链接:https://github.com/kubernetes/client-go

    https://www.cnblogs.com/leejack/p/9525878.html

    三、hugo

    Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。

    http://www.gohugo.org/
    https://gohugo.io/

    四、kubernetes 从入门到实践


    https://www.kancloud.cn/huyipow/kubernetes

    五、jsonpatch可以找到两个json字符串的区别,然后把区别发给前端,避免全量传输

    example:

    package main
    
    import (
        "fmt"
        "github.com/mattbaird/jsonpatch"
    )
    
    var simpleA = `{"a":100, "b":200, "c":"hello"}`
    var simpleB = `{"a":100, "b":200, "c":"goodbye"}`
    
    func main() {
        patch, e := jsonpatch.CreatePatch([]byte(simpleA), []byte(simpleB))
        if e != nil {
            fmt.Printf("Error creating JSON patch:%v", e)
            return
        }
        for _, operation := range patch {
            fmt.Printf("%s
    ", operation.Json())
        }
    }


    https://github.com/mattbaird/jsonpatch

    六、使用golang操作kafka:sarama及其扩展sarama-cluster

    又因为sarama不支持consumer group,于是又使用了sarama cluster

    文档:
    https://godoc.org/github.com/bsm/sarama-cluster
    https://godoc.org/github.com/Shopify/sarama
    示例:https://github.com/bsm/sarama-cluster

    https://studygolang.com/articles/8942

    加载证书的示例:https://dev.to/davidsbond/golang-implementing-kafka-consumers-using-sarama-cluster-4fko

    只消费一次的示例:https://blog.csdn.net/jeffrey11223/article/details/81436747

    七、ssh

    文档:https://godoc.org/golang.org/x/crypto/ssh#example-Client-Listen
    代码:https://github.com/golang/crypto
    https://www.jianshu.com/p/7d315f8551ad

    8、errors错误处理接口

    https://godoc.org/github.com/pkg/errors#example-New

    9、Protocol类似于json,可以在多个语音之间传输

    ProtoBuf: 是一套完整的 IDL(接口描述语言),出自Google,基于 C++ 进行的实现,开发人员可以根据 ProtoBuf 的语言规范生成多种编程语言(Golang、Python、Java 等)的接口代码
    protobuf是Google开发出来的一个语言无关、平台无关的数据序列化工具,在rpc或tcp通信等很多场景都可以使用。通俗来讲,如果客户端和服务端使用的是不同的语言,那么在服务端定义一个数据结构,通过protobuf转化为字节流,再传送到客户端解码,就可以得到对应的数据结构
    https://segmentfault.com/a/1190000009277748
    https://www.jianshu.com/p/1a3f1c3031b5
    https://segmentfault.com/a/1190000010477733
    https://github.com/golang/protobuf

    10、goole的rpc:grpc

    https://github.com/grpc/grpc-go
    https://grpc.io/docs/quickstart/go.html
    https://grpc.io/docs/tutorials/basic/go.html
    https://doc.oschina.net/grpc?t=60133
    https://segmentfault.com/a/1190000016328212
    https://www.jianshu.com/p/506c7c5f72be
    https://www.jianshu.com/p/774b38306c30

    11、golang的上下文管理context:

    应用场景:在 Go http 包的 Server 中,每一个请求在都有一个对应的goroutine去处理。请求处理函数通常会启动额外的goroutine用来访问后端服务,比如数据库和 RPC 服务。用来处理一个请求的goroutine通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的 token、请求的截止时间。当一个请求被取消或超时时,所有用来处理该请求的goroutine都应该迅速退出,然后系统才能释放这些goroutine占用的资源
    https://www.jianshu.com/p/d24bf8b6c869
    https://zhuanlan.zhihu.com/p/34417106
    https://deepzz.com/post/golang-context-package-notes.html
    https://segmentfault.com/a/1190000006744213
    https://juejin.im/post/5a6873fef265da3e317e55b6

    12、文件上传下载:sftp

    https://github.com/pkg/sftp
    https://godoc.org/github.com/pkg/sftp#pkg-examples
    http://www.01happy.com/golang-transfer-remote-file/

  • 相关阅读:
    LeetCode 297. Serialize and Deserialize Binary Tree 二叉树的序列化与反序列化(C++/Java)
    LeetCode 381. Insert Delete GetRandom O(1)
    LeetCode 380. Insert Delete GetRandom O(1) 常数时间插入、删除和获取随机元素(C++/Java)
    LeetCode 673. Number of Longest Increasing Subsequence 最长递增子序列的个数 (C++/Java)
    LeetCode 675. Cut Off Trees for Golf Event 为高尔夫比赛砍树 (C++/Java)
    LeetCode 460. LFU Cache LFU缓存 (C++/Java)
    LeetCode 451. Sort Characters By Frequency 根据字符出现频率排序 (C++/Java)
    LeetCode 332. Reconstruct Itinerary重新安排行程 (C++/Java)
    LeetCode 295. Find Median from Data Stream数据流的中位数 (C++/Java)
    Codeforces Round #318 (Div. 2) A Bear and Elections (优先队列模拟,水题)
  • 原文地址:https://www.cnblogs.com/shengulong/p/10257666.html
Copyright © 2011-2022 走看看