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

重量级爬虫软件Pholcus

# pholcus [![GoDoc](https://godoc.org/github.com/tsuna/gohbase?status.png)](https://godoc.org/github.com/henrylee2cn/pholcus) [![GitHub release](https://img.shields.io/github/release/henrylee2cn/pholcus.svg)](https://github.com/henrylee2cn/pholcus/releases) Pholcus(幽灵蛛)是一款纯Go语言编写的高并发、分布式、重量级爬虫软件,支持单机、服务端、客户端三种运行模式,拥有Web、GUI、命令行三种操作界面;规则简单灵活、批...阅读全文

阿里云Q1财报:云计算付费用户首超100万

摘要: 财报显示,该季度内阿里云付费用户数量由前一季度的87.4万,增长至101.1万。受益于付费用户强劲增长以及高附加值服务对收入结构的持续优化,该季度营收达到24.31亿元,保持强劲增幅,比去年同期增长96%。 2017年8月17日晚间,阿里巴巴集团公布2018财年第一季度(2017年4月至6月底)财报,阿里云达到一个重要里程碑,云计算付费用户数量首次超过100万。同时,企业级市场被云计算人工智能等新技术全面激活,推动该季度营收达到24.31亿元。 财报显示,该季度内阿里云付费用户数量由前一季度的87.4万,增长至101.1万。受益于付费用户强劲增长以及高附加值服务对收入结构的持续优化,该季度营收达到24.31亿元,保持强劲增幅,比去年同期增长96%。阿里云在财报中表示,持续...阅读全文

Go 开发的 IM 和推送服务 goim

