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

用golang fastcgi与nginx配合写web

1.配置nginx/FastCGI This is actually pretty easy. I assume you already have some experience configuring nginx.conf. (Each install seemingly has different defaults as to the conf file's location, and contents, so I won't go over it here. Mine is in /usr/local/etc/nginx.) I assume too that you've configured PHP with FastCGI before. If not, you may stil...阅读全文

博文 2015-06-17 20:02:14 ijibu

七牛首席布道师:Go不是在颠覆,就是在逆袭

文章来源:http://www.csdn.net/article/2014-07-21/2820743 七牛官网: https://github.com/qiniu http://developer.qiniu.com/ Go 语言是谷歌 2009 年首次推出并在 2012 年正式发布的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去10多年间软件开发的难度令人沮丧。Google 对 Go 寄予厚望,其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助开发者处理琐碎但重要的内存管理问题。Go 的速度也非常快,几乎和 C...阅读全文

博文 2016-02-08 21:00:02 libaineu2004

Golang 下的微服务 - 第 8 部分 - Kubernetes 和 容器引擎

[上一篇博文](https://studygolang.com/articles/12799) 我们看了看用 [Terraform](https://terraform.io/) 创建容器引擎集群。在本篇博文里,我们看看使用容器引擎和 [Kubernetes](https://kubernetes.io/) 部署容器到集群里。 ## Kubernetes 首先,什么是 [Kubernetes](https://kubernetes.io/) ? [Kubernetes](https://kubernetes.io/) 是一个开源的、管理容器的框架。与平台无关,就是说着你可以在你本机上,在 AWS 或者 Google Cloud,任何其他的平台运行它。(Kubernetes)能让你通过使用声明...阅读全文

博文 2018-04-19 11:13:19 ArisAries

分布式任务调度平台-forest

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

博文 2019-10-23 11:27:45 busgo

go requests 使用日记

requests requests 是一个用golang 语言clone python版本的requests库。 golang 自带的net/http功能已经非常完善。它和python里面的urllib系列库一样,功能足够,但是使用起来非常繁琐。 python版本的requests简直就是神器,让很多人非常敬仰。 因此我就动手按照python的requests的思想封装了一个 requests。 动手之前,我想尽量兼容 python的写法。但是golang不支持函数名称小写, 也不支持 参数命名。所以我只能用参数类型的方案来支持动态参数。 安装 golang 1.11之前 go get -u github.com/asmcos/requests golang 1.11之后,编辑一个go.mo...阅读全文

博文 2018-09-03 14:35:24 asmcos

蚂蚁金服大规模微服务架构下的Service Mesh探索之路

小蚂蚁说:本文是根据蚂蚁金服 Service Mesh 布道师敖小剑在 Service Mesher社区进行的第一次 Meetup 上分享的《大规模微服务架构下的 Service Mesh 探索之路》现场演讲内容实录整理编辑而成,希望能给关注 Service Mesh 产品的朋友们带来帮助和了解。讲师PPT下载地址:https://github.com/servicemesher/meetup-slides视频直播回放:http://www.itdks.com/eventlist/detail/2311 蚂蚁金服Service Mesh 布道师敖小剑 前言今天给大家带来的内容叫做Service Mesh探索之路,但是在前面加了一个定语:大规模微服务架构下。之所以加上这个词,是因为我们这个体系...阅读全文

博文 2018-07-05 14:34:47 阿里云云栖社区

Golang的压测工具 hey

https://github.com/rakyll/hey -n 要运行的请求数。默认是200。 -c 并发运行的请求数。请求的总数不能小于并发级别。默认是50。 -q 速率限制,以每秒查询(QPS)为单位。默认没有限制。 -z 发送请求的应用程序配置。当时间到了,应用程序停止并退出。如果指定持续时间,则忽略n。例子:- z 10s - z 3m。 -o 输出类型。如果没有提供,则打印摘要。“csv”是唯一受支持的替代方案。转储文件的响应以逗号分隔值格式的度量。 -m HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS. -H 自定义HTTP头。您可以通过重复标记指定所需的数量 For example, -H "Accept: ...阅读全文

蚂蚁金服开源 MOSN 核心概念解析

前言 MOSN 是一款使用 Go 语言开发的 Service Mesh 数据平面代理,2018 年 7 月由蚂蚁金服开源,开源地址 https://github.com/sofastack/sofa-mosn,MOSN 旨在为服务提供分布式、模块化、可观察和智能化的代理能力。MOSN 是 Modular Observable Smart Network 的简称。MOSN 可以与任何支持 xDS API 的 Service Mesh 集成,亦可以作为独立的四、七层负载均衡使用。未来 MOSN 将支持更多云原生场景,并支持 Nginx 的核心转发功能。 本文根据蚂蚁金服烈元 2019 年 11 月 30 日在 Gopher China Meetup 北京站上的分享整理而成,查看分享回顾,同时本文...阅读全文

博文 2019-12-12 17:32:47 ServiceMesher

蚂蚁金服微服务实践 | 开源中国年终盛典分享实录

章耿,花名余淮,蚂蚁金服高级技术专家。2007 年毕业后一直从事服务化相关的工作,最早在国家电网做电子商务平台 SOA 化的工作,之后在京东负责京东的服务化框架 JSF,目前在蚂蚁金服中间件服务与框架组负责应用框架及 SOFAStack 相关的工作。本文根据余淮在 2018 开源中国年终盛典的演讲内容整理,完整的分享 PPT 获取方式见文章底部。 本次分享主要分为三部分:蚂蚁金服服务化架构演进蚂蚁金服微服务体系蚂蚁金服 SOFAStack 的开源情况 1、蚂蚁金服服务化架构演进在开始讲架构演进之前,我们先来看一组数据。 这是历年来的双十一数据图,柱状是双十一的交易额,从最初到20亿到去年的1682亿,今年是2135亿。而这个橙色的折线则是支付宝双十一 0 点的交易峰值,去年是 26.5w笔每...阅读全文

博文 2018-12-20 13:34:45 金融级分布式架构

10分钟将你的Go工程转换为Go Module模式

引言自从在Go 1.11和更高版本中引入了Go的新的依赖管理系统以来,GoLang开发人员已经接受了包版本控制解决方案。这样做的用户可以使用GoCenter存储库中的不可变公共Go 模块,并通过更健壮、更可靠的Go Pipeline获得更快的构建速度。 但是,将现有的项目转换为使用Go Module并不总是很容易,尤其是如果该项目已经尝试过GoLang的其他包管理解决方案时。 为了帮助GoLang社区正确地使用Go Module,我们将使用开源的etcd项目(Kubernetes使用的键值数据存储)作为示例。这是一个最佳实践的实际示例,因为它足够复杂,可以展示一些常见的实践 PS:在上一篇关于Go语言开发的的文章中(传送门:Go 语言依赖管理的优势),我们介绍了Go 依赖管理的发展历史以及G...阅读全文

博文 2019-09-17 11:33:19 JFrog中国

golang中http协议实现

golang中http协议实现 写了一个爬虫,发现出现了socket泄露的情况。百度了一下发现是缺少了Response.Body.Close(),所以导致连接 没有被正常的关闭。也没有被gc回收。下面是文档中的说明 Callers should close resp.Body when done reading from it. If resp.Body is not closed, the Client's underlying RoundTripper (typically Transport) may not be able to re-use a persistent TCP connection to the server for a subsequent "keep-alive"...阅读全文

博文 2016-07-05 05:00:09 xinglong

请教一个golang如何通过代理服务器验证问题

最近在做一个简单测试,在公司内网实现抓取外网一个网页,但是因为公司是通一个代理服务器出去的,所以需要先通过代理服务器验证。找了好久的资料实在没找到,我用c#可以实现。主要是不知道golang下面怎么实现代理服务器的验证,代码是在网上一个关键代码如下: func fetch(url, proxy_addr *string) (html string) { transport := getTransportFieldURL(proxy_addr) client := &http.Client{Transport: transport} req, err := http.NewRequest("GET", *url, nil) ****req.SetBasicAut...阅读全文

Go 实现安全 cookie

我第一次学习 Go 的时候,已经有了一定的 Web 开发经验,但是直接使用 cookie 的经验还比较少。我之前是用 Rails 的,在 Rails 里面如果要读/写 cookie,并不需要自己去实现所有的安全措施。 如你所见,Rails 偏向于通过默认配置就将大部分事情搞定。你不必去设置 CSRF 反制措施,或者做任何特殊操作来加密 cookie。在较新版本的 Rails 中这一切都默认帮你做好了。 用 Go 开发就完全不同了,这些事情并没有默认帮你做好。所以当你想使用 cookie 时,了解所有这些安全措施就很重要:为什么存在有这些措施,以及如何在我们自己的程序中使用它们。本文旨在帮助你了解上述知识点。 > 本文目的不在于引发关于哪条路线更好的讨论/争论。两者都有各自的优点,这里不去比较...阅读全文

博文 2018-11-21 09:44:27 polaris

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

###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)交流。 ...阅读全文

开源项目 2015-07-19 11:28:34 flike

用golang写一个http代理,可以抓包和科学上网

# 用golang写一个http代理,可以抓包和科学上网 ##缘起 因为在工作中需要对上网进行限制,只让我们的app上网,意思就是放行app请求的所有域名或ip,而其他域名都禁止,所以我需要对app的http请求进行抓包。上网搜了一下,win下的fiddler不错,可惜我用的是Linux系统,fiddler不跨平台,找了下linux下的抓包软件,当然tcpdump和wireshare是足够强大的,完全可以实现我要的小小要求,但用起来有一定的复杂性,门槛稍高。在网上找到其他类似的软件还挺多,charles、NProxy等,最后发现mitmproxy最符合我的胃口,如图: ![mitproy](https://mitmproxy.org/images/mitmproxy.png) ...阅读全文

主题 2016-06-15 15:18:11 sheepbao

Go SDK 1.13各项增强简介

本博已经在Go语言将在1.13版本中引入的变化一文中介绍了Go 1.13将对语法和标准库做出的增强。其实, 官方Go SDK 1.13也将带来很多新的变化。本篇文章下面将介绍一下这些变化。 Go SDK 1.13之前,很多可以安全地开辟在栈上的内存因为编译器中的逃逸分析器不够智能的原因而被开辟在了堆上。这在一定程度上影响了程序执行效率。从Go SDK 1.13开始,标准编译器将采用一个新的逃逸分析器,从而将避免很了多不必要的在堆上开辟内存的情况。 Go SDK 1.13之前,所有的defer延迟调用都是记录在堆上的,这严重影响了defer延迟调用的执行效率。从Go SDK 1.13开始,满足某些条件的某些defer延迟调用(标准库中93%的延迟调用满足此条件)将被记录在栈上而不是堆上,从而提...阅读全文

微信服务号和Go语言开发初学者开发服务号过程中的填坑之旅

最近给某用户做微信服务号自定义开发,需求很简单,主要功能是从用户已有的系统读取数据显示在服务号中。虽然是微信服务号和Go语言的开发初学者,但是感觉实现过程也应该非常简单,也就是从用户已有的外网数据库中读出数据,调用微信的API展示,相信一周之内可以很快搞定。没想到实际开发过程中还是遇到了一些坑,将填坑过程总结如下: 1、 用户要求自定义菜单的二级菜单有6项,一开始没当回事,后来看微信API文档发现只支持5项二级菜单。 这个好解决,和用户沟通把多余的二级菜单移到另一个主菜单下,但估计会给用户留下不专业的印象啦 2、 服务端API采用Go语言开发,用户旧系统的数据库用的是SQLServer2000,是的,SQLServer2000,你没看错,很古老的数据库。 1) Go语言没有支持SQLServ...阅读全文

