Go语言中文网 为您找到相关结果 1726

Kotlin语言深入解析

课程介绍:在2017年的Google I/O大会上,Google正式宣布Kotlin将成为Android开发的官方支持语言。一时间,关于Kotlin的相关介绍如雨后春笋般涌现出来,Kotlin也很快成为近几个月来最为火热的开发语言之一。但值得一提的是,Kotlin出现至今已经有了几年的时间,甚至有不少公司的Android App已经部分或是全部采用Kotlin进行了开发,这得益于Kotlin精巧的设计、优雅的语法以及与Java 100%的互操作性。与Java相比,Kotlin是一门年轻的语言,但是发展和迭代速度却非常之快。Kotlin是由知名的工具公司JetBrains公司所推出。对于JetBrains公司的介绍无需多言,这家位于捷克的公司开发出了多款优秀的IDE工具,如IntelliJ I...阅读全文

博文 2020-01-14 23:01:00 lijm1266

【golang包管理】 GPROXY使用

&痛点: 使用 go get 命令 自动下载相应的包时,由于国内网络原因会出现各种 类似于 golang.org/x/... 的问题 &解决方案 使用 golang 的 go module 包管理工具(golang版本 >= 1.11),设置 goproxy 即可 &步骤 虽然下面的内容主要是讲解如何设置 GOPROXY,但是我们也推荐你在使用 Go 模块时将 GO111MODULE 设置为 on 而不是 auto。 Go 1.13 及以上(推荐) 打开你的终端并执行: $ go env -w GOPROXY=https://goproxy.cn,direct 完成。 macOS 或 Linux 打开你的终端并执行: $ export GOPROXY=https://goproxy.cn 或...阅读全文

博文 2019-11-03 12:33:13 aside section._1OhGeD

go get 获取被墙依赖包解决方法

##GOPROXY 环境变量 我们知道从 Go 1.11 版本开始,官方支持了 go module 包依赖管理工具。 其实还新增了 GOPROXY 环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这无疑对我等无法科学上网的开发良民来说是最大的福音。 更可喜的是,goproxy.io 这个开源项目帮我们实现好了我们想要的。该项目允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务 https://goproxy.io,我们只需设置该环境变量即可正常下载被墙的源码包了: `go export GOPROXY=https://goproxy.io ` 也可以通过置空这个环境变量来关闭,export GOPROX...阅读全文

Komodo IDE 11 for Mac(IDE集成开发工具) v11.1.0(91033)激活版

实用的IDE集成开发工具哪里有?komodo ide 11 mac破解版可以在 Windows、Mac OS X 和 Linux 上运行,并支持通用的开源语言 —— Python、Perl、PHP 和 Ruby。代码智能引擎非常可靠。提供了所有语言的多线程和多进程服务,同时支持代码折叠、跟踪变化、智能语法检测以及快速书签等实用型功能。Komodo IDE 11 for Mac下载扫描所有语言安装找到定制扩展,比如 PEAR 模块。在项目方面,它支持与 CVS、Subversion 和 Perforce 的集成,也允许直接向服务器 FTP 传递代码。https://www.macdown.com/mac/3219.html Komodo IDE 11 for Mac下载破解教程1、Komodo...阅读全文

博文 2019-07-04 17:32:53 mac小小

云服务器 ECS弹性变配能力总览

摘要: 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,充分的助您降低 IT 成本,提升运维效率,使您更专注于自己核心业务创新。它的一个重要优势就是弹性计算,可以在数分钟内创建数千台的云服务器来应对您的业务压力,方便您根据自己的业务的需求从水平和垂直两个维度进行管理。 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,充分的助您降低 IT 成本,提升运维效率,使您更专注于自己核心业务创新。它的一个重要优势就是弹性计算,可以在数分钟内创建数千台的云服务器来应对您的业务压力,方便您根据自己的业务的需求从水平和垂直两个维度进行管理。 下面我们将着重介绍下目前云服务器的弹性能力,也许有您所不知道但是...阅读全文

2019-06-01

