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

微信朋友圈转疯了(golang写小爬虫抓取朋友圈文章)

很多人在朋友圈里转发一些文章,标题都是什么转疯啦之类,虽然大多都也是广告啦,我觉得还蛮无聊的,但是的确是有一些文章是非常值得收藏的,比如老婆经常就会收藏一些养生和美容的文章在微信里看。 今天就突发奇想,不如利用搜索引擎把朋友圈的文章分门别类的(当然是老婆感兴趣的类型了)抓取出来,然后把图片也Down下来,生成一个网站给朋友们看岂不是不错? 说做就做,于是就有了这个网站:朋友圈转疯了 (http://www.meijia0.com) 域名不太好,凑合着用呗。(之前其实是准备用来做美甲图片站的,后来搁置了。因为老婆在家真的是没有时间去经营这种东西)。 既然说做就做,先利其器嘛, 把落灰的GO再捡起来,顺便学习了一下七牛云存储的API(不得不说真的是很受用),写了一个spider(gocrawl/...阅读全文

博文 2014-10-04 19:26:07 forbe

golang Socket编程

Socket基础知识 通过上面的介绍我们知道Socket有两种:TCP Socket和UDP Socket,TCP和UDP 通过上面的介绍我们知道Socket有两种:TCP Socket和UDP Socket,TCP和UDP是协议,而要确定一个进程的需要三元组,需要IP地址和端口。 IPv4地址 目前的全球因特网所采用的协议族是TCP/IP协议。IP是TCP/IP协议中网络层的协议,是TCP/IP协议族的核心协议。目前IP协议的版本号是4(简称为IPv4),发展至今已经使用了30多年。 IPv4的地址位数为32位,也就是最多有2的32次方的电脑可以联到Internet上。近十年来由于互联网的蓬勃发展,IP位址的需求量愈来愈大,使得IP位址的发放愈趋严格,目前基本上IPv4的地址很少了,我们公...阅读全文

博文 2014-10-04 19:26:06 zhjih123

科学上网工具包 V2Ray

V2Ray 是一个科学上网工具包,用于简化和复用其它科学上网工具,加速二次开发。 “V2”来源于 [V2 火箭](https://zh.wikipedia.org/wiki/V-2%E7%81%AB%E7%AE%AD),Ray 即射线,意指新一代的科学上网工具。 ## 主要特点 * 多对多服务器支持,负载均衡 * 支持多用户 * 开放协议支持,兼容流行的科学上网工具 ## 捐赠 目前 V2Ray 还在早期开发阶段,暂时没什么可用性,也谈不上捐赠。如果你执意想捐赠,请发送 Amazon Gift Card 至 [donate@v2ray.com](mailto:donate@v2ray.com...阅读全文

开源项目 2015-09-27 16:00:00 v2ray

golang 下载和上传,处理多文件上传

package main import ( "net/http" "os" "io" "strconv") func main() { f, err := os.OpenFile("K:/file.mp3", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) stat, err := f.Stat() //获取文件状态 if err != nil { panic(err) } //把文件指针指到文件末,当然你说为何不直接用 O_APPEND 模式打开,没错是可以。我这里只是试验。 url := "http://127.0.0.1:3000/assets/37-02.mp3" req,_ := http.NewRequest("GET",url,nil); re...阅读全文

博文 2014-10-04 19:26:06 ggaaooppeennngg

Golang 微服务教程(一)

译文链接:wuYin/blog原文链接:ewanvalentine.io,翻译已获作者授权。 本节对 gRPC 的使用浅尝辄止,更多可参考:gRPC 中 Client 与 Server 数据交互的 4 种模式 前言 系列概览 《Golang 微服务教程》分为 10 篇,总结微服务开发、测试到部署的完整过程。 本节先介绍微服务的基础概念、术语,再创建我们的第一个微服务 consignment-service 的简洁版。在接下来的第 2~10 节文章中,我们会陆续创建以下微服务: consignment-service(货运服务) inventory-service(仓库服务) user-service(用户服务) authentication-service(认证服务) role-servic...阅读全文

博文 2018-06-01 16:34:38 wuYin

Golang 中的微服务 - 第一部分

## 介绍 Golang 中的微服务系列总计十部分,预计每周更新。本系列的解决方案采用了 protobuf 和 gRPC 作为底层传输协议。为什么采用这两个技术呢?我花了相当长的时间,才想出并决定采用这个方案。这个方案对开发者来说,非常清晰而简明。我也很乐意把自己在搭建、测试和部署端到端的微服务过程中的心得,分享给想接触这块的朋友们。 在这个教程中,我们将先接触几个基础的概念和术语,然后开始搭建第一个简单的微服务模型。 本系列中,我们将会创建以下服务: - 委托 - 存货清单 - 用户 - 认证 - 角色 - 容器 整个技术栈从底至顶主要可划分为:golang、mongodb、grpc、docker、Google Cloud、Kubernetes、NATS、CircleCI、Terrafor...阅读全文

博文 2017-12-26 14:20:00 polaris

golang实现udp接入服务器

前端通过udp与接入服务器连接,接入服务器与后端tcp服务器维持tcp连接。目录结构及后端tcp服务器代码同上一篇博客。 main.go package main import ( "lotuslib" ) const ( ip = "0.0.0.0" port = 1987 ) func main() { udplotus.UdpLotusMain(ip, port) } udplotus.go package udplotus import ( "encoding/json" "log" "net" "strconv" "time" ) const ( proxy_timeout = 5 proxy_server = "127.0.0.1:1988" msg_length = 1024 ...阅读全文

博文 2014-10-04 19:26:13 ciaos

golang实现tcp接入服务器

接入服务器和后端业务服务其维持tcp连接,多个前端请求通过接入服务器访问后端业务服务器,接入服务器可以方便增加路由功能,维护多个业务服务器,根据消息ID路由到具体的业务服务器。 项目目录如下 simplelotus src lotus main.go lotuslib tcplotus.go test tcpclient.go tcpserver.go install install源码如下: #!/usr/bin/env bash if [ ! -f install ]; then echo 'install must be run within its container folder' 1>&2 exit 1 fi CURDIR=`pwd` OLDGOPATH="$GOPATH" ex...阅读全文

博文 2014-10-04 19:26:13 ciaos

Go实现的HTTP/2 Web服务器Caddy

Caddy 是一个支持 HTTP/2 的跨平台 Web 服务器,使用和配置都非常简单。Caddy 支持 HTTP/2, IPv6, Markdown, WebSockets, FastCGI, 模板等等。 一个 Caddy 配置示例: http://www.oschina.net # Your site's address ext .html # Clean URLs errors { log ../errors.log # Error log 404 error-404.html # Custom error page } fastcgi /blog localhost:9000 php # PHP bac...阅读全文

开源项目 2015-05-29 01:56:28 mholt

linux下go的动态链接库的使用

在使用lua进行服务器端游戏逻辑开发时,发现了LUA的各种不方便的地方,不能编译检查,不能断点调试,笔误的函数和变量不提示出错等等,所以有了全部使用go来做服务器端开发的想法。 如果不需要热更新,那使用go开发服务器逻辑是很轻松的,而游戏服务器特别是页游,一般都需要支持热更新,所以我决定使用go的动态链接库方式来实现,也就是底层框架是go,上层逻辑是go的动态链接库。go原生不支持动态链接库,在查阅了很多文章之后,决定使用gccgo来实现。 经过了大约一周的时间,终于把框架搭建起来了,期间遇到了一些比较坑的问题,记录在此,以便以后不会再犯,也可以帮助其他有同样需求的同学快速搭建这样的框架。 这个例子需要了解go目录构建和环境变量的知识,如果不了解,可以先看看网上的文章,很简单的。 整个框架搭...阅读全文

博文 2014-10-04 19:25:56 xtxy

为什么选择golang写手机游戏服务器

选择golang做游戏服务器开发 经过大半年的手机游戏运营、维护、后续开发,对下一个网络游戏的服务器端开发技术选型的需求如下:1. 体系成熟,有大型成功案例2. 开发效率高3. 性能高,最好是支持并行技术充分利用多cpu资源4. 代码加密发布5. 开发逻辑简单,如多线程同步、加锁、多进程同步就比较复杂6. 易学易用,如果是新技术 可选技术对比 我对可以选择的技术平台经过自己的一些分析总结如下(一己之言): 项目 nodejs python c++/ruby erlang golang 体系成熟 4 3 5 4 3 开发效率 5 5 3 3 5 性能 3 3 5 5 4 加密发布 3 0 4 3 5 逻辑简单 5 5 3 4 5 易学易用 5 5 2 1 4 跨平台 5 5 5 5 5 其实聪...阅读全文

博文 2014-10-04 19:26:08 Creak_Phone

[深圳][大疆创新][15K-40K]招聘高级/中级Golang研发工程师

## 高级Golang研发工程师 ### 岗位职责: 1. 参与公司微服务架构的整体设计和开发,进行相关技术调研、选型和实践; 2. 负责编制、修改项目相关的技术文档和规范; 3. 负责新人指导和code review,技术难题研究,提升团队技术水平; 4. 参与公司开源项目的设计与开发,提高公司在业界的影响力。 ### 任职要求: 1. 熟练掌握Golang,4年以上工作经验,2年以上Golang开发经验,有完整项目经验,同时熟练掌握Java/Ruby/Python/C#等任意一门语言者优先; 2. 熟练掌握Golang相关技术,熟悉Golang协程,熟悉channel和锁,对高并发、高可用架构系统有正确、深刻的理解,有分布式服务设计或开发经验者优先; 3. 熟悉M...阅读全文

golang的https服务器

先生成ssl证书 openssl genrsa -out key.pem 2048 openssl req -new -x509 -key key.pem -out cert.pem -days 1095 然后,大概这样 package main import ( "log" "net/http" ) func SayHello(w http.ResponseWriter, req *http.Request) { w.Write([]byte("Hello")) } func main() { http.HandleFunc("/", SayHello) err := http.ListenAndServeTLS(":8080", "cert.pem", "key.pem", nil) i...阅读全文

博文 2014-10-04 19:26:16 ziyouchutuwenwu

Teleport2.0 一个Golang TCP Socket的全新框架

Teleport beta2.0 实现了一个全新的Golang TCP Socket框架,它通用、高效、灵活!可被用于Peer-Peer对等通信、RPC、长连接网关、微服务、推送服务,游戏服务等领域。 teleport_server 1. 特性 服务器和客户端之间对等通信,两者API方法基本一致 底层通信数据包包含Header和Body两部分 支持单独定制Header和Body编码类型,例如JSON Protobuf Body支持gzip压缩 Header包含状态码及其描述文本 支持推,拉,回复等通信方式 支持插件机制,可以自定义认证、心跳、微服务注册中心、统计信息插件等。 无论服务器或客户端,均支持都优雅重启、优雅关闭 支持实现反向代理功能 日志信息详尽,支持打印输入、输出消息的详细信息(...阅读全文

博文 2017-08-27 09:05:14 HenryLee

Golang 中的微服务 - 第二部分 - Docker 和 go-micro

## 简介: Docker 和 go-micro **[在上篇文章中](https://studygolang.com/articles/12060)**,我们大致介绍了如何编写一个基于 `gRPC` 的微服务。在这个部分,我们将涵盖 `Docker` 服务的基础知识,我们也将使用 [go-micro](https://github.com/micro/go-micro) 更新我们的服务,并在文本末尾引入第二个服务。 ## Docker简介 随着云计算的到来和微服务的诞生,服务在部署的时候有更多的压力,但是一次一小段代码就产生了一些有趣的新思想和新技术,其中之一就是[容器](https://en.wikipedia.org/wiki/Operating-system-level_virtua...阅读全文

博文 2018-01-03 15:53:35 polaris

今日头条用Go建千亿级微服务 分析详细,适合新手理解概念[转载的]

今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的 Go 应用。 Go 构建微服务的历程 在2015年之前,头条的主要编程语言是 Python 以及部分 C++。随着业务和流量的快速增长,服务端的压力越来越大,随之而来问题频出。Python 的解释性语言特性以及其落后的多进程服务模型受到了巨大的挑战。此外,当时的服务端架构是一个典型的单体架构,耦合严重,部分独立功能也急需从单体架构中拆出来。 为什么选择 Go 语言? Go 语言相对其它语言具有几点天然的优势: 语法简单,上手快 性能高,编译快,开发效率也不低 原生支持并发,协程模型是非常优秀的服务端模型...阅读全文

golang 应用的部署相关技术

nohup命令 在 linux 下面部署,我们可以利用 nohup 命令,把应用部署在后端,如下所示: nohup ./yourapp & 这样你的应用就跑在了 Linux 系统的守护进程 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。 一般如何如下两种方式使用它: nohup command 或者 nohup command & 这之间的差别是带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上); 使用它需要注意的问题是:它把标准输出(STDOUT)和标准错误(STDE...阅读全文

博文 2014-10-04 19:26:13 ghj1976

p2p端口映射工具 dog-tunnel

狗洞是一个高速的 P2P 端口映射工具,同时支持Socks5代理。 0.5版后开始开源,UDP底层基于开源库KCP重写,效率大大提高,在恶劣环境下优势明显。 同时提供非P2P版本(Lite版本),两端连接过程完全不依赖中间服务器,支持加密和登陆认证,自动重连,但是需要人为确保两端能正常连通(否则请使用默认的P2P版本) ![image](http://static.oschina.net/uploads/space/2014/1213/080425_bS2n_12.png) 特性: * 数据安全,P2P模式通讯时数据不经过服务端,用户可自定义访问密码 * P2P模式底层采用KCP协议,在恶劣网络环境下比TCP延迟降低 30%-40% * P2P模式支持AES加密 * P2P模式可...阅读全文

开源项目 2014-12-12 16:00:00 vzex

今日头条Go建千亿级微服务的实践

今日头条使用 Go 语言构建了大规模的微服务架构,本文结合 Go 语言特性着重讲解了并发,超时控制,性能等在构建微服务中的实践 编者按:本文来自微信公众号“InfoQ”(ID:infoqchina),作者项超;36氪经授权发布。 今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的 Go 应用。 Go 构建微服务的历程 在2015年之前,头条的主要编程语言是 Python 以及部分 C++。随着业务和流量的快速增长,服务端的压力越来越大,随之而来问题频出。Python 的解释性语言特性以及其落后的多进程服务模型受到了巨大的挑战。此外,当时的服务端架构是一个典型的单体架构,耦合严重,部分...阅读全文

博文 2017-06-23 10:03:31 强子哥哥

为何 Go 的人气正在飞涨

#### 仅仅两年时间,在最流行的编程语言中,Go 语言从第 65 名飙升至第 17 名。以下是其快速增长的原因。 ![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/build_structure_tech_program_code_construction.png?itok=nVsiLuag) 图像来自于 _opensource.com_ [Go 语言](https://golang.org/) ,也被称为谷歌的 Go 语言,人气正在强劲增长。 虽然诸如 Java 和 C 这样的语言继续主导编程,但新编程模型已经出现,它们更适合现代计算,特别是云计算领域。 Go ...阅读全文

博文 2017-11-24 14:06:20 polaris

Go 语言实现的高性能微服务框架TarsGo

TarsGo 是一个 Go 语言实现的高性能微服务框架,也是微服务框架 [Tars](https://www.oschina.net/p/tars) 的 Go 语言实现版本。 多语言支持是 Tars 的一大优势,在此之前 Tars 已经推出了 C++、Java、PHP、NodeJS 版本。Go 语言的协程并发机制使它非常适用于大规模高并发后端服务器程序开发,同时随着容器化技术的飞速发展,诸如 Docker、Kubernetes 与 Etcd 等项目兴起,使得 Go 语言越来越流行,并成为云原生的首选语言。Tars 的 Go 语言版本也因此应运而生,此次 Tars-Go 的推出,在大环境整体逐渐走向云原生的当下,意义非凡。 Tars-Go 整体架构主要可以分为三个部分,如下图所示: ![...阅读全文

开源项目 2018-09-24 19:30:01 网友

HTTP 流量复制工具Gor

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 --output-tcp replay.local:28020 # Replay server (rep...阅读全文

开源项目 2015-08-02 14:24:59 buger

golang文件服务器

func FileServer(root FileSystem) Handler 就是返回一个handler,用作http.handle这个函数的参数。 FileSystem是一个接口 type FileSystem interface{ Open(name string)(File,error) } 说白了文件服务器就是要这样一个接口作为静态文件服务器的根目录。 一般用这个做一个前缀转换 func StripPrefix(prefix string, h Handler) Handler package main import ( "net/http" ) func main() { // To serve a directory on disk (/tmp) under an alter...阅读全文

博文 2014-10-04 19:26:08 ggaaooppeennngg

golang文件传输服务

续上篇,本篇介绍一个完整的golang文件传输服务器。 完整的代码可以看服务器,客户端 网络使用的框架如上篇介绍,这里就不再复述. 首先定义3个命令码: const ( request_file = 1 file_size = 2 transfering = 3 ) request_file用于请求文件传输,附带的命令参数是文件key. file_size用于通告客户端文件的大小. transfering用于传输文件内容,附带参数是文件内容的二进制数据. 服务器的文件配置示例 ../learnyouhaskell.pdf=haskell ../golang.1.1.2.chm=golang ../NodeJS.pdf=NodeJS 上面的文件配置了3个文件可供传输=左边是文件路径,右边是请求...阅读全文

博文 2014-10-04 19:25:59 sniperHW

golang微信公众平台之消息接入

API文档上的内容 注册公众平台什么的就不说了,消息接入部分,文档地址: http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97#.E7.94.B3.E8.AF.B7.E6.B6.88.E6.81.AF.E6.8E.A5.E5.8F.A3 简言之就是,提交申请,微信服务器将发送GET请求到你所填写的URL上,这个GET请求附带四个参数: 参数 描述 signature 微信加密签名 timestamp 时间戳 nonce 随机数 echostr 随机字符串 过程很简单,校验数据,确认请求来自微信服务器,则原样返回echostr参数内容,接入生效。 校...阅读全文

博文 2014-10-04 19:26:04 wlts

基于gokit的微服务项目骨架ko

前段时间发布了一个小小的web开发项目骨架morningo,性能与效率齐飞,开发速度在短暂时间熟悉go语言后应该是匹配php,ruby等这些脚本语言,而后期项目并发性能,基本并发到上千乃至上万tcp连接没问题。但从业务架构层面看,项目再发展,数据库存在瓶颈,单体项目耦合度高,可维护性差,可延展性差,存在很多问题。因而项目早期可以采用单体架构,但后期仍然推荐的是面向服务的分布式架构。分布式的架构模式虽然带来了增加的代码量,服务间沟通的成本,但整体项目更具有弹性,延展性更好。 项目地址:https://github.com/chenhg5/ko gokit介绍 go语言的优点不用赘述,那么基于go的微服务框架有吗?gokit就是一个go语言相关的微服务工具包。它自身称为toolkit,并不是fr...阅读全文

博文 2018-05-05 23:34:37 honhon

Go使用grpc+http打造高性能微服务

大家可以发现,Go越来越流行,其一是目前云计算领域基本是使用Go作为底层开发语言;其二是随着区块链的火爆,引申出了其背后很多开源项目,很多都是使用Go语言进行开发;其三就是在微服务方面,Go也展示很大的优势性。那么微服务是什么,如何将其与Go做一个整合,来提升整体开发生产效率,下面会进行详细讲解。什么是微服务微服务的概念最早由 Martin Fowler 提出,在他的理论当中,微服务是一整套小的服务,其中每一个服务互相之间都是独立的,它们之间通过 lightweight 机制进行交互。图 1图 1 所示是最传统的一个应用软件架构,最顶层是 load balancer ,下面布局很多cuisine,这些cuisine共享一个数据库。图 2图 2 是微服务的架构图,由图中我们可以看出整体架构分布...阅读全文

博文 2017-11-22 09:32:26 astaxie

Golang 中的微服务-第 4 部分-使用 JWT 做认证

在之前的文章里,我们创建了一个用户服务,保存了一些用户。现在我们看下如何在用户服务中安全的保存用户密码,同时,通过微服务写几个功能,来验证用户,发布安全令牌。 注意,我现在已经把我们的服务拆分到几个不同的仓库里。 我觉得这样部署起来容易些。 最开始我打算做成一个单独的仓库,但是发现用 Go 的 dep 管理有点麻烦,有很多冲突。我也会说明下如何独立地运行和测试微服务。 遗憾的是,用这种方法我们就不能用 docker-compose 了。 不过目前用起来还不错。如果你在这方面有什么建议,可以[给我发邮件](ewan.valentine89@gmail.com)! 现在你要手动启动数据库: ``` $ docker run -d -p 5432:5432 postgres $ docker ru...阅读全文

博文 2018-03-03 20:17:08 ArisAries

beego 0.9.0 中智能路由AutoRouter的使用方法及源码解读

了解beego的开发者肯定知道,beego的路由设计来源于sinatra,原来是不支持自动路由的,每一个路由都要自己配置的,如: type MainController struct { beego.Controller } func (this *MainController) Get() { this.Ctx.WriteString("hello world") } func main() { beego.Router("/", &MainController{}) beego.Run() } beego.Controller 提供所有的restful方法,Get,Post,Delete等方法,通过重写这些方法,已响应客户端不同的请求方式。 用过Node.js的同学,肯定觉得很熟悉,拿最...阅读全文

博文 2014-10-04 19:26:21 yuan-shuai

Go 编写的内容管理系统 Fragmenta CMS

Fragmenta CMS 是一个用户友好的内容管理系统,用 Go 编写。 Fragmenta CMS 可以让你快速建立网站,它包办了创建网站的一般性的繁琐工作,包括:用户登录,网页,博客文章等,让你专注于你 app 自身的特点,你可以: * 简单部署 —— 你只需要一个数据库和fragment —— 与内置的Web服务器本地进行测试 * 使用与你网站相同的风格进行Rich editing * 免费且开源 (MIT) ——下载二进制文件或自己编...阅读全文

开源项目 2015-10-15 16:00:00 fragmenta

Go 语言的缓存库 FreeCache

FreeCache 是一个 Go 语言的缓存库,无额外的 GC 负荷。数百万对象的垃圾收集延迟仅在数百毫秒。 特性: * 可存储数以百万计条目 * 零垃圾收集负荷 * 高并发而且线程安全的访问 * 纯 Go 语言实现 * 支持对象失效 * 近乎 LRU 的算法 * 严格限制内存使用 * 提供一个测试用的服务器,支持一些基本 Redis 命令 示例代码:

cacheSize := 1024*1024
cache := freecache.NewCache(cacheSize)
key := []byte("abc")
val := []byt...阅读全文

开源项目 2015-04-29 16:00:00 coocood

go语言socket通信初试

听说go的在系统性能方面有很大的优势,最近对go语言产生了极大的兴趣,相对现有的项目用go改造,原有的项目用的ace框架编写的通信的框架,在目前的移动的通信网中忙时有的时候处理不过来,于是先研究试图测试一下socket。由于对go刚刚入门,有些不正确的地方还请高人指点。 由于我们系统通常是不同语言之间通信(之前系统是客户端和服务端都用c++),这里客户端采用java+mina编写,服务端采用go编写,最初设计,像借用go语言中的gob进行编解码,但是经过测试后发现行不通,经过和网友以及一些高人的指点,gob其实针对go语言之间的编解码的,跨语言还真不灵光。有同事建议我用protocolbuffer这个,我一看这个又是定义类似idl文件(之前做了几年的corba技术,对这样的东西有点抵触了,因...阅读全文

博文 2014-10-04 19:26:17 DEC_LIU

微服务架构

微服务架构·基础篇 看到最近“微服务架构”这个概念这么火,作为一个积极上进的程序猿,成小胖忍不住想要学习学习。而架构师老王(不是隔壁老王)最近刚好在做公司基础服务的微服务化研究和落地,对此深有研究。 于是成小胖马上屁颠屁颠的跑过去向老王请教:“王哥,我看微服务架构这么火,我也想学,您给我讲讲啥是微服务架构呗?” 老王笑了笑说:“要想知道什么是微服务架构,你得先知道什么系统架构设计。” 成小胖的理想是成为一名架构师,平时积累了不少知识,因此对“系统架构设计”这个概念还是很熟悉的,因此他马上就给出了答案【1】: 系统架构设计描述了在应用系统的内部,如何根据业务、技术、组织、灵活性、可扩展性以及可维护性等多种因素,将应用系统划分成不同的部分,并使这些部分彼此之间相互分工、相互协作,从而为用户提供某...阅读全文

博文 2017-10-29 15:03:58 Leo_wl

产品级 Go 语言微服务框架Go Chassis

Go Chassis 是华为云 CSE 开源的一个用 Go 语言编写的微服务快速开发框架。借助 CSE Go Chassis 进行微服务开发可最大化地降低开发门槛,提升产品上线速度,同时可以获得微服务运行时高可靠性保证、运行时动态治理等一系列开箱即用的能力。 作为业界首款商用级别的Go语言微服务框架,Go Chassis 已具备支持企业级应用的核心特性: **可定制的通信协议**:除了现有支持的 HTTP/ Highway RPC 协议外,用户可自行扩展协议。支持 Go Chassis 开发的应用与使用 Java Chassis 开发的应用互相通信,企业在进行微服务架构选择有更大的自由。 **使微服务更加健壮**:完善的服务治理(负载均衡、限流、熔断、降级等等),保障 Go 微...阅读全文

studygolang源码阅读小结 <四>

##http与 router## 先看http 提供的强大简洁服务器端的功能 - HTTP响应模块 func ListenAndServe(addr string, handler Handler) error 这个方法就处理了所有的http请求。第二个参数如下 type Handler interface { ServeHTTP(ResponseWriter, *Request) } 也就是实现了该接口的结构,均能够对http请求作出相应。看这个方法的参数大致就能猜出,这个方法是让使用者自己往RewponseWriter中写http header 以及http data。 type ResponseW...阅读全文

golang微信公众平台之人脸识别

自:http://www.cnblogs.com/wlts/archive/2013/06/02/3113526.html 好吧,其实整个都是建立在face++的基础上的,没有任何技术含量,我只是个勤劳的搬运工。 所能实现的就是简单的,你发送一个图片过来,如果里面是一个人,则告诉你分析出来的年龄、性别;如果是两个人,就告诉你,这两个人眉毛、眼睛、鼻子、嘴巴及整体的相似度。 微信公众平台,怎么说呢,还是传统的一问一答的形式,你发个信息过来,我收到了处理下,再给你回馈一条信息,就是这么简单。 简单的你来我往 先说信息互传的问题,微信公众平台是post过来一个xml,服务器端打包一个xml发回去。 从最简单的,直接把用户信息返回去搞起吧。 文本消息 阅读全文

博文 2014-10-04 19:26:11 likai198981

studygolang源码阅读小结 <二>

## 准备数据库模块 ## 1. 数据库创建 首先安装MySql,地址http://www.mysql.com/downloads/mysql/,Macos下选择DMG安装,否则需要手动安装。100多M,需要注册登陆之后才能下载。 安装完成之后创建一个数据库服务器,(使用MySql Workbench GUI更方便一些),**并使用database/文件夹下的两个sql文件创建并初始化数据表** 2.DSN设置 studygolang的数据库采用MySql数据库的go语言实现版本,在conf文件夹下找到config.json文件,里面有这样两个key value值 "drive_name": "mysql" ...阅读全文

阿里云基于 Go 的微服务架构分享

作者介绍花名聪心,阿里云技术专家,主要负责阿里云OpenAPI,Services architectre 技术服务的实现。云产品前端架构众所周知,阿里是以 Java 开发为主,最近引用 GO 在微服务架构上面进行开发,本次分享也是围绕这个主题进行叙述。图 1图 1 所示,是我们最早期的前端微服务架构图,当时不存在API网关服务、天象全链路监控以及外部服务这几个模块,并且蓝色这部分也并没有被应用起来。因此进行了一场微服务重构过程,产生了最新的前端微服务架构图(图 2)。图 2图 2 是目前的前端微服务架构,其中,OpenAPI是前端入口;API网关目前被商业化,由它来调度内部的dubbo服务;其次是最为重要的中间件,由其支撑注册中心、控制台、阿里云日志服务、消息队列服务以及内部的天象全链路监控...阅读全文

博文 2017-10-16 03:25:24 聪心

为什么go语言适合开发网游服务器端

前段时间在golang-China读到这个贴:有木人用(或打算)golang做游戏服务器端? 个人觉得golang十分适合进行网游服务器端开发,写下这篇文章总结一下。 从网游的角度看: 要成功的运营一款网游,很大程度上依赖于玩家自发形成的社区。只有玩家自发形成一个稳定的生态系统,游戏才能持续下去,避免鬼城的出现。而这就需要多次大量导入用户,在同时在线用户量达到某个临界点的时候,才有可能完成。因此,多人同时在线十分有必要。 再来看网游的常见玩法,除了排行榜这类统计和数据汇总的功能外,基本没有需要大量CPU时间的应用。以前的项目里,即时战斗产生的各种伤害计算对CPU的消耗也不大。玩家要完成一次操作,需要通过客户端-服务器端-客户端这样一个来回,为了获得高响应速度,满足玩家体验,服务器端的处理也不...阅读全文

博文 2014-10-04 19:26:23 Lifehacker

Go 发布自动更新代码所用 API 的 gofix 工具

下一版本的Go在最基础的软件包方面将包含显著的API变更。除非进行更新,采用新版 API,否则将无法编译实现HTTP服务器句柄、调用net.Dial、调用os.Open及使用reflect软件包的代码。随着Go语言愈加稳定,发布频率减缓将成为常态。每周的快照版本中都会有API变更,部分可能能自动管理;然而,合计起来看,手动更新现有代码的工作量仍然非常地大。 Gofix是一款减轻更新现有代码工作量的新工具。它读取源文件中的程序,查找对旧版API的使用,用当前API进行改写,并将程序写回文件。有些API变更未保持全部原有功能,所以gofix的改写有时并不完美。当无法自动改写旧版API时,gofix将给出警告及文件名与所在行数,开发者可以检查并亲自重写代码。Gofix负责处理乏味冗长的简单变更,而...阅读全文

博文 2014-10-04 19:26:01 希·梦评论(3)

Web 文档服务器 Peach Docs

Peach 是一款支持多语言、实时同步以及全文搜索功能的 Web 文档服务器。 * 多语言支持 * 从任意 Git 托管源实时同步文档 * 根据首选语言全文搜索文档 * 使用 Markdown 作为文档书写语法 * 高度可自定义,包括模板、配置和 CSS 等 * 内置 [Disqus](http://www.oschina.net/p/disqus) 集成支持 ![image](http://studygolang.qiniudn.com/170615/4a6f1920a3dccb1721ec656134d697b3.jpg...阅读全文

开源项目 2015-10-07 16:00:00 网友

go revel 简单性能测试

用revel创建的new创建了一个最简单的示例app,并用ab做简单的性能测试。设置并发数为1000。 结果如下: dev模式下运行:1200次/每秒 prod模式下运行:4800次/每秒 默认创建的app只能使用单个cpu,对多核多cpu服务器来说是个资源浪费,通过修改init.go 在其中添加如下代码: runtime.GOMAXPROCS(runtime.NumCPU()) 再次测试后,得到测试数据为:17500/每秒。 另:要做性能测试或者正式部署到生产环境之前别忘了把watch设置为false,开发状态下开启watch很爽,修改了代码不需要重启服务,revel发现代码发生了更改会自动重新编译,返回新的结果,但是带来的代价是性能剧降。我忘了关闭此功能做性能测试的结果是从18000次/...阅读全文

博文 2014-10-04 19:26:23 dijin

招Go语言及后端开发

职位描述: 1、 负责公司互联网产品的后端软件设计、开发、维护、及测试; 2、 持续重构后端软件及代码; 岗位要求: 1. 精通C++,Java,Node JS语言或至少其中一种; 2. 2年以上互联网后端开发,或其他通讯类开发经验; 3. 熟悉Go语言及后端开发,有成熟Go语言开发案例优先; 4. 熟悉SQL或NoSQL数据库开发; 5. 了解分布式系统,熟悉并发处理并调优; 6. 熟悉微服务架构,有微服务开发经验优先; 7. 热爱编程且好学,有志于成为全栈工程师或正在努力成为全栈工程师者尤佳; 8. 熟悉LINUX服务器的安装、配置和调优;熟悉常用开发环境如Apache、PHP、MySQL、Nginx、MongoDB、Redis、MQTT 、NSQ等的搭建、设置...阅读全文

golang微信公众平台之人脸识别

好吧,其实整个都是建立在face++的基础上的,没有任何技术含量,我只是个勤劳的搬运工。 所能实现的就是简单的,你发送一个图片过来,如果里面是一个人,则告诉你分析出来的年龄、性别;如果是两个人,就告诉你,这两个人眉毛、眼睛、鼻子、嘴巴及整体的相似度。微信公众平台,怎么说呢,还是传统的一问一答的形式,你发个信息过来,我收到了处理下,再给你回馈一条信息,就是这么简单。 简单的你来我往 先说信息互传的问题,微信公众平台是post过来一个xml,服务器端打包一个xml发回去。 从最简单的,直接把用户信息返回去搞起吧。 文本消息 阅读全文

博文 2014-10-04 19:26:11 wlts

游戏服务器骨架 gonet2

# 欢迎使用 gonet/2是新一代游戏服务器骨架,基于[go语言](http://golang.org/)开发,采用了先进的[http/2](http://http2.github.io/)作为服务器端主要通信协议,以[microservice](http://martinfowler.com/articles/microservices.html)作为主要思想进行架构,采用[docker](https://www.docker.com/)作为服务发布手段。相比第一代[gonet](http://github.com/xtaci/gonet),基础技术选型更加先进,结构更加清晰易读可扩展。 ## [](http://gonet2.github.io/#%E7%9B%B8%E5%85%B...阅读全文

开源项目 2015-10-14 16:00:00 github

多功能微服务框架ServiceComb

ServiceComb 是华为开源的一套包含代码框架生成,服务注册发现,负载均衡,服务可靠性(容错熔断,限流降级,调用链追踪)等功能的微服务框架。 ServiceComb 是华为 FusionCloud 解决方案中 PaaS 平台的重要组成部分,内置了高可靠性运行、动态治理等运维阶段的高级能力。ServiceComb 目前已应用于华为自身 IT 的多个核心业务,帮助华为极大地提升了云原生应用的开发效率。 ServiceComb 包括应用框架代码生成,服务注册发现、服务配置管理、服务监控、服务调用追踪、多通信协议支持等功能,具有服务化契约增强、响应式编程范式及多语言 SDK 支持等优势特性。ServiceComb 基于开放的架构,不仅可以支持开发者根据自身业务需求定制业务插件,而且...阅读全文

开源项目 2017-06-21 04:00:28 网友

Go语言的前景分析

本文为原创文章,转载注明出处,asdfasdfasdf 欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续精彩文章。觉得好的话,顺手分享到朋友圈吧,感谢支持。 这段时间比较忙,相信很多朋友大概都知道,如果不知道的话,可以参考我上篇文章跨维度的打击,是可以直接秒杀的,里面有介绍,大家可以看看。 抓住时代的趋势 在上篇文章中,也就是那个跨维度的打击,是可以直接秒杀的中,提到这个时代的问题,这次针对go语言的前景分析,其实我也想讲一下时代的问题。还记得2010年的时候,那个时候移动互联网时代刚刚兴起,很多以前做java的,也就是做J2EE的人(当时J2EE是红海),抓住了这个机会进行的转型,然后得到红利,甚至实现了人生的转变,这个真的不是...阅读全文

博文 2018-10-16 09:34:41 飞雪无情