博文 2014-12-16 15:00:08 bluezwt

Go Workflow

Photo from Luismi Cavallé My web development workflow in Go is not much different than how I used to work with PHP, but it is slowly shifting in subtle ways. When I first started learning how to program, using PHP years ago, I would work in short feedback loops. I would hit F5 to refresh my work all the time. Often with the smallest change I would ...阅读全文

博文 2015-05-05 20:26:26 Supermighty

给golang增加websocket模块

最近打算做一款类似腾讯<<脑力达人>>的h5游戏,之前打算用skynet来做,所以给skynet增加了websocket模块,https://github.com/Skycrab/skynet_websocket。刚好最近在学习golang,考虑之下打算用golang来实现,说不定过段时间还能整个golang游戏服务器。之前我一直认为Python是我的真爱,但现在真心喜欢golang,也许这也是弥补我静态语言的缺失吧,虽然C++/C还算熟悉,但没有工程经验,始终觉得缺少点什么。我相信golang以后会在服务器领域有一席之地,现在研究也算投资吧,等golang越来越成熟,gc越来越高效,会有很多转投golang的怀抱。 我始终相信,一门语言一种文化。当我写Python时,我很少会考虑效率,想的...阅读全文

博文 2015-06-17 20:00:12 yueguanghaidao

Go Modules 详解