Tags: channel [单选题]关于无缓冲和有缓冲的channel,下面说法正确的是() A 无缓冲的channel是默认的缓冲为1的channel B 无缓冲的channel和有缓冲的channel都是同步的 C 无缓冲的channel和有缓冲的channel都是非同步的 D 无缓冲的channel是同步的,而有缓冲的channel是非同步的 回答错误!正确答案是 D [试题解析] golang channel 有缓冲 与 无缓冲 是有重要区别的 之前认为 有缓冲与无缓冲的区别 只是 无缓冲的 是 默认 缓冲 为1 的缓冲式 其实是彻底错误的,无缓冲的与有缓冲channel有着重大差别 那就是一个是同步的 一个是非同步的 怎么说?比如 c1:=make(chan int) 无缓冲 c...阅读全文

阿里免费教你学习前端开发CSS基础

课程介绍 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。 课程目标 • 掌握CSS开发技术 适合人群 • 前端开发者 课时列表 • 课时1:CSS基础 • 课时2:CSS选择器(上) • 课时3:CSS选择器(下) • 课时4:CSS属性_背景、颜色、边框 • 课时5:CSS属性_字体...阅读全文

关于go中map的使用问题

map[key] 可以获取到value的引用,但是这个引用如何记录呢? 比如我的value有100个成员变量 map[key].value1 = a map[key].value2 = b map[key].value3 = c ... 这样写下去不是要有100次检索的过程么.这不科学啊. point := &map[key] point .value1 = a point .value2 = b point .value3 = c ... 这样写不是更科学么.但是编译器提示我不支持&.请问我该怎么作呢...阅读全文

webSocket原理探索

本文概述 Web Sockets的目标是在一个单独的持久连接上提供全双工、双向通信。在Javascript创建了Web Socket之后,会有一个HTTP请求发送到浏览器以发起连接。在取得服务器响应后,建立的连接会将HTTP升级从HTTP协议交换为WebSocket协议。 由于WebSocket使用自定义的协议,所以URL模式也略有不同。未加密的连接不再是http://,而是ws://;加密的连接也不是https://,而是wss://。在使用WebSocket URL时,必须带着这个模式,因为将来还有可能支持其他的模式。 使用自定义协议而非HTTP协议的好处是,能够在客户端和服务器之间发送非常少量的数据,而不必担心HTTP那样字节级的开销。由于传递的数据包很小,所以WebSocket非常适...阅读全文

Protobuf编码指南

这个文档会介绍protocol buffer的二进制有线格式(binary wire format)。你并不是需要理解这些后才能在应用里使用protocol buffer,但是当你想知道不同的protocol buffer格式是如何影响编码后的消息体的体积时,这些知识会非常有用。 一个简单的消息 假设有一个非常简单的消息定义: message Test1 { optional int32 a = 1; } 在应用中,你创建了一个Test1消息并把a设置为150。然后你把消息序列化到输出流中,如果你能查看编码后的消息,你会看到三个字节: 08 96 01 到目前为止,如此小而且都是数字-但是这是什么意思呢?继续往下看 Varint编码 要理解上面protocol buffer编码的数据,你需要...阅读全文

博文 2019-09-29 22:32:48 KevinYan

快速一键部署测试环境,降低环境配置风险

