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

Go 语言项目

出处:https://code.google.com/p/go-wiki/wiki/Projects Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.orggowalkergosearchSourcegraph Contributing To edit this page you must be a contributor to the go-wiki project. To get contributor access, send mail to adg@golang.org from your Google Account. Dead proj...阅读全文

博文 2014-10-10 16:00:01 leonzhouwei

Redis 集群解决方案Codis

Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务. Codis 实现了业务透明的动态/安全扩缩容,高度可运维,proxy-based 的方案,支持无状态的多 proxy 水平扩展。已经在贵荚内部取代了大多数业务的 twemproxy。 架构图: ![架构图](https://raw.githubusercontent....阅读全文

高性能代理服务器Proxy-Go

Proxy 是 golang 实现的高性能 http,https,websocket,tcp 代理服务器,同时支持内网穿透。 ## Features - 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理. - 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征. - 智能HTTP代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理. - 域名黑白名单,更加自由的控制网站的访问方式。 - 跨平台性,无论你是widows,linux,还是mac,甚至是树莓派...阅读全文

Golang实现断点续传

https://github.com/artificerpi/oget HTTP Range 请求 HTTP Range请求允许服务器向客户端发送HTTP消息体的一部分数据。Partial Requests在使用比较大的网络媒体文件或者在下载文件时提供暂停和恢复功能时很有用。 这也是下载时实现HTTP断点续传的一个关键。 HTTP 206 (Partial Content) 如果服务器能返回HTTP 206请求,我们就知道它能够支持Range request. # curl -I https://www.baidu.com/ -H "Range: bytes=0-" HTTP/1.1 206 Partial Content Cache-Control: private, no-cache, ...阅读全文

博文 2017-12-26 04:30:01 7explore-share

goAgent

goagent 1.8.11 稳定版下载 http://goo.gl/6ZXcF 最近更新 goagent 2.0.1 测试版下载 goagent v2.0.1 , 请重新上传 python 服务端,客户端全新升级(不要覆盖) 简易教程 如何部署和使用goagent,以Windows为例 申请Google Appengine并创建appid。 下载goagent稳定版 http://code.google.com/p/goagent/ 修改local\proxy.ini中的[gae]下的appid=你的appid(多appid请用|隔开) 双击server\uploader.bat(Mac/Linux上传方法请见FAQ),上传成功后即可使用了(地址127.0.0.1:8087) chrome...阅读全文

博文 2014-10-04 19:26:28 greywolf

go net/http Client使用——长连接客户端的使用

go net/http Client使用总结 Client数据结构 // A Client is an HTTP client. Its zero value (DefaultClient) is a // usable client that uses DefaultTransport. // // The Client's Transport typically has internal state (cached TCP // connections), so Clients should be reused instead of created as // needed. Clients are safe for concurrent use by multiple goroutin...阅读全文

博文 2017-12-24 02:31:07 u013870094

Golang动手写一个Http Proxy

本文主要使用Golang实现一个可用但不够标准,支持basic authentication的http代理服务。 为何说不够标准,在HTTP/1.1 RFC中,有些关于代理实现标准的条目在本文中不考虑。 Http Proxy是如何代理我们的请求 Http 请求的代理如下图,Http Proxy只需要将接收到的请求转发给服务器,然后把服务器的响应,转发给客户端即可。 Https 请求的代理如下图,客户端首先需要发送一个Http CONNECT请求到Http Proxy,Http Proxy建立一条TCP连接到指定的服务器,然后响应200告诉客户端连接建立完成,之后客户端就可以与服务器进行SSL握手和传输加密的Http数据了。 为何需要CONNECT请求? 因为Http Proxy不是真正的服务...阅读全文

博文 2017-09-17 13:11:26 杨锡坤

golang http(s)请求转发

func main(){ router := gin.Default()//创建一个router router.Use(MiddleWare())//中间件,起拦截器的作用 router.Any("/*action", Forward)//所有请求都会经过Forward函数转发 router.Run(":8000") } func Forward(c *gin.Context) { targetHost := &httputils.TargetHost{ Host: "www.baidu.com", IsHttps: false, } HostReverseProxy(c.Writer, c.Request, targetHost) } func HostReverseProxy(w htt...阅读全文

博文 2019-02-14 22:34:45 杜子龙

微信代理服务WeChat-Proxy

WeChat-Proxy 是微信代理服务。 1、全局缓存微信 access_token, jsapi ticket等。 2、多路转发微信回调消息。 3、简化微信 oauth2 认证流程。 4、简化微信支付流程。 5、简化微信 JSSDK 签名流程。 参数说明: key: 自定义的app名称,支持中文,也可以是随机生成的字符串。(必填) appid: 微信公众号的 appid。(必填) secret: 微信公众号的 secret。(必填) token, aes: 用于微信回调消息加解密的秘钥。(/msg接口) 如果设置了此项参数,后台应用可以直接以json明文格式接收和回复微信回调消息。(/msg/json接口) mch_id, mch_ke...阅读全文

Rancher使用入门

上个月末,Rancher Labs在其官方博客上宣布了 Rancher 1.0正式版本发布。 这是继Apache Mesos、 Google Kubernetes以及Docker 原生 Swarm 之后,又一个可用于Production环境中的容器管理和服务编排工具,而Rancher恰似这个领域的最后一张拼图(请原谅我的孤陋寡闻,如 果有其他 厂商在做这方面产品,请在评论中留言告诉我)。从Rancher Labs的官方about中我们可以看到:Rancher Labs致力于为DevOps team打造一个最好的容器管理平台,让容器的部署和管理变得更加Easy。 本文将带大家与Rancher来个亲密接触,直观的体会一下Rancher的入门级使用方法。 注意:由于Rancher还在active ...阅读全文

博文 2016-04-19 08:54:40 bigwhite

Go 1.9 的新特性

现在 Go 1.9 beta版已发布, 正式版预期在8月初发布,让我们先来看看你Go 1.9带来了那些新特性。 阅读全文 原文: Advanced command execution in Go with os/exec by Krzysztof Kowalczyk.完整代码在作者的github上: advanced-exec Go可以非常方便地执行外部程序,让我们开始探索之旅吧。 阅读全文 熟悉C++、Java、C#等面向对象的编程语言的同学,在学习Go语言的过程中,经常会被访问权限所困扰,逐渐才能了解这样一个事实: Go语言通过identifier的首字母是否大写来决定它是否可以被其它package所访问。 正式的Go语言规范是这么规定的: An identifier may be ex...阅读全文

博文 2017-06-21 03:52:56 smallnest

记一次线上Giao(go)服务内存占用率过高问题排查

本文作者: 保护我方李元芳 商业转载请联系作者获得授权,非商业转载请注明出处。 故障现象 某线上埋点上报机器偶尔触发内存占用过多的报警。ssh到机器top发现主要内存被埋点服务占用。之前重启过几次,但是过段时间仍然会发生内存占用过多的警报。下面是报警详情。 [P1][PROBLEM][ali-e-xxx-service03.bj][][ all(#3) mem.memfree.percent 4.19575<5][O3 >2019-10-28 10:20:00] 问题推断 埋点服务主要接收客户端压缩过的上报请求,并对请求数据做解压,投递到kafka,逻辑功能相对简单。初步怀疑是某些资源没有释放导致的内存泄露或Groutine泄露。 问题排查 由于代码不是由我们业务方维护的,首先向相关部门索要...阅读全文

博文 2020-01-19 16:34:17 保护我方李元芳

nginx 反向代理 golang web

现有两个Golang Web服务程序: web1(8080), web2(8081), 两个域名:www.xxxxx.com, www.yyyy.com 在一台机器上,使xxxxx.com 解析到 8080端口,yyyy.com解析到8081端口 使用nginx进行反向代理的方法: 一、在nginx配置文件中,添加如下配置 server{ listen 80; server_name www.xxxxx.com xxxxx.com; location /{ try_files /_not_exists @backend; } location @backend{ proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header H...阅读全文

博文 2015-10-31 15:00:06 honsty0113

Caddy,一个用Go实现的Web Server

Caddy,一个用Go实现的Web Server 六 04 bigwhite技术志 Apache, apache2, caddy, Caddyfile, fastcgi, github, Go, Go1.5, Golang, GopherCon, handler, http, https, loadbalance, middleware, nginx, Opensource, PHP, php-fpm, reverseproxy, webserver, 反向代理, 负载均衡 1 Comment 这是一个Web Server的时代,apache2与nginx共舞,在追求极致性能的路上,没有最高,只有更高。但这又是一个追求个性化的时代,有些Web Server并没有去挤“Performance提...阅读全文

博文 2015-07-14 11:12:44 bigwhite

最全腾讯技术T系列解读:T2到T4的技能要求和薪资结构

![image.png](https://static.studygolang.com/190107/988105bed77ebb672fe95ddada46a697.png) 2018年持续一整年的架构设计分享,2019年我希望持续分享的同时,能真正意义上帮助到部分读者成为一名架构师。学习的同时请千万别:只见树木,不见森林。所以我会让大家先俯瞰完整的森林,我们再从树木开始,一起去穿越整个森林。 ![image.png](https://static.studygolang.com/190107/8f0d7c901ba5f07669f81cb318f3b04e.png) 最新腾讯技术t系列薪资:上图所示 1.腾讯T2 2.1——2.2 1.工作要求: 能独立完成日常工作,并能够对一些方案提出...阅读全文

博文 2019-01-07 17:39:15 Javaspring12

如何用 Go 语言实现正向代理

正向代理是处理一组内网客户端发往外部机器的网络请求的一种代理方式。 实际上,正向代理是你的应用和你所要连接的服务器之间的中间人。它在 HTTP(S) 协议上起作用,并且被部署在网络设施的边缘。 你通常可以在大型组织或大学中见到正向代理,它被用来进行授权管理或网络安全方面的控制。 我发现在使用容器或者动态的云环境工作时,正向代理很有用,因为你会面临一组服务器和外部网络的通信问题。 如果你在 AWS、AZure 之类的动态环境下工作,你会拥有一批数量不定的服务器和一批数量不定的公网 IP。你把应用运行在 Kubernetes 集群上时也是一样,容器可能遍布四处。 现在假设有客户让你提供一个公网 IP 的范围,因为他需要设置防火墙。你如何提供这个特性呢?这个问题有些情况下很简单,有些情况下可能非常...阅读全文

博文 2018-04-01 00:10:18 vincent08

分布式任务调度平台forest

# 分布式任务调度平台 ## 前言 在企业系统开发过程中难免少不了一些定时任务来进行定时触发执行任务,对于非分布式环境系统中,我们只需要在对应系统中内部集成一些调度库进行配置定时触发即可。 比如:使用Spring框架集成quartz,只需要进行一些简单的配置就能定时执行任务了。但是随着企业的系统越来越多、逐步从单一应用慢慢演变为微服务集群。 在分布式集群系统中主要面临出如:任务的重复执行、没有统一定时任务配置、任务节点故障转移、任务监控&报警等一些列的功能都是要在分布式系统中进行解决。 此分布式的定时任务调度平台,它非常轻量小巧,使用简单,后端以中心服务器为调度核心,负责集群中各种任务的动态分配和调度执行。 在平台前端支持Web界面可视化管理,我们可以创建、暂...阅读全文

开源项目 2019-07-26 10:09:46 busgo

GO语言学习笔记一

GO语言学习笔记一 -------------------------------------------------------------------------- 优势: 1.它是系统级别的语言,静态编译,是C系列语言。 2.具有很多内置库,使用起来和Python很类似。 3.语法足够简单,入门学习成本很低,适合我这样从PHP和Python切换过来的人。 4.速度快,就拿简单的页面来说,我用PHP开发并发能够达到500很好了,但是用Go轻松就到上万,这是无法比拟的性能 提升,而且用Go开发的效率和PHP差不多。 5.出自Google之手,而且有一帮牛人在维护,基于BSD开源,社区活跃。 --------------------------------------------------...阅读全文

博文 2014-10-21 14:00:03 lvshudao

golang中net/http包用法

http包包含http客户端和服务端的实现,利用Get,Head,Post,以及PostForm实现HTTP或者HTTPS的请求. 当客户端使用完response body后必须使用close对其进行关闭.如下所示 resp, err := http.Get("http://example.com/") if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) // ... 变量: 以下错误是http server使用的 var ( ErrHeaderTooLong = &ProtocolError{"header too long"} ErrShortBo...阅读全文

博文 2015-06-17 20:02:33 chenbaoke

go源码下载编译

各位大侠,我打算研究下go的一个开源软件influxdb,github上下载下来后,执行build,发现有很多code.google.com/p/log4go 类似的第三方包下载不下来。win7下的开发环境,执行set http_proxy后 执行go get 报错:_ssl.c:510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed, 各位是怎么下载的? 还有 go 的开发 一般都是在linux下吗...阅读全文

Golang使用RemoteAddr()获取远程主机地址的注意事项

一、问题描述http.Request 下的方法RemoteAddr() 可以获取客户端的地址和端口号,最近的一个项目中用到了这个方法。 使用过程中一直都没有什么问题,但是当项目上线之后就发现不管怎么获取ip,客户端地址都是127.0.0.1 。 对于这个问题一直百思不得其解,最后搞了半天才发现是nginx 的原因。 因为线上项目使用nginx做了反向代理,所以导致服务端每次获取的都是nginx的地址,即127.0.0.1 。 关于这个问题的具体的内容可以查看:HTTP协议中的X-Real-IP, X-Forwarded-For和remote_addr头 二、解决方法当http请求不存在代理的时候,使用这个方法时没有问题的,但是在有代理的情况下,就只能通过其他的方法来获取了。 如果是nginx...阅读全文

博文 2018-05-17 09:53:05 马谦的博客

Go HTTP Redirect的知识点总结

HTTP 规范中定义了返回码为 3xx 代表客户端需要做一些额外的工作来完成请求,大部分3xx用来做转发(redirect)。 状态码的详细说明可以参照规范或者 wikipedia、维基百科, 以下是代码的简短介绍。 300 Multiple Choices: 返回多个可供选择的资源 301 Moved Permanently: 请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一 302 Found: 请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求,HTTP 1.0中的意义是Moved Temporarily,但是很多浏览器的实现是按照303的处实现的,所以HTTP 1.1中增加了 303...阅读全文

ngrok原理浅析

ngrok原理浅析 五 14 bigwhite技术志 firewall, ftp, github, Go, Golang, http, https, network, ngrok, ngrokd, Opensource, proxy, SSH, SSL, TCP, TLS, tunnel, VNC, vpn, Wechat, 代理, 开源, 微信, 远程桌面, 防火墙, 隧道 No Comments 之前在进行微信Demo开发时曾用到过ngrok这个强大的tunnel(隧道)工具,ngrok在其github官方页面上的自我诠释是 “introspected tunnels to localhost",这个诠释有两层含义: 1、可以用来建立public到localhost的tunnel,让居于...阅读全文

博文 2015-05-14 13:14:12 bigwhite

go语言的逆袭

Go 语言的哪些特点最吸引您? 并发 Go 最大的特色就是在语言层面天生支持并发,不需要像其他大多数编程语言那样需要开发者自行实现或借助第三方类库实现并发编程,Go 在语言级别支持的并发编程,其逻辑简化得通俗易懂简单好上手。 性能 不同于大多数脚本或解释性的高阶编程语言,用 Go 编写的代码直接了当编译成机器码高效执行。 简洁 25 个关键字即表达你能想到的所有招式,没有也不需要有任何多余,想干啥事就 go 一下。 跨平台 x86、AMD64 (x86_64)、ARM;Linux、Windows、Darwin (OSX)、FreeBSD、Android (计划Go 1.4) 几乎全平台支持,真正做到一份源码,随处编译,到处运行。 Go 语言都有哪些常见的应用场景? 作为一个 Go 语言的重度...阅读全文

博文 2014-10-13 00:00:03 fuyuehua22

用不到 100 行的 Golang 代码实现 HTTP(S) 代理

![](https://raw.githubusercontent.com/studygolang/gctt-images/master/http-s-proxy/header.jpeg) 我们的目标是实现一个能处理 HTTP 和 HTTPS 的[代理服务器](https://en.wikipedia.org/wiki/Proxy_server)。代理 HTTP 请求的过程其实就是一个解析请求、将该请求转发到目的服务器、读取目的服务器响应并将其传回原客户端的过程。这个过程只需要内置的 HTTP 服务器和客户端([net/http](https://golang.org/pkg/net/http/))就能实现。HTTPS 的不同之处在于使用了名为 “HTTP CONNECT 隧道”的技术。首先...阅读全文

博文 2017-12-16 13:58:50 dongkui0712

gRPC服务发现&负载均衡

gRPC服务发现&负载均衡 构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案: 1、集中式LB(Proxy Model) 在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy等实现。LB上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向LB发起请求,由LB以某种策略,比如轮询(Round-Robin)做负载均衡后将请求转发到目标服务。LB一般具备健康检查能力,能自动摘除不健康的服务实例。 该方案主要问题: 单点问题,所有服务调用流量都经过LB,当服务数量和调用量大的时候,LB容易成为瓶颈,且一旦LB发生故障...阅读全文

博文 2017-03-13 07:01:10 SOFTFN

饿了么 Influxdb 实践之路

前言 Influxdb是一个基于golang编写,没有额外依赖的开源时序数据库,用于记录metrics、events,进行数据分析。这篇文章谈论的influxdb版本在1.2.0以上。这篇文章只谈论influxdb在监控中的数据存储应用,不会谈论influxdb提供的整套监控方案。本文主要谈论五个方面:时序数据库选型、influxdb基本概念、存储引擎、实践、数据聚合。 选型 Influxdb vs Prometheus influxdb集成已有的概念,比如查询语法类似sql,引擎从LSM优化而来,学习成本相对低。 influxdb支持的类型有float,integers,strings,booleans,prometheus目前只支持float。 influxdb的时间精度是纳秒,prom...阅读全文

博文 2017-06-24 09:49:24 刘平

Go 在百万亿级搜索引擎中的应用

Poseidon 系统是由 360 开源的日志搜索平台,目前已经用到了生产环节中,可以在数百万亿条、数百 PB 大小的日志数据中快速分析和检索特定字符串。因为 Golang 得天独厚的支持并发编程,Poseidon 的核心搜索引擎、发报器、查询代理是用 Golang 开发的,在核心引擎查询、多天查询、多天数据异步下载中大量使用了 goroutine+channel 。大家上午好,我是郭军,很高兴今天在这里和大家交流。我今天演讲题目,Golang 在百万亿搜索引擎中的应用。Poseidon在希腊意思是海神,在这里是海量数据集的主宰者。之前我的工作一直面向海量用户,去年年中我接触大数据以及海量数据这样的场景,在今天的演讲中,主要会涉及以下几方面内容:设计目标 Go 应用场景与遭遇的挑战 怎样应对...阅读全文

博文 2017-09-13 14:32:59 郭军

跨境电商平台为何抛弃C#转投Go的怀抱

前言:跨境电商平台如何将业务从 C# 转换到 Go 语言,并最终均使用 Go 来实现?怎样从零打造一整套 Go 服务体系?怎样避免遇到转型微服务的坑?本文将通过 ezbuy 的资深开发工程师陈冶在 Gopher China 2017大会上的分享做详细介绍。正文:我们的平台在整个 Go 语言转型过程中涉及到一些微服务的转型,牵扯到微服务,如何管理这些服务,包括环境,这次分享我会从开发环境的构建,微服务选型,分布式追踪和跨数据中心四个方面来说。 一、开发环境构建1、规范开发环境每个人都有自己开发的环境,公司层面上很难保证每个人的环境是一样的,这样会导致很多兼容性的问题。有很多时候在本地开发很顺利,但一部署到线上或者到其他人的电脑就出现了莫名奇妙的问题,根源就在于环境不同。另一方面,我们在用微服务...阅读全文

博文 2017-08-10 00:48:21 陈治

突然看见了“Go language”

天空飘来一个“Go”,于是我google... Go是什么: Go是Google开发的一种编译型,並發型,并具有垃圾回收功能的编程语言。 Go语言是谷歌2009发布的第二款开源编程语言。 Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 Go要干什么: Go的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此这一语言也被设计用来解决多处理器的任务。 谷歌大约2007年开始开发Go,并于2008年投入了一组全职员工。谷歌当初将该语言设计为一款系统编程语言,可以被用于网络服务器、存储系统和数据库中。但是谷歌认为,该语言还有望被用于其...阅读全文

博文 2014-10-15 16:00:01 u012150179

使用golang搭建新博客系统

原文链接:[https://ashan.org/archives/931](https://ashan.org/archives/931) 前一段时间想对博客系统进行一次大面积更新,因为原有Nodejs后台很多地方做的不好,无论从设计上还是编码结构上都没有达到我想要的效果。所以国庆节前就开始着手对新系统进行设计,经过几天的重构修改,前台部分第一版已经完成,后续还会继续优化。 ### 预计目标 我对我自己博客系统的构想一直没有过变化,而且就这个设想我还专门撰写过一篇名为[《我想要一个怎样的Blog系统》](http://www.ashan.org/archives/893)。我对这次系统更新做了如下几个优化点。 - 打开速度要更快 - 依然不需要花哨功能 - 路...阅读全文

go web 编程

最近,在网上出现了一本名为《Go Web编程》的书籍,里面详细地讲述了使用Go语言进行Web编程的各个方面。很特别的是,这本书是在GitHub上以开源的方式撰写的。日前,InfoQ采访了这本书的作者谢孟军先生,请他来和大家谈谈Go语言以及他撰写的开源书籍。 InfoQ:请您先简单和大家介绍一下自己。 谢孟军:大家好,我叫谢孟军,可以叫我Asta,目前就职于盛大云,负责盛大云分发产品的研发。云分发就是我们平常所谓的CDN系统。 InfoQ:是什么原因促使您撰写《Go Web编程》这本书呢? 谢孟军:我以前主要从事PHP、Python等Web方面的开发,后来到了盛大云之后接触比较多C++等底层的东西,就想学习一下这些底层的技术。再后来看到许式伟的博客,了解到Go语言。Go出自B语言的作者和Uni...阅读全文

博文 2014-10-04 19:26:48 descusr

Kubernetes集群中的Nginx配置热更新方案

Nginx已经是互联网IT业界一个无敌的存在,作为反向代理、负载均衡、Web服务器等多种角色的扮演者,Nginx在全球各个互联网公司落地、开花和结果,Ngnix已经成为了支撑全球互联网应用的一个不可获取的组成部分。 在我们的平台中,Nginx同样被拿来作为服务接入的最前端的反向代理,并且我们的Nginx也是作为一个Service跑在我们的Kubernetes集群中的。Ngnix背后的服务众多,服务的生生死死都要在Nginx上这些服务路由的配置中有所体现,这就要求部署在Kubernetes集群中的Nginx需要有一个合理的配置热更新方案。 Nginx自身是支持配置热更新的,通过nginx -s reload命令可以实现这一点: # sudo nginx -s reload # sudo tai...阅读全文

博文 2017-02-06 03:02:03 bigwhite

一个支持负载均衡,健康检查的 TcpProxy

## goTcpProxy GitHub:https://github.com/zheng-ji/goTcpProxy [![Go Report Card](https://goreportcard.com/badge/github.com/zheng-ji/goTcpProxy)](https://goreportcard.com/report/github.com/zheng-ji/goTcpProxy) 一个支持负载均衡,健康检查的 TcpProxy ![smailltcp](https://cloud.githubusercontent.com/assets/1414745/19109474/2eea5e56-8b28-11e6-80ba-be5ed911...阅读全文

go代理服务器代码

go代理服务器代码 最近用废弃的小笔记本搭了个centos服务器挂着,搭了ssh,tomcat,go环境,想搭个代理服务器访问路由,不想安装,想自己写一个,顺便复习一下go语言知识。 一开始,我网上搜了一下go语言写代理服务器的代理,搜索到一个: 来自:http://symphony.b3log.org/article/1357452978419 (原文地址:http://kejibo.com/golang-http-proxy-server 已失效) package main import ( "http" "log" "os" "io/ioutil" ) func handler(w http.ResponseWriter, r *http.Request) { resp, err :=...阅读全文

博文 2015-08-25 19:00:00 u010499721

kingshard--一个Go开发高性能MySQL Proxy项目

kingshard简介 kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。 主要功能: 1.读写分离。 2.跨节点分表。 3.客户端IP访问控制。 4.平滑上线DB或下线DB,前端应用无感知。 反馈 目前kingshard还是1.0版本,比较核心的功能已经实现了。但还有很多地方不完善。如果您在使用kingshard的过程中发现BUG或者有新的功能需求,非常欢迎您发邮件至flikecn#126.com与作者取得联系,或者加入QQ群(147926796)交流。 地址:https:...阅读全文

谷歌 Go 语言从入门到应用,

Go语言于2009年11月正式宣布推出,成为开放源代码项目,发展至今已经具有越来越广泛的影响力,今年更是在 TIOBE 编程语言排行榜中上升了 34 位,跻身 20 强。很多开发者也逐渐将目光投向这门语言,本文整理了部分比较好的学习和应用 Go 语言的开发项目,希望为没有接触过这门语言的开发者们提供一个学习和了解这门语言的途径。 关于 Go 语言: Go 是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言。 一、入门篇 0.开源图书 《Go Web编程》 一本开源的书籍《Go Web编程》《build web application with golang》。书中作者主要分享了Go写web应用的一些东西: 对于从php/python/ruby转过来的同学了解go怎么写web...阅读全文

博文 2016-12-11 10:00:03 两味真火

go语言

go语言,是用在服务端的。 知乎大部分项目是 Python 写的,有几个小项目是用 Go 写的。我从一个 Python 为主的开发者的角度说说对 Go 的优点的体会吧: 部署简单。Go 编译生成的是一个静态可执行文件,除了 glibc 外没有其他外部依赖。这让部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。这和 Python 有着巨大的区别。由于历史的原因,Python 的部署工具生态相当混乱【比如 setuptools, distutils, pip, buildout 的不同适用场合以及兼容性问题】。官方 PyPI 源又经常出问题,需要搭建私有镜像,而维护这个镜像又要花费不少时间和精力。并发性好。...阅读全文

博文 2016-04-30 12:00:02 zhangbinsijifeng

网易轻舟微服务大升级,突破在线业务中台的异构挑战

7月26日,网易云创峰会在杭州举行。会上,网易轻舟微服务发布了支持Service Mesh、分布式事务框架GTXS、全新API网关等重大更新。网易云基础服务总经理陈谔称,此次更新将主要帮助企业应对在线业务中台建设过程中面临的挑战,帮助企业完成业务架构的进化,建成在线业务中台,支撑业务快速创新。在线业务中台建设面临两大挑战去年的云创大会,是网易一站式微服务解决方案“轻舟”的首次亮相。一年来,轻舟在业界进行了大量实践和探索。网易考拉基于轻舟微服务平台实现了核心系统的分布式改造,全面实现资源层和应用层的弹性,有效支撑了618、818、双11、黑五等电商大促活动;德邦快递基于网易轻舟微服务平台进行了系统的微服务改造,最终实现IT的全面升级,加快数字化进程;大华股份借助网易轻舟微服务平台,构建了统一的...阅读全文

博文 2019-07-26 20:32:43 网易云社区

Go get使用代理

在vscode中使用golang时,经常会出现安装第三方工具的时候失败的问题,一般来说都是下载了golang.org/x/...下面的包或者要下载的工具依赖于golang.org/x/...的包所导致的,在国内是不会很顺利的下载和安装的。 Installing github.com/mdempsky/gocode FAILED Installing github.com/uudashr/gopkgs/cmd/gopkgs FAILED Installing github.com/ramya-rao-a/go-outline FAILED Installing github.com/acroca/go-symbols FAILED Installing golang.org/x/tools/c...阅读全文

博文 2019-06-20 17:32:54 路过麦田

go单元测试进阶篇

版权声明:本文由腾讯云数据库团队 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/921985001483606833 来源:腾云阁 https://www.qcloud.com/community 作者介绍:熊训德(英文名:Sundy),16年毕业于四川大学大学并加入腾讯。目前在腾讯云从事hadoop生态相关的云存储和计算等后台开发,喜欢并专注于研究大数据、虚拟化和人工智能等相关技术。 本文档说明go语言自带的测试框架未提供或者未方便地提供的测试方案,主要是用于解决写单元测试中比较头痛的依赖问题。也就是伪造模式,经典的伪造模式有桩对象(stub),模拟对象(mock)和伪对象(fake)。比较幸运的是,社区有丰富的...阅读全文

博文 2017-01-11 09:00:01 偶素浅小浅

kubernetes RBAC实战 kubernetes 用户角色访问控制,dashboard访问,kubectl配置生成

kubernetes RBAC实战 环境准备 先用kubeadm安装好kubernetes集群,包地址在此 好用又方便,服务周到,童叟无欺 本文目的,让名为devuser的用户只能有权限访问特定namespace下的pod 命令行kubectl访问 安装cfssl 此工具生成证书非常方便, pem证书与crt证书,编码一致可直接使用 wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 chmod +x cfssl_linux-amd64 mv cfssl_linux-amd64 /bin/cfssl wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 chmod +x cfssljson_...阅读全文

博文 2017-11-24 12:04:42 fanux

go 实现的socks5服务器端

#####用go写的socks5服务器端代码: 1.默认只支持用户名密码的认证方式(username:abc , password:123),监听 tcp 8083 端口; 2.CMD支持TCP、UDP,不支持BIND,需要的可自行再实现; 3.支持ipv4、domain,目前不支持 ipv6; 4.建议客户端使用 proxycap, proxycap、SocksCap64 测试过能很好支持。(玩LOL,正常游戏)建议客户端不设置服务器端做DNS解析,效率相对会慢些; 5.注意服务端 防火墙 tcp 8083 端口开放及UDP协议全开放; 6.使用时有bug或问题欢迎留言; 7.想尝试用 go 写个简单的客户端,支持 lsp 劫持,配合服务器端做代...阅读全文

封装golang websocket

websocket出来好久了,一直没有动手去玩玩,今天抽了点时间写了一个golang的例子,下面简单记录一下。 协议 websocket是个二进制协议,需要先通过Http协议进行握手,从而协商完成从Http协议向websocket协议的转换。一旦握手结束,当前的TCP连接后续将采用二进制websocket协议进行双向双工交互,自此与Http协议无关。 可以通过这篇知乎了解一下websocket协议的基本原理:《WebSocket 是什么原理?为什么可以实现持久连接?》。 粘包 我们开发过TCP服务的都知道,需要通过协议decode从TCP字节流中解析出一个一个请求,那么websocket又怎么样呢? websocket以message为单位进行通讯,本身就是一个在TCP层上的一个分包协议,其...阅读全文

博文 2017-11-22 02:29:40 鱼儿的博客

golang HTTP ReadRequest

服务端收到client发送的Http数据后怎么解析成具体的Request对象呢?下面来看看golang是如何处理的 首先看一个具体应用实例:仅仅包含HTTP里面的Method,URL和Proto package main import ( "bufio" "fmt" _ "io" "net/http" "net/textproto" "strings" ) func main() { request() } //当然这个实例比较简单,仅仅是通过\n来解析出几个字段而已 func request() { paths := "/xxx" br := bufio.NewReader(strings.NewReader("GET " + paths + " HTTP/1.1\r\nHost: tes...阅读全文

博文 2015-11-11 18:00:01 golang_yh

不用go-(xxoo)agent的也有可能是程序员

记得是去年某个时候,在一个群里问大家是怎么翻(什么)墙的,发现很多人是用go-(xxoo)agent的,而我当时完全没听说过go-agent,因为我已经N多年不翻(什么)墙了,于是,有人就说:“连go-(xxoo)agent都没用过你还是程序员吗?”说实话,我也不希望我是程序员啊!可我真的没用过go-(xxoo)agent啊! 想起我一位前同事,工作很多年了,却从来没用过linux!(也不知道他说的是真的还是假的,至于你信不信,反正我是信了。)他说这是他第一次用linux!(也难怪啊,他在原来的公司干里好多年,公司是用.net的。自然没必要用linux。)但我不能说他不是程序员,事实上,他工作完成得很出色。i第一次接触linux,很快就熟悉了。 不用linux还可以用windows,不用go...阅读全文

解决go get timeout

解决方案 http://blog.zhaishidan.cn/2016/04/21/jie-jue-go-getwu-fa-huo-qu-golang-orgde-bao-de-wen-ti/ 你首先得有个能够(尼)翻(玛)墙的代理地址,我这里用的是Lantern,他的http代理端口是8787。 go get设置代理,需要添加http_proxy等环境变量 修改~/.bashrc添加以下配置后,在source ~/.bashrc就可以了: export http_proxy=http://localhost:8787 export https_proxy=httpproxyexportftpproxy=http_proxy export ftp_proxy=http_proxy expor...阅读全文

博文 2016-11-05 08:00:03 KingEasternSun

开源世界再添“闪耀明星”,这次是百度万亿流量转发引擎BFE

国内开源圈里刚刚发生了两个标志性的事件。一是曾在2019年春晚红包中扛住超大用户压力、数次流量波峰的转发引擎——百度的统一七层流量转发平台BFE,在内部演化了七个年头后,将以开源的形式帮助开发者们构建属于自己的全局负载均衡系统。在业界掀起了巨大的声浪。二是KE meng在知乎回答中晒出了自己写的“狗屁不通文章生成器”,意外受到了无数网友的“爱戴”,纷纷好奇这个富有灵魂的“生成器”可以制造出什么样的魔幻主义大作。短短一周的时间,该项目便冲上了GitHub趋势榜榜首。发生在同一时间点的两起事件,无疑揭示了中国开源文化的两个侧面:我们从不缺少令人称道的“民间高手”,但大众对开源的认知仍局限在浅显的名词上,还要娱乐化来吸引关注;我们并不缺少百度这样在开源世界里的标杆企业,但“开源贡献主要来源于外国科...阅读全文