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

golang实现跨域访问

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/benben_2015/article/details/79247024 前端通过Ajax来获取服务器资源时,会存在跨域问题。因为Ajax只能同源使用(预防某些恶意行为),所以当访问不在同一个域中的资源时,就会出现跨域限制。尤其在开发和测试时,跨域问题会给前端测试带来非常不便。 不过CORS(Cross-Origin Resource Sharing,跨域资源共享)解决了这个问题,它背后的基本思想是:使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是否应该成功。CORS需要浏览器和服务器同时支持。整个CORS通信过程,浏览器是自动完成,而服务器需要手动配置。 ajax.htm...阅读全文

博文 2019-01-29 14:31:37 benben_2015

Spring Boot 学习系列(05)—自定义视图解析规则

此文已由作者易国强授权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。自定义视图解析 在默认情况下Spring Boot 的MVC框架使用的视图解析ViewResolver类是ContentNegotiatingViewResolver,这个解析器比较智能,它会根据你的请求类型(一般以请求uri的后缀来区分或请求头的Accept得到)来自动选择返回的数据文档类型。 一般情况下,这个能满足大部分人的使用需求,但我们这里只是需要提供RESTful接口的话,那么这个解析规则就不太适合我们了,比如说我们的心跳检测controller中如果返回的是非字符串类型的数据(字符串默认是可以解析成功的),那么就会提示解析失败的错误, 或如下的异常信息:org.springframework....阅读全文

博文 2018-10-31 16:34:54 网易云社区

代码编辑器 GoLand v2019.2.3 中文便携版

GoLand 是 JetBrains 开发的优秀的 golang IDE,其核心功能面向 Go 语言,提供了代码编辑、调试器、版本控制工具和测试工具,支持前端开发语言和框架,同时提供访问和查询数据库的工具,可以为程序员开发 go 语言提供更好的环境。新版本的 GoLand 将软件提升到一个全新的生产力水平,通过内存, CPU,Mutex 和 Block 分析器扩展其工具支持。它还改进了调试,添加了新的重构,并提醒您有关在表达式中以各种方式使用 nil 的潜在错误。此外,您现在可以直接从 IDE 下载并安装任何 Go SDK,并在主页上感受主题自定义和新预配置的 Sublime Text 键映射。 更新日志 2019/10/29:v0.2 版,更新到 2019.2.3。 2019/9/24:v...阅读全文

博文 2019-10-29 21:33:00 aside section._1OhGeD

variables _ golang

在 golang 中, 变量是通过编译器声明和使用的,并且编译器会进行相应的类型检查 package main import ( "fmt" ) func main() { var a string = "initial" fmt.Println(a) var b, c int = 1, 2 fmt.Println(b, c) var d = true fmt.Println(d) var e int fmt.Println(e) f := "short" fmt.Println(f) } initial 1 2 true 0 short 这, 这 好奇怪的代码 ..... 结论: 1 : golang 中对于变量声明的类型是放在 变量的后面 2 : 在一条语句中可以同时声明几个变量 3 :...阅读全文

博文 2015-03-12 03:00:01 jackkiexu

实现一个 Golang 调试器(第三部分)