摘要: 环境部署是软件测试很重要的一个环节,但也是比较耗时间的环节,很多企业经常是项目立项后,开始邮件申请服务器资源,再三催促审批通过后,进行手工部署搭建环境,然后解决各种依赖和修改各种配置文件。如何有效减少环境部署流程,提升环境搭建效率,并且保证环境配置质量安全呢? 环境部署是软件测试很重要的一个环节,但也是比较耗时间的环节,很多企业经常是项目立项后,开始邮件申请服务器资源,再三催促审批通过后,进行手工部署搭建环境,然后解决各种依赖和修改各种配置文件。如何有效减少环境部署流程,提升环境搭建效率,并且保证环境配置质量安全呢?针对这些需求,新型一站式研发效能平台,云效的环境管理系统提供了解决方案。 首先,解决测试服务器资源管理的问题。 云效平台统一对测试服务器资源(包含:测试服务...阅读全文

http headers大总结

http headers 本文记录自己使用和理解到的headers,参考MDN,如有不同看法请发评论。 方向表示是请求header还是响应header或者两种情况都有,r是请求header,w是响应header,空白就是双向header;作用和解释如果是空白就是我不清楚。 Name 方向 作用 解释 Accept r 通用 请求时告诉服务端可以接受的响应类型,用于协商,服务端会按照顺序和权重返回合适的响应数据类型。 Accept-Charset r 通用 同上 客户端接受的字符集。 Accept-Encoding r 通用 同上 客户端可以接受的压缩编码。 Accept-Language r 通用 同上 客户端接受语言。 Accept-Ranges w Range 在Range请求时返回,标...阅读全文

博文 2020-04-12 10:32:41 eudore

golang

GO并发,采用CSP模型(Communication Sequantial Process) 1,csp模型 2,不需要锁、不需要callback 3,并发编程 1,性能保障,可以做系统开发 2,垃圾回收机制 3,灵活的类型、支持函数式编程、异步IO 4,并发处理 package main import "net/http" import "fmt" func main() { http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) { fmt.Fprintln(writer, "

Hello world

") }) http.ListenAndServe(":8888", nil...阅读全文

博文 2019-05-05 04:31:42 strideahead

Spring boot集成Go-FastDFS实现图片上传删除等功能

一.背景工作中接触到需要采集并管理大量图片的需求,本来是用的FastDFS,但是发现实际情况是在项目实施时难以找到linux服务器去安装FastDFS,所以经过调研,选择了可以在windows服务器上安装部署的Go-FastDFS文件服务器二.Go-FastDFS简介go-fastdfs是一个基于http协议的分布式文件系统,它基于大道至简的设计理念,一切从简设计,使得它的运维及扩展变得更加简单,它具有高性能、高可靠、无中心、免维护等优点。三.安装Go-FastDFS文件服务器1)下载地址:https://github.com/sjqzhang/go-fastdfs/releases2)下载完成直接启动fileserver.exe3)验证是否安装成功,访问localhost:80804)验证...阅读全文

用 Go 来了解一下 Redis 通讯协议

用 Go 来了解一下 Redis 通讯协议 原文地址:煎鱼的迷之传送门 Go、PHP、Java... 都有那么多包来支撑你使用 Redis,那你是否有想过 有了服务端,有了客户端,他们俩是怎样通讯,又是基于什么通讯协议做出交互的呢? 介绍 基于我们的目的,本文主要讲解和实践 Redis 的通讯协议 Redis 的客户端和服务端是通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 客户端和服务器发送的命令或数据一律以 \r\n(CRLF)结尾(这是一条约定) 协议 在 Redis 中分为请求和回复,而请求协议又分为新版和旧版,新版统一请求协议在 Redis 1.2 版本中引入,最终在 Redis 2.0 版本成为 Redis 服务器通信的标准方式 本文是基于新版协议来实现功能,...阅读全文

博文 2018-06-07 21:34:37 煎鱼

Golang语言社区 课程2018年11月19日 更新说明

Golang语言社区 课程2018年11月19日 更新说明 1 从零搭建游戏服务器-第二期: 第二十三节:服务器架构拆分说明 第二十四节:服务器网关说明及实现 第二十五节:服务器架构日志模块 https://study.163.com/course/introduction.htm?courseId=1005743022&share=2&shareId=400000000538037 社区福利: 彬哥笔记 --3 开始学习Go语言需要准备什...阅读全文

博文 2018-11-19 19:34:43 Golang语言社区

Go 译文之如何使用反射 Part 2

作者:Jon Bodner | 地址:Learning to Use Go Reflection — Part 2 译者前言 这篇博文介绍的内容比较实在,主要是关于两方面的内容。一是介绍 reflection 在 encoding/json 中的应用,另一个是利用反射开发了一个 Cacher 工厂函数,实现函数式编程中的记忆功能,其实就是根据输入对输出进行一定限期的缓存。 这篇文章的翻译没有上一篇那么轻松,因为涉及了一些函数式编程的术语,之前也并没有接触过。为了翻译这篇文章,简单阅读了网上的一篇关于函数式编程的文章,文章地址。望没有知识性错误。 译文如下: 上一篇文章,(阅读英文原版),我们介绍了 Go 的反射包 reflection。并通过一些示例介绍了它的特性。但是,我们还不清楚它究竟有...阅读全文

博文 2019-06-19 10:34:17 波罗学

兄弟连区块链技术培训Fabric 1.0源代码分析(35)Peer #EndorserServer(Endorser服务端)

兄弟连区块链技术培训Fabric 1.0源代码分析(35)Peer #EndorserServer(Endorser服务端)# Fabric 1.0源代码笔记 之 Peer #EndorserServer(Endorser服务端)## 1、EndorserServer概述EndorserServer相关代码在protos/peer、core/endorser目录下。* protos/peer/peer.pb.go,EndorserServer接口定义。* core/endorser/endorser.go,EndorserServer接口实现,即Endorser结构体及方法,以及Endorser服务端ProcessProposal处理流程。## 2、EndorserServer接口定义###...阅读全文

博文 2018-07-23 15:34:58 Delete_88c3

TCP长连接用json通信服务端怎么确定服务?

初次做长连接服务,遇到点小问题,以前都是http的,以url确定服务 举个例子说得清楚点 比如有2个服务,一个登录一个聊天,客户端传过来对应的json是 登录: {"type":"login","username":"abc","password":"123456"} 聊天: {"type":"chat","from":"张三","to":"李四","content":"李四你好"} json的type字段就表明了请求什么服务 对于golang通常我们要把这俩json解析为对应的结构体: type Login struct{ Type string Username string Password string } ...阅读全文

Go 1.8rc3 源代码学习:scanner

前言 scanner package 包含了 golang 词法分析器相关的数据结构和方法,源代码位于 /src/go/scanner example_test.go example_test.go 包含了一个使用 scanner 包的示例方法,该方法对 Euler 公式进行词法扫描 func ExampleScanner_Scan() { // src is the input that we want to tokenize. src := []byte("cos(x) + 1i*sin(x) // Euler") // Initialize the scanner. var s scanner.Scanner fset := token.NewFileSet() // ...阅读全文

博文 2017-02-10 10:00:48 xingpingz

golang 函数

在golang中,函数不仅可以用于封装代码、分割功能、解耦逻辑,还可以化身为普通的值,在其他函数间传递、赋予变量、做类型判断和转换等等,就像切片和字典的值那样。 函数值可以由此成为能够被随意传播的独立逻辑组件(或者说功能模块)。 demo: package main import "fmt" type Printer func(content string) (n int, err error) func printToStd(content string) (byteNum int, err error) { return fmt.Println(content) } func main() { var p Printer p = printToStd p("something") }  ...阅读全文

Go语言开发的存储手机相册项目

# TaoAlbum 道相册 ## 说明 ### 项目由服务端和安卓客户端组成 ### 1.[Go语言后端](https://github.com/markusleevip/taostorage)项目配置使用,实现手机相册备份到私有服务器的功能 ### 2.[安卓客户端](https://github.com/markusleevip/TaoAlbum-android) ### 在[output](https://github.com/markusleevip/TaoAlbum-android/tree/master/output)目录提供了Windows x64平台的可运行版本。 ### 输入服务端地址,点击上传全部,将手机相册的照片全部上传到服务端,服务端使用SHA265算法对文件去重,...阅读全文

博文 2019-06-14 11:13:44 markus

RocketMQ主从如何同步消息消费进度?

微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 前面我也跟大家讲述了 RocketMQ 读写分离的规则,但是你可能会问,主从服务器之间的消费进度是如何保持同步的?下面我来给大家解答一下。 如果消费者消费模式不同,也会有不同的保存方式,消费者端的消息消费进度保存到 OffsetStore 中,他有两个实现类: org.apache.rocketmq.client.consumer.store.LocalFileOffsetStore // 本地消费进度保存实现 org.apache.rocketmq.client.consumer.store.RemoteBrokerOffsetStore // 远程消费进度保存实现 其中,如果是广播...阅读全文

博文 2019-10-25 20:32:49 aside section._1OhGeD

让数据库运行在浏览器里?TiDB + WebAssembly 告诉你答案

作者:Max 一直以来都有个梦想: 希望有一个数据库能够弹性扩展(分布式)到成百上千节点的规模,易于学习和理解,可以运行在私有云、公有云、Multi-Cloud、Kubernetes,也能够跑在嵌入式设备(比如树莓派)上,更酷的是也能够直接运行在浏览器里,而且不需要任何浏览器扩展(Extension),变成「口袋数据库」,就像那部电影《蚁人》。 今天,这一切都变成了现实:TiDB 可以直接运行在浏览器本地。打开浏览器,你可以直接创建数据库,对数据进行增删改查。关掉浏览器,一切都消失了,干净绿色环保—— 首先在笔记本浏览器打开 play.pingcap.com(这里用的是 MacOS 上面的 Chrome,不确定其它浏览器是否正常),可能需要几秒来加载页面,然后就能看到熟悉的 Shell 了。...阅读全文

博文 2019-11-05 16:34:03

Golang 处理隐藏的空字符串编译时报错:illegal byte order mark

trim_test.go:479:11: illegal byte order mark println(" 民商法学院") 测试代码: func TestTrim(t *testing.T) { //因编辑器去除了此编码字符串,此处模拟字符 println(string('\uFEFF')+"民商法学院\n") println(strings.TrimSpace(string('\uFEFF')+"民商法学院\n")) } 需要将空字符串转换到16进制(FEFF): println(string('\uFEFF')+"民商法学院\n") println(strings.TrimSpace(strings.TrimPrefix(string('\uFEFF')+"民商法学院\n",strin...阅读全文

博文 2018-09-14 17:34:43 承诺一时的华丽

golang两种解析k8s资源yaml文件的方式(带---分隔符))

网上找了几种方案,糅合在一起,再自己作一下---分隔符的split切分,就可以随意解析出我们需要的yaml里的资源定义啦。引处,我感兴趣的是Deployment~ 需要关注的点:gopkg.in/yaml.v3这种方式自定义能力强,在只需要自己感兴趣的资源时,非常有用。yaml_k8s这种方式比较标准,也不用自定义结构,但和k8s的API版本相关,非严谨或是版本统一的情况,推荐使用。 代码送上: package main import ( "encoding/json" "fmt" "os" "strings" apps_v1 "k8s.io/api/apps/v1" yaml_k8s "k8s.io/apimachinery/pkg/util/yaml" yaml_v3 "gopkg.in...阅读全文

博文 2020-05-12 01:32:51 万州客

分布式从ACID、CAP、BASE的理论推进

创声明作者: 刘丹冰Aceld,微信公众号同名 作为当今互联网后端技术栈工程师、无论Golang、Java或者其他系,分布式的理论概念都逐步成为必备理论基础知识之一, 本文主要讨论分布式的CAP理论的推进,这是你走进分布式大门的第一块敲门砖。 提纲:一、从本地事务到分布式理论二、ACID理论三、CAP理论四、CAP理论“3选2”论证五、BASE理论 附加:分布式概念 分布式实际上就是单一的本地一体解决方案,在硬件或者资源上不够业务需求,而采取的一种分散式多节点,可以扩容资源的一种解决思路。它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。 那么在了解分布式之前,我们应该从一体式的构造开始说明...阅读全文

博文 2020-03-27 10:32:48 aceld

阿里高级专家应答:各种数据在一个统一计算平台上的融合,才能产生更大的价值

摘要: 阿里巴巴这种超大数据体量上才会遇到的独特挑战,让应答在技术上有了更清晰的认识,一定要夯实分布式系统的基础。“只有把基础夯实了,才能支持上层各种计算场景在大体量上的实现,让各种新的算法在‘阿里体量’上真正发挥潜力。” 《沉淀》是云栖社区展示专家风采的人物栏目。它呈现每个专家独一无二的人生经历、认识和感悟的同时,也能帮助你沉淀技术,收获对技术和人生的判断。我们的想法是:“若你想精进为一个很厉害的人,不妨细细品味这些技术牛人背后的沉淀。”如果你想了解这些云栖专家更多分享时,请点击云栖专家频道,当然我们也欢迎你往前走一步,成为我们的云栖专家(https://yq.aliyun.com/expert),与技术大牛一起“煮酒论英雄”。 “这个没啥好讲的,找XX和XX技术Leader吧...阅读全文

Go gRPC教程-客户端流式RPC(四)

前言 上一篇介绍了服务端流式RPC,客户端发送请求到服务器,拿到一个流去读取返回的消息序列。 客户端读取返回的流的数据。本篇将介绍客户端流式RPC。 客户端流式RPC:与服务端流式RPC相反,客户端不断的向服务端发送数据流,而在发送结束后,由服务端返回一个响应。 情景模拟:客户端大量数据上传到服务端。 新建proto文件 新建client_stream.proto文件 1.定义发送信息 // 定义流式请求信息 message StreamRequest{ //流式请求参数 string stream_data = 1; } 2.定义接收信息 // 定义响应信息 message SimpleResponse{ //响应码 int32 code = 1; //响应值 string value =...阅读全文

博文 2020-04-26 10:25:53 FireworksEasyCool

golang调用原生epoll引起event loop阻塞问题

前言: golang标准库net很优秀,可以让开发者轻易构建非阻塞网络服务,但开发爽快带来的问题协程数加大,比如在net/http里一个连接两个协程,grpc算是业务和keepalive心跳是四个协程,数据的进出是通过channel传输。 golang netpoll抽象了epoll事件的调用,借助runtime的gopark&goready实现就绪协程的调度,让应用层用同步方法构建io异步的网络应用。 该文章原文地址 http://xiaorui.cc/archives/6758 问题: 那么如何规避netpoll的协程太多的问题? 业界通用的方案是通过原syscall epoll实现网络应用,比如evio、gnet库。我先前使用过evio构建过不少服务,但当你的业务调用含有阻塞逻辑时会使...阅读全文

博文 2020-03-21 21:54:34 rfyiamcool

Go 编译器内核:给 Go 新增一个语句 —— 第一部分

这是两部分系列文章中的第一部分,该文章采用教程的方式来探讨 Go 编译器。Go 编译器复杂而庞大,需要一本书才可能描述清楚,所以这个系列文章旨在提供一个快速而深度优先的方式进入学习。我计划在以后会写更多关于编译器领域的描述文章。 我们会修改 Go 编译器来增加一个新的(玩具性质)语言特性,并构建一个经过修改的编译器进行使用。 ## 任务 —— 增加新的语句 很多语言都有 `while` 语句,在 Go 中对应的是 `for`: ```go for { } ``` 增加 `while` 语句是比较简单的,因此 —— 我们只需简单将其转换为 `for` 语句。所以我选择了一个稍微有点挑战性的任务,增加 `until`。`until` 语句...阅读全文

博文 2019-12-03 10:37:28 suhanyujie

Go实现海量日志收集系统(一)

项目背景 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 当系统机器比较少时,登陆到服务器上查看即可满足 当系统机器规模巨大,登陆到机器上查看几乎不现实 当然即使是机器规模不大,一个系统通常也会涉及到多种语言的开发,拿我们公司来说,底层是通过c++开发的,而也业务应用层是通过Python开发的,并且即使是C++也分了很多级别应用,python这边同样也是有多个应用,那么问题来了,每次系统出问题了,如何能够迅速查问题? 好一点的情况可能是python应用层查日志发现是系统底层处理异常了,于是又叫C++同事来查,如果C++这边能够迅速定位出错误告知python层这边还好,如果错误好排查,可能就是各个开发层的都在一起查到底是哪里引起的。当然可能这样说比较笼统,但是却引发了一个问题: 当系...阅读全文

xxl-job-executor的gin中间件

# xxl-job-executor的gin中间件 ## 背景 xxl-job-executor-go是xxl-job的golang执行器,可以独立运行,有时候我们要与项目或者框架(如:gin框架)集成起来合并为一个服务,本项目因此而生。 ## 执行器项目地址 https://github.com/xxl-job/xxl-job-executor-go ## 与gin集成示例 ```go package main import ( "github.com/gin-gonic/gin" "github.com/gin-middleware/xxl-job-executor" "github.com/xxl-job/xxl-...阅读全文

你应该知道的HTTP基础知识

2017-08-22怪盗kidou腾讯课堂Coding学院点击蓝字,关注我们哦! 作者:怪盗kidou链接:http://www.jianshu.com/p/e544b7a76dac说明:本文内容仅限于本人熟知的内容,HTTP的内容任意一个知识点都可以单独写一篇博客,所以别指望靠一篇博客可以讲清楚,本文的主要作用是为以后的博客作铺垫,所以更详细的HTTP协议内容可参考RFC 2616,本人水平有限,如有不正确的地方欢迎留言指出。1. HTTP请求报文格式HTTP 的请求报文分为三个部分请求行、请求头和请求体,格式如图: HTTP请求报文格式注:部分文章也将HTTP请求报文分为两部分请求头和请求体,请求头的第一行为请求行。1.1 请求行请求行(Request Line)分为三个部分:请求方法、...阅读全文

记一次golang的内存泄露

程序功能 此程序的主要功能是将文件中数据导入到clickhouse数据库中。 【问题描述】 服务器内存每隔一段时间会耗尽 【问题分析】 由于使用的是go语言开发的,所以采用了业界流行的工具pprof。 参考URL:https://cizixs.com/2017/09/11/profiling-golang-program/ 工具的使用与思路: 1)先修改源代码 2)安装工具观察 3)根据工具抓取的现象进行分析 4)修复内存缺陷代码, 再根据分析结果修复内存泄漏的地方 5)发布代码进行再跟踪分析 ================================================== 1)修改代码: 使用这个工具前需要在代码中写几行代码,以便能使用这个工具的来收集数据。 1 //引...阅读全文

博文 2020-02-16 09:30:45 CtripDBA

golang服务端初始化过程

golang 服务端程序初始化流程: golang程序中只能有一个main函数,用来进行全局初始化。各个package中还会有对应模块的init函数。 初始化时,首先会默认调用main所在的package,然后加载import的package,并初始化引入的package对应的init函数,直至所有的package都加载完成,执行main包中的mian函数进行函数初始化,并执行对应方法...阅读全文

博文 2018-11-27 01:34:41 江北晓白

gRPC负载均衡(自定义负载均衡策略)

### 前言 上篇文章介绍了如何实现gRPC负载均衡,但目前官方只提供了`pick_first`和`round_robin`两种负载均衡策略,轮询法`round_robin`不能满足因服务器配置不同而承担不同负载量,这篇文章将介绍如何实现自定义负载均衡策略--`加权随机法`。 `加权随机法`可以根据服务器的处理能力而分配不同的权重,从而实现处理能力高的服务器可承担更多的请求,处理能力低的服务器少承担请求。 ### 自定义负载均衡策略 gRPC提供了`V2PickerBuilder`和`V2Picker`接口让我们实现自己的负载均衡策略。 ```go type V2PickerBuilder interface { Build(info PickerBuildInfo) balancer.V2...阅读全文

博文 2020-05-20 17:12:40 939496716

Mac OS下安装Golang

mac的brew命令那么方便,像我这么懒的人就喜欢这个 brew 如果没有Homebrew的人我们来先安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 然后尽情的使用brew吧。 go 接下来就是主题了,安装我们的go brew update && brew upgrade && brew install go 等待安装完毕后试试go env命令是否成功运行呢? 配置环境变量 #GOROOT export GOROOT=/usr/local/Cellar/go/1.9.1/libexec #GOPATH export GOPATH=$HOM...阅读全文

博文 2017-11-02 09:04:44 老健子

Golang 修饰器编程

导读 之前写过一篇《Python修饰器的函数式编程》,这种模式很容易的可以把一些函数装配到另外一些函数上,可以让你的代码更为的简单,也可以让一些“小功能型”的代码复用性更高,让代码中的函数可以像乐高玩具那样自由地拼装。所以,一直以来,我对修饰器decoration这种编程模式情有独钟,这里写一篇Go语言相关的文章。 看过Python修饰器那篇文章的同学,一定知道这是一种函数式编程的玩法——用一个高阶函数来包装一下。多唠叨一句,关于函数式编程,可以参看我之前写过一篇文章《函数式编程》,这篇文章主要是,想通过从过程式编程的思维方式过渡到函数式编程的思维方式,从而带动更多的人玩函数式编程,所以,如果你想了解一下函数式编程,那么可以移步先阅读一下。所以,Go语言的修饰器编程模式,其实也就是函数式编程...阅读全文

博文 2017-12-11 05:03:10 问题终结者

阿里免费教你学习前端开发CSS基础

课程介绍 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。 课程目标 • 掌握CSS开发技术 适合人群 • 前端开发者 课时列表 • 课时1:CSS基础 • 课时2:CSS选择器(上) • 课时3:CSS选择器(下) • 课时4:CSS属性_背景、颜色、边框 • 课时5:CSS属性_字体文本...阅读全文

使用 syscall.OpenProcess 时报错 The parameter is incorrect.

有没有高人帮忙看看?下面是全部源码(从网上抄的),我是想获取当前内存使用量。 ```go package main /* #include #include void CountPrivate(PSAPI_WORKING_SET_INFORMATION* workSetInfo,int* count) { int workSetPrivate = 0; for (ULONG_PTR i = 0; i < workSetInfo->NumberOfEntries; ++i) { if(!workSetInfo->WorkingSetInfo[i].Shared) // 如果不是共享...阅读全文

cmdr 03 - 用流式接口定义命令行参数处理选项

cmdr 03 - 用流式接口定义命令行参数处理选项基于 v0.2.17 转眼已经来到了 cmdr v0.2.17 了,为了解决此前版本中关于子命令和选项定义语句的太多嵌套的问题,我们实现了流式调用接口(Fluent APIs)。 cmdr 是我发布的一个开源的 golang 命令行参数处理器。它是 golang flags 的替代品。之所以发布它,是因为已有的 command line UI 三方包无法满足我的日常要求,迫不得己自己造一个。如果尚未有了解 cmdr 怎么使用的,不妨抽空浏览我的早前文章,以求获得一些基本概念: 另一个go命令行参数处理器 - cmdr cmdr 02 - 复刻一个 wget 稍后我会继续针对 cmdr 的用法做介绍文章。 至于本文呢 ,只是简单讲述一下如何使...阅读全文

博文 2019-06-01 15:34:38 hedzr

安装goland编辑器

昨日在ubuntu系统中,安装了golang的环境,今天在安装一个比较好用的编辑器来写代码,会提高很大的效率。 ##### 首先从官网下载goland - https://www.jetbrains.com/go/download/#section=linux ##### 解压安装 tar -zxvf xxx.tar.gz sudo mv xxx /opt/goland ##### 建立别名,快速启动 ``` - sudo vim ~/.bashrc 添加 alias goland='nohup sh /opt/goland/bin/goland.sh >/dev/null >/dev/null 2>&1 &' 保存 source ~/.bashrc ``` 在命令行直接输入goland就可...阅读全文

博文 2019-08-19 21:56:27 sooseiy

Go36-47-基于HTTP协议的网络服务(net/http)

基于HTTP协议的网络服务 HTTP协议是基于TCP/IP协议栈的,并且是一个面向普通文本的协议。原则上,使用任何一个文本编辑器,都可以写出一个完整的HTTP请求报文。只要搞清楚了请求报文的头部(header、请求头)和主体(body、请求体)应该包含的内容。 如果只是访问基于HTTP协议的网络服务,那么使用net/http包中的程序实体会非常方便。 http.Get函数 调用http.Get函数,只需要传递给它一个URL即可: package main import ( "fmt" "net/http" "os" ) func main() { resp, err := http.Get("http://baidu.com") if err != nil { fmt.Fprintf(os....阅读全文

博文 2019-02-10 22:35:16 骑士救兵