文链接:Go Modules 详解 Go 1.11 和 Go 1.12 包含了初步的 Go Modules 支持,且计划在 2019 年 8 月发布的 Go 1.13 会在所有开发过程中默认使用 Go Modules。 Go Modules 是为了提升使用其他开发者代码,即添加**依赖项(模块、包)**时的体验,也是为了让代码的正确性、安全性得到保障。并且 Go Modules 可以使用 GOPROXY 环境变量来解决中国大陆无法使用 go get 的问题。 所以学习跟 Go Modules 有关的知识是很有必要的。 Golang Logo 模式 Go Modules 在 Go 1.11 及 Go 1.12 中有三个模式,根据环境变量 GO111MODULE 定义: 默认模式(未设置该环境变...阅读全文

博文 2019-06-20 22:34:37 sulinehk

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://gi...阅读全文

SRS流媒体服务器源码分析(一)

线程模型 srs使用了state-threads协程库,是单线程多协程模型。 这个协程的概念类似于lua的协程,都是单线程中可以创建多个协程。而golang中的goroutine协程是多线程并发的,goroutine有可能运行在同一个线程也可能在不同线程,这样就有了线程安全问题,所以需要chan通信或者mutex加锁共享资源。 而srs因为是单线程多协程所以不用考虑线程安全,数据不用加锁。 主流程分析 撇掉程序启动的一些初始化和设置,直接进入: int SrsServer::listen() { int ret = ERROR_SUCCESS; if ((ret = listen_rtmp()) != ERROR_SUCCESS) { return ret; } if ((ret = lis...阅读全文

博文 2018-09-18 13:34:42 云上听风

Kubernetes v1.0特性解析

kubernetes1.0刚刚发布,开源社区400多位贡献者一年的努力,多达14000多次的代码提交,最终达到了之前预计的milestone, 并意味着这个开源容器编排系统可以正式在生产环境使用,必将推动容器生态及周边产业的进步发展。本次分享主要介绍kubernetes1.0较新的功能特性,包括服务发现方式及较新版本对应的设置变化,如何用dns方式构建内网服务发现,存储支持,如何解决集群存储及如何使用rbd的方式将ceph存储块附加到Pod,监控,如何在集群模式下搭建监控系统等话题。以及介绍Kuberentes官方发布时官方提到的功能理念及未来部分的功能扩展,包括k8s产品经理Craig McLuckie所提及的kubernetes的整体愿景等。 下文是本次的分享整理: 首先介绍...阅读全文

编写telegraf Input插件

Telegraf是一个Influxdata的数据采集套件,使用起来跟Collectd、Statsd、Logstash等软件很像。通过plugin来实现数据的input和output。 今天我们尝试自己编写一个采集supervisord的插件1. 准备golang (最好1.9+)环境,2. 准备一些dep 编译环境 https://golang.github.io/dep/docs/installation.html3. 准备http_proxy (你懂的)4. go get github.com/influxdata/telegraf5. cd $GOPATH/github.com/influxdata/telegraf6. git checkout -b supervisor7. cd ...阅读全文

博文 2018-08-07 14:34:54 lmy_8db4

go开发者工具gotool

gotool ======= gotool是一个小而全的Golang工具集,主要是将日常开发中常用的到方法进行提炼集成,避免重复造轮子,提高工作效率,每一个方法都是作者经过工作经验,和从以往的项目中提炼出来的。 ## 2021-7-9更新内容详细使用请看文档 - 添加文件IO操作工具FileUtils - 添加验证码生成工具CaptchaUtils - 添加文件目录压缩和解压缩工具ZipUtis - 字符串数组工具StrArrayUtils ### 如何使用gotool呢? ### 安装 go get github.com/druidcaesa/gotool go.mod github.com/druidcaesa/gotool ### 引...阅读全文

开源项目 2021-07-08 08:55:03

家庭/企业网络的透明代理软件 kone

kone是一款把路由请求转发到http/sock5 proxy的软件(route2proxy),你可以把它应用到很多需要路由的场合,它同时实现了dns欺骗功能,并隐藏其中的代理服务器细节,实现透明穿越。特点如下: (1)实现了灵活的匹配模式 (2)实现了dns欺骗功能可以透明穿越 (3)实现了WEB status接口,方便查看运行状...阅读全文

搭建私有goproxy

搭建私有goproxy 由于众所周知的原因,在大陆的网络环境是无法访问到golang.org等google的网站的。但在开发日常中使用的很多依赖包或系统包依赖都是在google的服务器上。为了解决无法加载依赖的问题,国内也有很多种解决方案。一种是使用goproxy.io或七牛主导的goproxy.cn。在企业里,有很多情况是生产网络或测试网络环境是无法正常访问外网的,为了解决这个问题可能需要自己搭建一个proxy来管理依赖包。 搭建goprxoy 找一台可以访问外网的服务器。下载goproxy源码: $ go get github.com/goproxy/goproxy $ vim main.go 增加main.go文件: package main import ( "net/http" "...阅读全文

博文 2019-10-14 10:32:53 aside section ._1OhGeD

MongoDB 最佳实践及2.8版本特性与功能

主要流程 MongoDB 2.8 版本特性与功能 MongoDB 在赶集网的应用 MongoDB 最佳实践 MongoDB 2.8 版本特性与功能 TJ MongoDB 开发者 TJ 强调 MongoDB 没有实际意义上的锁,只有 Latch,门栓。 2.6 库级锁 Latch,没有 Lock,写内存的一刹那锁住内存 2.8 无锁的 MVCC 并发,WIREDTIGER,snapshot isolation 2.6 MMAP 内存映射,库级锁 2.8 MMAP 集合级锁 2.8 WIREDTIGER 无锁 WIREDTIGER 存储模式 LSM(HBASE, Cassandra) - Log Structured Merge B-TREE LSM 数据写内存,异步写硬盘 读性能有问题,性能一...阅读全文

博文 2015-04-18 22:00:00 灰仔

为 Java 程序员准备的 Go 入门 PPT

Video This talk was presented at NYJavaSIG on April 23, 2015. Watch the talk on YouTube Outline 1. What is Go, and who uses it? 2. Comparing Go and Java 3. Examples 4. Concurrency 5. Tools What is Go? "Go is an open source programming language that makes it easy to build simple, reliable, and efficient software." golang.org History Design began in ...阅读全文

博文 2015-05-28 12:00:05 叶秀兰, wancheng, 一曲, leoxu

一线大厂高级工程师面经分享,成功拿到百度offer

目前从事开发工作也有5年时间了,从刚开始大学毕业来到帝都,开启了自己的开发之旅,呆过的都是互联网公司,一二线的大公司(百度、美团、探探、滴滴等)都有去面试过,也顺利拿到了3个offer,最终我还是选择了百度的offer。​刚开始一般先做自我介绍,在这一块我就不多讲,很多人都分享过,你们都可以去参考!我在这边总结下PHP后端专业技能,这样可能是大部分程序员都关心的问题,我所说的大部分你目前可能还不会,但是当你掌握后,薪资水平会有一个质的飞跃!​面试总结1.PHP7的新特性有哪些2.数据库设计为什么进行分表,分库3.Mysql实现底层btree机制4.web开发方面会遇到哪些缓存,分别如何优化5.如何用关联数组实现栈6.数据库进行主从分离主要的原理7.php的内存回收机制8.nginx负载均衡有...阅读全文

博文 2019-02-14 21:25:53 person_limit

go 包管理 踩坑

安装或者 运行 go build 时候报错: go: finding github.com/modern-go/concurrent latest go: finding gopkg.in/check.v1 latest go: golang.org/x/net@v0.0.0-20190503192946-f4e77d36d62c: unrecognized import path "golang.org/x/net" (https fetch: Get https://golang.org/x/net?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connect...阅读全文

博文 2019-06-25 09:32:38 源泉

三段代码搞定 go get 命令被墙问题

git 设置代理 git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0.0.1:1080 在系统环境变量的PATH 路径下建立一个脚本文件,并命名为 proxy。文件内容: #!/bin/bash # export {http,https,ftp}_proxy='http://127.0.0.1:3128' http_proxy=http://127.0.0.1:3128 https_proxy=http://127.0.0.1:3128 $* 使用方法,打开 git命令工具。输入 proxy + 你的命令 proxy go get -v sour...阅读全文

博文 2017-06-27 15:03:25 中柠檬

Golang http.DefaultClient 连接服务端压测时出现大量TIME_WAIT异常

今天在做一个压测场景时,通过golang作为client去连接服务,在client的服务器上出现大量的TIME_WAIT连接。经过查找资料,得到解决,参考如下: The default http.Transport is opening and closing connections too quickly. Since all connections are to the same host:port combination, you need to increase MaxIdleConnsPerHost to match your value for num_coroutines. Otherwise, the transport will frequently close the e...阅读全文

博文 2017-09-15 18:33:10 fdhay

golang http连接池失效的几种情况及具体原因分析

首先,连接池失效,问题产生背景是高频agent,agent 会发起大量的http 请求,但是,本想net/http 是支持长连接的,但是,几种情况,都产生了大量的time_wait,这里予以总结。 第一种情况是误用transport ,为了设置代理,为每个请求,都new 了一个transport 。 client := &http.Client{ CheckRedirect: redirectPolicyFunc, Timeout: time.Duration(10)*time.Second,//设置超时 } client.Transport = &http.Transport{ Proxy: http.ProxyURL(proxyUrl), } //设置代理ip 失效的原因,是client...阅读全文

博文 2018-03-31 11:33:05 caucy

如何利用一个数据库中间件扩展MySQL集群

上次写了一篇有关kingshard架构设计的[文章](https://github.com/flike/kingshard/blob/master/doc/KingDoc/architecture_of_kingshard_CN.md),得到了很多热心网友的关注。其中有网友提到:希望再写一篇关于如何利用kingshard搭建一个可扩展的MySQL集群的文档。利用假期时间,写了一篇kingshard使用指南,在这篇文章中,我将结合自己对MySQL Proxy的理解,为大家讲述如何正确使用kingshard数据库中间件。 感兴趣的同学,请移步: https://github.com/flike/kingshard/blob/master/doc/KingDoc/how_to_use_ki...阅读全文

golang 全能的模拟请求方法(含代理IP功能)

前言 我们在做一些自动化业务或者爬虫业务的时候常常要用到模拟请求,例如模拟登录,模拟购买,抓取页面内容等。如果抓取的页面是一个毫无权限校验的普通页面,那只用Get方法即可,但现实往往比较残酷,不是都那么轻易的被你采集。在一个有登录判断的页面,你可能要伪造cookie,header等;如果IP被限制了访问次数,你还需要使用到代理IP。 一个常规的请求如下图: 代码 方法代码: package utils import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url" ) //模拟请求方法 func HttpPost(postUrl string, headers map[string]string, jsonMap...阅读全文

博文 2020-02-05 17:32:40 叶子

Java码农怎样学习才能成为年薪100万的架构师大牛

​有人回答说这只能是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该已经转管理。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达到。还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,懂点大数据等等,或者表达能力强,击中面试官痛点都会加分。如果你达到我说的水准,起薪就是2w,有其他优秀的表现还会在这个基础上加分。但纯JAVA方面待遇是比较吻合的。还有SSH真的不是我要黑,2w水平的面试几乎很少问SSH的知识,要问也是问架构层次的还有设计模式的。例如mybatis是如何管理session和cache的。spring里面有哪些你熟悉...阅读全文

博文 2018-12-10 18:00:07 Javaspring12

Beego打包部署到Linux

Beego打包部署到Linux 打包 打开Terminal 定位到工程的 main.go 文件夹目录 使用命令 bee pack -be GOOS=linux 进行打包 打包成Windows 命令 bee pack -be GOOS=windows 部署 将打包好的程序,放到Linux上的某个目录。 将程序放在后台运行,这里使用screen命令进行操作。一般来说,Linux都会自带了screen,如果没有,则可通过命令 sudo apt-get install screen 或 sudo yum install screen进行安装。 安装完成screen后,使用命令screen -S ***进入到screen后台界面,其中打 *** 号的是给这个屏幕建一个别名,这样好知道后台部署的程序在哪...阅读全文

博文 2019-01-22 18:34:44 兔宰子

golang 高并发下 tcp 建连数暴涨的原因分析

背景:服务需要高频发出GET请求,然后我们封装的是 golang 的net/http 库, 因为开源的比如req 和gorequsts 都是封装的net/http ,所以我们还是选用原生(req 使用不当也会掉坑里)。我们的场景是多协程从chan 中取任务,并发get 请求,然后设置超时,设置代理,完了。我们知道net/http 是自带了连接池的,能自动回收连接,但是,发现连接暴涨,起了1万个连接。 首先,我们第一版的代码是基于python 的,是没有连接暴涨的问题的,封装的requests,封装如下: def fetch(self, url, body, method, proxies=None, header=None): res = None timeout = 4 self.erro...阅读全文

博文 2018-03-14 23:33:04 caucy

部署devstack

新公司是一家数据与基础设施提供商(to B)。初来乍到,和这里的同事了解了一些云计算平台和大数据平台的技术栈。对于“新鲜”(only to me)的技术栈,自己总有一种折腾的冲动,于是就有了这一篇备忘性质的文章,记录一下自己部署devstack的步骤、遇到的问题和解决方法。 和诸多国内提供公有云的厂商一样,公司的云产品也是基于成熟的OpenStack云计算平台框架和组件搭建的,并做了一些定制。长久以来,我一直以为OpenStack等都是Java技术栈的,对Java技术栈出品的东西总有一种莫名的恐惧感,现在我才发现原来OpenStack是Python系(那个汗汗汗啊)。而OpenStack的另外一个竞争对手:CloudStack才是正经八百的Java系。 OpenStack是一堆云计算平台组件...阅读全文

博文 2016-05-28 08:37:43 bigwhite

如何"优雅"地发布 go module 模块

前言 截止到go1.13, go 官方推出的包管理工具go module已经发布三个版本了,网上也有很多文章介绍如何使用go module(推荐观看附录中Go夜读的视频和官方Wiki),但是大部分都是讲如何引用别人的go module模块,鲜有提到如何发布自己的go module包的文章。本文将主要介绍如何“优雅”地发布自己的go module模块。 本文的代码和命令均在 ubuntu 19.10 中运行,go 的版本为 1.13.5 pkg.go.dev简介 go.dev 是go官方团队于2019年11月上线的集合go开发资源的网站,包括一些学习课程和一些go的案例,当然最重要的就是提供了go的第三方包的检索功能。没错,他就是用来取代原来的godoc.org的,现在godoc.org上也有...阅读全文

博文 2020-02-21 10:34:30 YouEclipse

理解Docker容器端口映射

在”理解Docker单机容器网络“一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射。即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通过宿主机的P端口访问,就像直接访问Docker容器网络内部容器提供的服务一样。 Docker针对端口映射前后有两种方案,一种是1.7版本之前docker-proxy+iptables DNAT的方式;另一种则是1.7版本(及之后)提供的完全由iptables DNAT实现的端口映射。不过在目前docker 1.9.1中,前一种方式依旧是默认方式。但是从Docker 1.7版本起,Docker提供了一个配置项:–userland-proxy,以让Docker用户决定是否启用docker-proxy,默...阅读全文

博文 2016-02-21 16:13:42 bigwhite

gstunnel---一个安全网络管道

项目简介: gstunnel 是 基于go 语言开发的一个安全网络管道,支持tcp协议。 gstunnel分为client和server两部分。 gstunnel 基于aes进行数据加密。 流程示意: 网络中,a到b的网络通信。 a-->b 使用gstunnel 后, a到b的网络通信。 a-->gstunnel client -->gstunnel server -->b gstunnel 为a、b之间的网络通信提供了一个加密层。 使得a、b的通信数据,变为了加密数据,这样第三方就不能获知a、b的通信内容。从而保证了a、b网络通信的安全。 支持的应用: http proxy(squid3等)、email、socks 5 p...阅读全文