到目前为止我们已经知道如何单步执行用 ptrace 暂停的进程(tracee)以及如何从二进制文件中获取一些调试信息(在[这里](https://studygolang.com/articles/12794)阅读相关内容)。接下来就是设置断点,等待程序运行到断点处,查看进程相关信息的时候了。 让我们从上一篇文章中用到的汇编代码开始 ```asm section .data msg db "hello, world!", 0xA len equ $ - msg section .text global _start _start: mov rax, 1 ; write syscall (https://linux.die.net/man/2/write) mov rdi, 1 ; stdout...阅读全文

博文 2018-04-15 16:57:15 jettyhan

一个一直尚未处理的Golang不兼容问题

最近我们在把线上系统升级至Go 1.10版本时发现,在我们实现的某些接口中,出现了客户反馈调用失败提示参数缺失的情况。这种情况我们在测试过程中未能复线,后来经过了解,发现了故障原因为Go 1.10版本升级过程中更改了部分程序代码与验证逻辑导致的。 故障说明为了方面说明,我们假设我们存在一个要求以application/x-www-urlencoded-form的Content-Type提交的表单,在具体的实现过程中,我们采用标准库net/http中的ParseForm方法处理表单,最后获取结果。 但是在使用过程中,某些开发人员素质不足,从网上检索部分代码复制粘贴(如部分Java开发),导致提交multipart/formdata数据到服务器进行请求。这个请求方式在ParseForm处理中是可...阅读全文

博文 2018-10-08 19:09:21 ipfans's Blog

高并发原理

同步与异步 同步与异步的重点是在消息通知的方式上,也就是调用结果通知的方式上。同步方式是当一个同步调用发出后,调用者要一直等待调用结果的通知后,才能进行后续的执行。异步方式是当一个异步调用发出后,调用者不能立即得到调用结果的返回。异步调用要想获得结果一般有两种方式:主动轮询异步调用的结果、被调用方通过回调callback来通知调用方调用结果。 image.png 阻塞与非阻塞 阻塞与非阻塞的重点在于进程或线程等待消息时的行为,也就是在等待消息的时候,当前进程或线程是挂起状态还是非挂起状态。阻塞方式的阻塞调用在发出后,在消息返回之前,当前线程或进程是会被挂起的,直到有消息返回,当前进程或线程才会被激活。非阻塞方式的非阻塞消息在发出后,不会阻塞当前进程或线程,而会立即返回。 简单来说,同步与异步...阅读全文

博文 2019-04-03 00:34:38 JunChow520

go blank identifier _作用

The blank identifier has many possible uses, but its main purpose is to allow discarding returns from functions that have multiple returns: // We only care about the rune and possible error, not its length r, _, err := buf.ReadRune() There are some other fun, but sometimes hackish, uses. Mark an import or local variable as "used" so that the compil...阅读全文

博文 2016-04-21 12:00:01 hittata

go语言接口和方法集问题笔记

注意: 此文章只是我的个人笔记,如有谬误,错误, 请一定指出! package main import "fmt" //IA test for methodset. type IA interface { Value() Pointer() } //A is a test type. type A int //Value receiver. func (a A) Value() { fmt.Printf("Value:%p, %d\n", &a, a) } //Pointer receiver. func (a *A) Pointer() { fmt.Printf("Pointer:%p, %d\n", a, *a) } func main() { //type A method set: ...阅读全文

博文 2016-08-30 05:00:01 htyu_0203_39

Golang中使用断路器

本文学习参考自:Circuit Breaker pattern 和 cep21/circuit 业务问题场景 在业务系统中,通常存在服务之间的相互调用,例如服务A调用服务B,当出现如下情形: 服务A与服务B之间的网络出现异常 服务B过载 服务B出现异常 服务A应该减少对服务B的调用量,甚至服务A应该停止调用服务B,有必要的话,还可以采取相应的降级措施`。当服务B恢复正常后,才开始继续调用服务B。 断路器模式 在家庭电路中有一个叫断路器的安全设备,当出现电路过载、短路、漏电等情况时,就会发生跳闸,防止出现安全事故。类比到上面描述的业务问题场景,我们需要在系统中实现一个类似断路器功能的组件,用于阻止系统A重复尝试很可能失败的调用。 在断路器模式中,断路器组件需要监测到最近失败的调用,并且利用这些...阅读全文

博文 2019-08-24 17:04:55 yangxikun.com

Go 每日一库之 gojsonq

简介 在日常工作中,每一名开发者,不管是前端还是后端,都经常使用 JSON。JSON 是一个很简单的数据交换格式。相比于 XML,它灵活、轻巧、使用方便。JSON 也是RESTful API推荐的格式。有时,我们只想读取 JSON 中的某一些字段。如果自己手动解析、一层一层读取,这就变得异常繁琐了。特别是在嵌套层次很深的情况下。今天我们介绍gojsonq。它可以帮助我们很方便的操作 JSON。 快速使用 先安装: $ go get github.com/thedevsaddam/gojsonq 后使用: package main import ( "fmt" "github.com/thedevsaddam/gojsonq" ) func main() { content := `{ "us...阅读全文

博文 2020-02-24 23:32:41 darjun

在ubuntu下安装go语言编译器方法

go语言可以参照官方网站http://golang.org/doc/install 安装过程: 1.下载go 在https://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive下载合适版本 2.进入下载后的目录,假设将go解压到/usr/local/下面,则输入 tar -C /usr/local -xzf go1.2.linux-386.tar.gz 3.进入cd /usr/local/go/bin 输入 go 可以看到相关命令,则表示go安装成功。 4.输入测试例子 package main import "fmt" func main() { fmt....阅读全文

博文 2016-04-17 02:00:00 xiejiangquan

命令行工具skm

![](https://raw.githubusercontent.com/TimothyYe/skm/master/snapshots/skm.png) SKM - 基于Go的SSH key命令行管理器,帮助你方便的管理所有的SSH key ## 功能特性 * 创建,显示与删除SSH密钥对 * 通过别名方便的管理SSH密钥对 * 支持通过use命令,指定默认使用的SSH密钥对 * 方便的备份与恢复所有的SSH密钥对 ## 项目地址 https://github.com/TimothyYe/skm ## 安装方式 ### Homebrew安装 ```bash brew tap timothyye/tap brew install timo...阅读全文

开源项目 2017-10-17 08:10:00

go godoc 文档服务器

搭建公司内部自己的 godoc 服务器 早期的go项目规范: 必须在GOPATH下 项目的包的命名路径与git的路径关联 引入go modules之后,项目可以不在GOPATH内,包的命名也可以不包含git的路径。 godoc 生成的文档,只扫描GOPATH与GOROOT内的代码,在此之外的代码无法生成在线文档,详见go-issue-26827 。 基于此历史背景,一个较好的go项目规范如下: 项目统一命名规范带上git路径,格式:module git.your-company.com/{business}/{your proj name}为了兼容历史与 godoc 方便生成文档。 go项目不强制放在GOPATH内 使用go modules时,module 的命名规范参照第一条 godoc ...阅读全文

博文 2020-03-11 13:32:52 cdz620

HTTP 流量复制工具 Gor Go

Gor 是用 Go 编写的简单 HTTP 流量复制工具,主要是为了从生产服务器返回流量到开发环境。使用 Gor 可以在实际的用户会话中测试代码。 Gor 基础工作流: ![Diagram](http://static.oschina.net/uploads/img/201507/21161205_ezre.jpg) 从端口捕获流量:

# Run on servers where you want to catch traffic. You can run it on each `web` machine.
sudo gor --input-raw :80 --outp...阅读全文

开源项目 2015-07-20 16:00:00 buger

集成多种 NOSQL 方案的统一 SQL 代理中间件dataux

集成多种 NOSQL 方案的统一 SQL 代理中间件 Sql查询代理到 Elasticsearch,Mongo,Kubernetes,BigTable等 将不同的数据源和文件统一到数据的单一联合视图中,并使用SQL进行查询,且无需复制到数据仓库中。 Mysql兼容联合查询引擎到Elasticsearch,Mongo,Google Datastore,Cassandra,Google BigTable,Kubernetes,基于文件的资源。这个查询引擎托管一个 mysql 协议侦听器,它将 sql 查询重写为native(elasticsearch,mongo,cassandra,kuberntes-rest-api,bigtable)。它通过实现一个完整的关系代数分布式执行引擎来运...阅读全文

golang.org/x/mobile/exp/gl/glutil/glimage.go 源码分析

看这篇之前,建议先看之前几篇,这几篇是基础。 Go Mobile 例子 basic 源码分析 http://www.cnblogs.com/ghj1976/p/5183199.html OpenGL ES 着色语言 http://www.cnblogs.com/ghj1976/p/5180895.html 仿射变换矩阵(这是glimage包最核心的矩阵算法变换逻辑基础知识)http://www.cnblogs.com/ghj1976/p/5199086.html glutil 包中重要的类是 Image 类, 它实现了 *image.RGBA 和 OpenGL纹理图形之间的桥梁,而Image类中最关键的就是完成绘图,我们重点也是分析这个函数。 绘图用的颜色着色器 precision用来确定默...阅读全文

博文 2016-02-19 12:00:01 ghj1976

以太坊官方执行协议Go Ethereum

Go Ethereum 是 Ethereum 官方执行协议,也是 Ethereum 协议的三个原始实现之一(另外两个是 C ++ 和 Python )。它是用 Go 编写的,完全开放源代码。 Go Ethereum 可以作为一个名为 Geth 的独立客户端,安装在几乎任何操作系统上;或作为一个库,嵌入到 Go、Android 或 iOS 项目。 **构建** 构建 geth 需要 Go 和 C 编译器。 可以使用最喜欢的包管理器安装。 安装依赖项后,运行 或者构建全套...阅读全文

一次对server服务大量积压异常TCP ESTABLISHED链接的排查笔记

背景 我们都知道,基于Kubernetes的微服务,大行其道,传统部署模式一直都在跟着变化,但其实,在原有业务向服务化方向过度过程中,有些场景可能会变得复杂。 比如说:将Kubernetes的模式应用到开发环节上,这个环节需要频繁的变更代码,微服务的方式,可能就需要不断的: 改代码->构建镜像->镜像推送->部署->拉去镜像->生成容器 尤其是PHP的业务,不需要构建二进制,仅需要发布代码,因此,如果按照上面的部署方式,就需要频繁改代码,走构建镜像这个流程,最后再做发布,这在开发环节就显得过于麻烦了,换而言之,有没有办法,能让开发直接将代码上传到容器中呢? 其实是有的,就是设计一个FTP中间件代理,让用户本地改完代码,通过FTP客户端(很多IDE是支持FTP的)直接上传到容器内部,甚至于用户...阅读全文

博文 2019-03-27 12:34:38 snifes

Go 编译器概述

![](https://raw.githubusercontent.com/studygolang/gctt-images2/master/go-overview-of-compile/go-compiler.png "'Golang 之旅'插图,由 Go Gopher 的 Renee French 创作") > *本文基于 Go 1.13* Go 编译器是 Go 生态系统中的一个重要工具,因为它是将程序构建为可执行二进制文件的基本步骤之一。编译器的历程是漫长的,它先用 C 语言编写,迁移到 Go,许多优化和清理将在未来继续发生,让我们来看看它的高级操作。 ## 阶段(phases) Go 编译器由四个阶段组成,可以分为两类: * 前端(frontend):这个阶段从源代码进行分析,并生成一...阅读全文

博文 2019-11-09 16:59:25 TomatoAres

使用Kubernetes 1.2.0的正确姿势

之前,我们介绍了[kubernetes][2] 1.2.0的新特性,还不清楚的童鞋查看[这里][1]。 本文讨论的是使用 kubernetes 1.2.0 的注意事项,包括对周边组件的要求(比如docker的兼容性)、目前已知的bug(kubernetes和docker 1.9)和如何平稳升级。 ## Part I 升级注意事项 1.使用kubernetes 1.2.0 推荐使用Docker v1.9.1,但仍然支持v1.8.3和v1.10。如果你使用的Docker版本太低,请先升级Docker。但Docker v1.9.1存在一些问题,下面我们详细讨论。 2.如果内核支持CPU hardcapping,并且容器设置了CPU limit,那么CPU hardcappi...阅读全文

一款属于自己的笔记本【vue+gin+elementUI前后端分离开发部署开源项目】

# 前言 **我为什么要写一个个人的云笔记?** (⊙o⊙)…额额额????。。。这件事儿还得从一只蝙蝠说起...... 好了_(:з」∠)_不想扯了...... **~~有以下几个原因:~~** 1. 突然发现有道云笔记不是自己的 我的隐私都在别人的库里????。并且一直想有一个自己的云笔记。 2. 打开全球最大同性交友平台gay....嗯嗯嗯...错了,Github。发现开源的云笔记软件很少几乎没有 3. 想做一个前后端分离的项目,并且想开源分享给大家。 4. 一只蝙蝠的传说。(大家应该清楚????) --- 以上就是我一时冲动,不对。。。一时兴起,所以抄起我的小本本就开干!!来一场说撸就撸的guan......额不对,说撸就撸的码!(时不时就开车。老司机快上车!!????)
<...阅读全文

博文 2020-03-02 23:07:02 biningo

golang学习之安装环境

安装: 1. 官网安装最新的golang安装包 我的是win7下载的是go1.4.2.windows-amd64 配置环境变量 export GOROOT=$HOME/go export PATH=$PATH:$GOROOT/bin 再配置GOPATH,路径为GOPATH=d:GOPATH GOPATH主要用于第三方包存放目录src下(个人理解) 2.下载golang编辑器LiteIDE (我下载的是liteidex27.1.windows) 3.打开LiteIDE运行helloword,成功表示整个环境安装ok 4.由于win7下运行sqlserver连接的时候编译报错 # odbc exec: "gcc": executable file not found in %PATH% 百度下需...阅读全文

博文 2015-06-17 20:02:29 liuwenhan999

RabbitMQ教程(译)-Publish/Subscribe

## 发布/订阅 **(使用Go客户端)** 在[上篇教程](https://bingjian-zhu.github.io/2019/09/01/RabbitMQ%E6%95%99%E7%A8%8B%EF%BC%88%E8%AF%91%EF%BC%89-Work-queues/)中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker)。在本篇教程中,我们要做的跟之前完全不一样 —— 分发一个消息给多个消费者(consumers)。这种模式被称为“发布/订阅”。 为了描述这种模式,我们将会构建一个简单的日志系统。它包括两个程序——第一个程序负责发送日志消息,第二个程序负责获取消息并输出内容。 在我们的这个日志系统中,所有正在运行的接收方程序都会接受消息。我...阅读全文

博文 2019-09-05 16:51:44 939496716

golang:Goquery简单爬虫实例

Selection类型提供的方法,这些方法是页面解析最重要,最核心的方法1)类似函数的位置操作-Eq(index int) *Selection //根据索引获取某个节点集 - First() *Selection //获取第一个子节点集 - Last() *Selection //获取最后一个子节点集 - Next() *Selection //获取下一个兄弟节点集 - NextAll() *Selection //获取后面所有兄弟节点集 - Prev() *Selection //前一个兄弟节点集 - Get(index int) *html.Node //根据索引获取一个节点 - Index() int //返回选择对象中第一个元素的位置- Slice(start, end int) ...阅读全文

博文 2018-06-28 14:34:48 熊猫卡洛斯

为什么 Go 关心 unsafe.Pointer 和 uintptr 之间的差别

Go 有两样东西或多或少是无类型指针的表示:uintptr 和 unsafe.Pointer (和外表相反,它们是内置类型)。 从表面上看这有点奇怪,因为 unsafe.Pointer 和 uintptr 可以彼此来回转换。为什么不只有一种指针表现形式?两者之间有什么区别? 表面的区别是可以对 uintptr 进行算数运算但不能对 unsafe.Pointer(或任何其他 Go 指针)进行运算。unsafe 包的文档指出了重要的区别: > uintptr 是整数,不是引用。将 Pointer 转换为 uintptr 会创建一个没有指针语义的整数值。即使 uintptr 持有某个对象的地址,如果对象移动,垃圾收集器并不会更新 uintptr 的值,uintptr 也无法阻止该对象被回收。 尽管...阅读全文

博文 2020-01-08 23:12:31 dust347

go语言中iota的一个例子

package main import ( "fmt" ) type BitFlag int const ( // iota为0,1左移0位 = 1 Active BitFlag = 1 << iota // Send <=> Active <=> 1 << iota,此时iota为1,1左移1位 = 2 Send // Receive <=> Send <=> 1 << iota,此时iota为2,1左移2位 = 4 Receive ) func main() { fmt.Println(Active, Send, Receive) } iota是在编译的时候,编译器根据代码中iota与const关键字的位置动态替换的。 package main import ( "fmt" ) cons...阅读全文

博文 2017-02-09 13:46:15 李维

golang版的traceroute实现

前言 以前看<>的时候,发现可以根据IP报文中的TTL字段追踪数据包的路由详情,觉得很有意思。后来知道别人早就把它实现出来了,就是linux下的traceroute命令(windows 的tracert),学了golang后也想实现一个go版本的,但中间都给种种事情耽搁了,最近把工作辞了,刚好有点时间,就想着把它做出来,顺便当作个人项目去面试。 应用场景 在分析traceroute之前,先介绍一下它的应用场景。不知道你们有没有遇到过这样情况,就是买了个国外的服务器,用ssh连接的时候发现很慢,然后你就会忍不住ping一下看延迟多少,如果出来300的延迟你会忍不住吐槽一句:什么破服务器,延迟这么高。然后你肯定想知道原因,为什么这破服务器这么卡。 而这时候tracerou...阅读全文

微服务的断路器实现图解Golang通用版

断路器背景 微服务连锁故障场景 image 在分布式环境中,各个微服务相互调用,当某些情况下,比如后端中间件服务故障、第三方服务中断导致某个服务无限期不可用,短时间无法恢复,则可能会导致连锁故障,最终影响压垮整个业务集群 断路器与重试 断路器模式不同于重试模式,重试模式是使应用程序可以重试操作以期望它会成功,而断路器模式是防止应用程序执行一个可能失败的操作,减少执行可能失败操作的CPU、内存、线程等资源的浪费,从而保证服务的整体可用 断路器设计解析 基于代理模式的断路器 image 断路器相当于一个请求操作执行的代理,托管请求操作的执行 实现原理流程: 拦截服务执行的请求,通过当前状态决定是否直接返回,如果否则执行后续操作 尝试执行操作,并获取返回结果 根据返回结果和当前统计信息,决定当前断...阅读全文

博文 2019-05-15 07:34:48 布衣_4549

使用协程来模拟发送post请求,但是服务器端没有接收到数据?

package main import ( "fmt" "io/ioutil" "net/http" "net/url" "strings" "strconv" ) func testmulti(flag int){ v := url.Values{} v.Set("name",strconv.Itoa(flag)+"-------") body := ioutil.NopCloser(strings.NewReader(v.Encode())) //把form数据编下码 client := &http.Client{} req, _ := http.NewRequest("POST", "http://new.xx.com.cn/t...阅读全文

等待全部多线程任务结束-Golang版

Go 对于“等待全部多线程任务结束”的场景,有官方的解决方案--"sync.WaitGroup" package main func main(){ var wg sync.WaitGroup for i:=0;i<10;i++{ wg.Add(1) // wg 中的计数器加1 go func(){ defer wg.Done() // wg 中的计数器减1 }() } wg.Wait() // 持续阻塞等待,直到 wg 中的计数器为0 } 创建协程时,使用defer wg.Done()避免函数结束或者异常中止时没有调用Done()操作,导致Wait()一直阻塞,发生内存泄露...阅读全文

博文 2019-07-08 18:02:45 LiuHaoX86

[uber-zap/part4]自定义记录器

说明 之前翻译的一个教程(没有备份原地址,梯子被封了)。原地址找到后补上 正文 有时候,相比创建一个记录器,然后在函数中传递它,使用全局记录器会更方便标准日志库log允许你使用log.New()创建自定义记录器,也可以调用帮助函数log.Printf()等直接使用标准记录器实例 zap使用zap.L()和zap.S()提供这样的功能,但是对于我来说,不会直接使用它们。你可以使用zap.L()访问全局标准记录器,这个函数返回共享记录器实例。加糖版本(sugared version)可以通过zap.S()访问 从我的简单使用中看到,这个共享记录器开箱即用--如果你只是立即使用它们,他们就不会提供输出。它们的唯一目的似乎是提供一种在代码中的任何位置检索此实例的简单方法 如果你确定要有用的使用此标准...阅读全文

博文 2019-03-30 20:34:39 小龙虾

go 学习笔记之走进Goland编辑器

工欲善其事必先利其器,命令行工具虽然能够在一定程度上满足基本操作的需求,但实际工作中总不能一直使用命令行工具进行编码操作吧? 学习 Go 语言同样如此,为此需要寻找一个强大的 IDE 集成环境帮助我们快速开发,据我所知,市面上比较流行的可能有三个选择: LiteIDE X : LiteIDE 是一款简单,开源,跨平台的 Go IDE. GoLand : GoLand is a cross-platform IDE built specially for Go developers. 第三方插件 : Idea, Sublime Text,VS Code ,等常见 IDE 一般均有 Go 的插件. 萝卜青菜各有所爱,选择哪个 IDE 都可以,甚至不用任何 IDE 也可以,不过还是推荐下 GoLa...阅读全文

博文 2019-08-07 15:32:44 雪之梦技术驿站

Linux下使用goagent

说到穿越长城的软件有很多,不过最近最有名而且免费的就非goagent莫属了,goagent是利用谷歌的GAE服务来翻越长城的,具有速度快,稳定的特点,正好今天我的ssh代理过期,于是准备以后使用goagent来翻墙。 1:申请appengine.google.com的个人apppid 首先登录appengine.google.com,申请个人apppid,它将在Goagent中用到。appid只要唯一就可以,必须是英文字符和数字。 二、安装和本地部署 安装goagent服务端 既然已经成功的申请到了apppid,那么接下来的工作就是安装goagent的服务端了。 1:下载 首先我们下载goagent:https://code.google.com/p/goagent/ 解压到用户根目录,然后...阅读全文

Go语言DefaultClient没有设置请求超时

今天看到这篇文章:Don’t use Go’s default HTTP client。总结起来就是直接使用Go语言的http.Post,http.Get等方法时,底层连接使用的是DefaultClient。而DefaultClient没有设置请求超时: // DefaultClient is the default Client and is used by Get, Head, and Post. var DefaultClient = &Client{} 因此,如果服务器端如果一直无响应的话,就会把当前发出请求的goroutine挂死。因此如果要使用DefaultClient,一定要留心这个陷阱...阅读全文

Go 开发的 DNS 库 DNS Go

DNS 是使用 Go 开发的 DNS 库,一个完整,可用的 DNS 库,支持所有广泛使用的 Resource Records,包括 DNSSEC 类型。DNS 支持服务器端和客户端编程开发。 目标: * KISS * 快 * 更小的 API 特性: * UDP/TCP 查询,IPv4 和 IPv6 * RFC 1035 域文件解析($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) * 快速 * 回应速度~ 80K qps (faster hardware results in more qps); * 解析 RRs ~ 100K RR/s, that's 5M records in about...阅读全文

Golang实现简单好用的EventDispatcher

events源代码 package ax_events import "fmt" // 事件类型基类 type Event struct { //事件触发实例 Target IEventDispatcher //事件类型 Type string //事件携带数据源 Object interface{} } // 事件调度器基类 type EventDispatcher struct { savers []*EventSaver } // 事件调度器中存放的单元 type EventSaver struct { Type string Listeners []*EventListener } // 监听器 type EventListener struct { Handler EventHan...阅读全文

博文 2017-09-28 13:34:48 gofounder

letting go ,偶然间的发现

刚刚写完策划,听首曲子,准备休息了。我采用的是下面的这种方式 我采用的是网页播放器+客户端播放器,播放同一首曲子。发现,相比当前的单一方式,比如单独用客户端播放器或者网页播放器,带给我的感觉是不一样的呢。 要不, 你也去试试....... 说到这儿,我要给我最好的朋友------睿哥。点首曲子: Bluebird Story with Jumelles 我相当喜欢这首曲子带来的意境呢。每次听,基本上都能带给我 不一样的意境哦。希望它也能为 看到这里的你带来快乐,消除烦恼。 ~~~~~ ........阅读全文

博文 2015-12-23 02:00:01 HK_5788

GO语言做文件服务器小总结

package main import ( "net/http" ) func main() { http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp")))) } 这样的话URL里的tmpfiles在实际的服务器的目录下就被忽略了,转而是/tmp这个目录来替代 这样的话URL里的tmpfiles在实际的服务器的目录下就被忽略了,转而是/tmp这个目录来替...阅读全文

博文 2016-02-16 16:00:01 fyxichen

python开发中的小技巧详解

不管是python开发还是其他什么语言的开发,如果在开发中我们能掌握一些小技巧,那么肯定会大大提高我们的开发效率,今天小编和大家分享的就是python开发中,经常使用到的10个小技巧,一起来看看吧。(ps:本文的分享都是基于Python 3的) 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10] 大多初学者,根据之前语言的经验会大概这样来做 bag = [1, 2, 3, 4, 5] for i in range(len(bag)): bag[i] = bag[i] * 2 但是有更好的方法: bag = [...阅读全文

golang 的一个日志模块

日志模块是使用的 github.com/op/go-logging 这里只是对这个模块再次重铸一下 获取依赖包 go get github.com/op/go-logging 直接附上代码 package log import ( "io" "os" "path" logging "github.com/op/go-logging" ) /** *日志级别 */ const ( critical int = iota err_or warning notice info debug ) var ( // 日志管理器 mlog *Logger /** * 日志输出格式 */ logFormat = []string{ `%{shortfunc} ▶ %{level:.4s} %{message...阅读全文

博文 2018-11-08 17:35:04 VIL凌霄

Go语言中处理 HTTP 服务器

## 1 概述 包 `net/http` 提供了HTTP服务器端和客户端的实现。本文说明关于服务器端的部分。 快速开始: ```go package main import ( "log" "net/http" ) func main() { // 设置 路由 http.HandleFunc("/", IndexAction) // 开启监听 log.Fatal(http.ListenAndServe(":8888", nil)) } func IndexAction(w http.ResponseWriter, r *http.Request) { w.Write([]byte(`

来自小韩说课的问候

`)) } ``` 运行程序,在浏览器上请求...阅读全文

博文 2018-11-12 22:20:51 hanzkering

关于sql 中go的处理

go 关键字 并非sql语句 只是查询分析器的一个命令,而不是sql的命令 表示一个批处理 即结束本段sql执行 进入下段语句 在查询分析器使用 go是ok的 才编程语言中使用 go是错误的 一般我们在 create table/procedure 语句中 或多条语句中 常常用go做分段 而在编程语言中则错了 使用以下方式 处理这种方式 用 sqlcmd ,osql 执行sql脚本 sql脚本中可以使用go命令 或在 http://topic.csdn.net/u/20070524/21/c4d7f71a-d6bd-47ac-9280-4bf3cca5d7f9.html 建议采用 sqlcm...阅读全文

博文 2015-06-17 23:08:08 raokaichuan