goim 是一个支持集群的im及实时推送服务(支持websocket,http和tcp协议) 特性: * 轻量级 * 高性能 * 纯Golang实现 * 支持单个、多个以及广播消息推送 * 支持单个Key多个订阅者(可限制订阅者最大人数) * 心跳支持(应用心跳和tcp、keepalive、http log pulling) * 支持安全验证(未授权用户不能订阅) * 多协议支持(websocket,tcp,http) * 可拓扑的架构(job、logic模块可动态无限扩展) * 基于Kafka做异步消息推送 架构: ![image](http://static.oschina.net/uploads/img/201511/26172127_SpSJ.png) 协...阅读全文

开源项目 2015-11-25 16:00:00 Terry-Mao

宝盒小程序是如何成为企业的获利神器?

时代在发展,科技在进步,小程序作为一个新兴的流量入口,影响力不是当年公众号能比的,政策的全面扶持,各种搜索窗口的首位显示,小程序占据了广大群众的视线。 微信小程序,简称小程序,是一种无需下载安装即可使用的应用,只需用户扫一扫或者搜索即可打开应用。体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。 ![小程序.jpg](https://static.studygolang.com/180428/b46bd2c357df7f97c95df4a30179d973.jpg) 微信小程序本身自带流量,直面9亿用户市场,拥有10大流量入口,精准定位服务精准人群,成为企业拓展客户的主要渠道,这是因为企业最小程序的迫切需求,一款协助中小企业快速搭建小程序的平台的软件——宝盒...阅读全文

go语言限制Goroutine数量

package main import ( "fmt" "runtime" "time" ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) c := make(chan bool, 100) t := time.Tick(time.Second) go func() { for { select { case <-t: watching() } } }() for i := 0; i < 10000000; i++ { c <- true go worker(i, c) } fmt.Println("Done") } func watching() { fmt.Printf("NumGoroutine: %d\n", runtime.N...阅读全文

博文 2015-06-17 23:07:18 u013834131

轻量级的嵌入式网站讨论系统commento

Commento 是一个轻量级的嵌入式网站讨论系统。您可以将其嵌入到您的博客,新闻文章以及您希望读者添加评论的任何地方。这是轻量级和简单的,可以快速页面加载。重点是还关乎隐私,评论引擎都关乎隐私。 如果你想使用Commento,你有三个选择: 1.使用Docker 如果你正在关闭自我托管路由,建议使用Docker运行Commento。为此提供了一个最小的Docker镜像[`adtac/commento`](https://hub.docker.com/r/adtac/commento/)。您可以通过拉取图像并启动它来获取容器: 端口上将显示您的机器上的服务器`80`; 把你的Commento前端配置指向这个。 2.使用二进制版本 如果你不想安装整个Docker,你可以简单地使...阅读全文

开源项目 2018-01-25 16:30:01 网友

一个上线90天就被焦点访谈报道的APP 如何通过阿里云升级它的创业体验

在这个脑洞大开的APP上面,你可以出售任何你想出售的“商品”,包括你的时间、你的技能,你可以陪人聊天、代人跑腿,甚至只是笑给你听。这款特别的APP上线仅仅60天就获得了1个亿的A轮融资,平台服务人次超10万,最近还得到了中央电视台《焦点访谈》的关注。这款APP的名字是“空格”。 据公司创始人兼CEO唐永波介绍,“空格”的使命是升级生活方式。于他而言,他要通过“空格”打造一个更广阔的“升级生活”的格局:1个新商业模式和1个新生态系统,最终实现“1+1>2”的效果。 ![空格配图3.PNG](http://studygolang.qiniudn.com/160105/048e68ce5f595c257b6fcf60c49176c5.PNG) 1个新的商业模式指S2C(Serv...阅读全文

Go 实现的轻量级的 config 库go-conf

go-conf 是使用 Go 实现的一个轻量级的 config 库,参考了 ozzo-config 的设计,但具有更优的性能和支持动态移植配置的功能。 go-conf 采用 MIT 开源协议。 从配置文件中读取配置,默认支持 JSON 格式文件,提供了接口,也可非常方便地扩展支持其他格式配置文件; 可将一个 go 的结构体数据直接动态移植到 config 实例中; 不需要提前构建结构体就可以直接获取你想要的数据...阅读全文

Golang 建立TCP时使用连接池

package main import ( "fmt" "io/ioutil" "log" "net" "sync" "testing" "time" ) func connectToService() interface{} { time.Sleep(1 * time.Second) return struct{}{} } func warmServiceConnCache() *sync.Pool { p := &sync.Pool{ New: connectToService, } for i := 0; i < 10; i++ { p.Put(p.New()) } return p } func startNetworkDaemon() *sync.WaitGroup { var w...阅读全文

博文 2019-06-09 08:02:40 FredricZhu

[go语言]内存分配器性能测试

在C/C++里,自己动手实现内存分配器是很常见的事情,写过几年C/C++程序的人可能都做过这样的事情。这其中很重要的一个原因是C/C++不支持垃圾回收。但是既然go语言已经支持垃圾回收,还有必要自己去写一个内存分配器吗?我们做一个简单的测试看看结果怎么样。 测试平台: OS: ubuntu 12.04 x86_64 CPU: i5 2.27G MEMORY: 8G // ben1.go 自己实现内存分配器 package main type Pool struct { buf []byte } func (p *Pool) alloc(size int) []byte { if len(p.buf) < size { l := 1024 * 1024 for l < size { l += ...阅读全文

博文 2014-10-30 18:07:21 stevewang

Go 语言的 Web 服务框架Gear-go

Gear 是 Go 语言下的一个轻量级、可组合、高性能的 Web 服务框架。由 [Teambition](https://www.teambition.com/) 开发,用于开发 SOA 服务层。其设计参考了 Go 生态下现有的近十款 Web 框架和 Node.js 生态的 [koa](https://github.com/koajs/koa)、[Toa](https://github.com/toajs/toa) 等框架。 **Demo*...阅读全文

开源项目 2017-02-07 03:17:26 teambition

Apache的Mesos和Google的Kubernetes 有什么区别?

Apache的Mesos和Google的Kubernetes 有什么区别?本文来自StackOverFlow上的一个问题,主要讨论Mesos和Kubernetes的区别,相信我们很多人也有同意的疑问。 Kubernetes的开发者Craig回答了这个问题,同时masi也做了概述,不一定对,供读者参考。Kubernetes主要针对容器集群,而 Mesos适用于任何的框架和应用,所以Kubernetes可以运行于Mesos上。Kubernetes是一个开源项目,它把谷歌的集群管理工具引入到虚拟机和裸机场景中。它可以完美运行在现代的操作系统环境(比如CoreOS 和Red Hat Atomic),并提供可以被你管控的轻量级的计算节点。Kubernetes使用Golang开发,具有轻量化、模块化、便...阅读全文

日志索引工具 LogZoom

LogZoom 是一个使用 Go 语言开发的轻量级、兼容 Lumberjack 的日志索引工具,支持 Lumberjack v2 协议。 ### 输入 * Filebeat (Lumberjack V2 Protocol) * Redis Message Queue ### 输出 * Redis Message Queue * TCP Streaming * WebSocket Streaming * Elasticsearch * S3 ![LogZoom Basic Diagram](http://static.oschina.net/uploads/img/201604/09151404_mhoK.png) ![LogZoom High Availability ...阅读全文

开源项目 2016-04-08 16:00:00 packetzoom

on the go way (一)服务器并发

服务器并发的方式有很多种 1.通过多进程或者多线程的方式,现在这种模式基本上已经不用 2.epoll和IOCP回调的方式,不符合人们的习惯 3.使用协程(轻量级线程,创建、销毁的代价很小),协程在逻辑上上顺序执行 其中属于erlang和golang在协程并发方面做的比较好 package mainimport ( "fmt")func getResult(data []int, res chan int) { var sum int sum = 0 for _, v := range data { sum += v } res <- sum}func main() { var res = make(chan int) var data = []int{1, 2, 3, 4, 5, 6, 7,...阅读全文

博文 2016-03-22 11:00:06 OneDream

Golang——WebSocket

拉模式与推送模式 拉模式的缺点 数据更新频率低,则大多数的请求是无效的 在线用户数量多,则服务端的查询负载高。 定时查询拉取,无法满足时效性要求 推送模式 尽在数据更新才推送,需要维护大量的在线长连接,数据更新后立即推送。 WebSocket推送 浏览器支持的socket编程,轻松维护服务端长连接,基于TCP可靠传输之上的协议,无需开发者关心通讯细节。提供了高度抽象的编程接口,业务开发成本低。 websocket协议 来源于慕课网 协议升级后,继续复用HTTP的底层socket完成后续操作 message底层被切分成多个frame 帧传输。 编程是只需要操作message不需要关心frame 框架底层完成TCP网络I/O,WebSocker协议解析,开发者不需要关心。 package mai...阅读全文

博文 2019-04-08 01:34:40 羊羽share

d-FTP:基于NKN的高速文件传输应用

NKN客户端支持免费且以去中心化方式进行的端到端数据传输。在NKN之前,如果发送方(例如移动应用程序)想要将某些数据发送到接收方,则接收方需要可被公网访问的地址和端口,这对于一般的个人应用是不切实际的, 又或者需要发送和接收双方必须同时连接到同一个集中式服务器/平台(比如微信),这样也会引入额外的成本(比如构建集中化服务器及支付数据转发费用)和潜在的安全漏洞(比如用户数据暴露给了中心化服务器或第三方服务, 又或者集中化服务器的故障将导致整个系统瘫痪)。但现在使用NKN数据传输服务,得益于NKN公共区块链网络平台, 发送方和接收方可以在任何网络条件下保持数据的私密性,并且不需要集中式服务器或平台。数据将以去中心化的方式进行路由和传递,端到端加密且免费。NKN客户端使用非常相对简单的协议(类似于...阅读全文

博文 2019-10-04 10:32:46 aside section ._1OhGeD

Go语言初尝

对于语言设计之争, 唯一需要牢记的一句话是: 如果把 C 变成 C++, 那么 C 就消失了。 Go 是一个轻量级的简洁的支持并发的语言, 可以用于探索性个人项目, 这是我想学这门语言的主要原因。 对于有一定编程经验的人来说, 学习一种新语言的方式是, 先概览下语言特性, 然后编写一个中等规模的程序, 尽可能地运用到大部分重要特性。 下面的程序用于计算一个目录下所有文件或目录的大小。 package main import ( "fmt" "time" "os" "log" ) type ShortFileInfo struct { fileName string size int64 } func (fileInfo *ShortFileInfo) Desc() string { retu...阅读全文

博文 2015-06-17 23:01:40 shuqin1984

一起了解什么是高并发

我们在找工作时,经常在招聘信息上看到有这么一条:有构建大型互联网服务及高并发等经验,想到高并发,我们第一想到了媒体上经常出现的新闻阿里双11每秒处理xx万订单,瞬间觉得高并发是一种很屌的技术,很高大上,如果像笔者这种没做过大型服务的普通程序员,在此根据网上的资料,对高并发写一下我个人的看法 高并发的概念 这里我引用一段架构师之路公众号究竟啥才是互联网架构高并发中的一段话来描述: 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求 那么很多请求,具体达到多少请求才算是高并发系统呢?这个也没有明确数量上的定义,根据网上很多大型互联网公司的相关高并发博客,一般PV在千万级别以上的公司才会涉及到这个概念,所以...阅读全文

博文 2017-09-06 11:35:14 tomorrowwu

go语言学习一

golang语言特性:1、天然并发a.从语言层面支持并发,非常简单。b.goroute,轻量级线程,创建成千上万个goroute成为可能。c.基于CSP(Communication Sequential Process 通讯序列进程)模型实现。 CSP:每个goroute之间通过管道(channel,类似linux/unix中的pipe)进行通讯,每个goroute都是独立的,是可调度的执行单位,比线程要轻量级,即协程...阅读全文

博文 2020-05-03 02:33:11 archivelog

Golang正则表达式

语法规则 字符类匹配表达式 语法 说明 示例 匹配结果 一般 匹配本身 abc abc . 匹配任意除换行符"\n"外的字符 a.c abc \ 转义字符,使后一个字符改变原来的意思 a\.c a.c [...] 字符集(字符类),对应的位置可以是字符集中任意字符[abc]。也可以给出范围[a-c],第一个字符如果是 ^ 则表示取反,如 [^abc] 表示除了abc之外的其他字符。 a[bcd]e abe,ace,ade \d 数字:[0-9] a\dc a1c \D 非数字:[^\d] a\Dc abc \s 空白字符:[<空格>\t\r\n\f\v] a\sc a c \S 非空白字符:[^\s] a\Sc abc \w 单词字符:[A-Za-z0-9] a\wc abc \W 非单词字...阅读全文

博文 2020-05-21 19:33:20 也疯狂

GoLang 随笔 - iota 的特性与用法

依靠编译器完成自增 const ( a = iota // a = 0 b // b = 1 c // c = 2 ) 利用只写变量 _ 跳过自增 const ( a = iota // a = 0 b // b = 1 _ _ c // c = 4 ) 可以插入其他常量,且不影响iota自增 const ( a = iota // a = 0 b = "b" // b = "b" c = iota //c = 2 d // d = 3 ) 如果定义在同一行 const ( a, b = iota , iota + 1 c, d e, f ) // a = 0, b = 1, c = 2, d = 3, e = 4, f = 5 定义位掩码表达式 const ( a = 1 << iota ...阅读全文

博文 2019-07-21 06:32:37 凉丶心园