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

NSQ:分布式的实时消息平台

NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在GitHub,其当前最新版本是0.3.1版。NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。NSQ具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NSQ非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。另外,官方还提供了拆箱即用Go和Python库。如果读者兴趣构建自己的客户端的话,还可以参考官方提供的协议规范。 NSQ是由四个重要组件构成: nsqd:一个负责接收、排队、转发消息到客户端的守护进程 nsqlookupd:管理拓扑信息并提供最终一致性的发...阅读全文

博文 2015-05-05 11:09:59 李小兵

golang 正则替换html标签

func main() { str := `

还只是在凌晨4点,家住徐汇的王女士在手指关节的阵阵僵痛中醒来,这种每每在凌晨出现的疼痛已经折磨她将近半年了。之前她一直认为是普通的关节痛,直到最近才在正规医院被诊断为< ahref="http://jbk.39.net/lfsxgjy/" target="_blank" keycmd="bindJbkUi">类风湿< ahref="http://jbk.39.net/fsxgjy/" target="_blank" keycmd="bindJbkUi">关节炎。在我国,出现同样状况把< ahref="http://jbk.39.net/lfsxgjy/" target="_blank" keycmd="bindJbkUi"...阅读全文

博文 2014-10-04 19:27:32 别人说我名字很长

靠谱聚合支付系统提供商,专业线上搭建系统

佩奇免签支付系统,目前采用收款模式,有代理系统,自己搭建一套系统来运营的话,可放给身边朋友,可以给别人开商户,增加盈利点;也可组建团队开发支付代理,增加盈利点。并且,我们都是统一更新,统一升级,都是免费给你升级,不收取任何费用。 免签支付优点:无论你是企业、个人,无论你有没有企业资质、网站有没有ICP备案,只需提供能正常使用的支付宝或微信账号即可接入支持各种支付场景,灵活易用满足丰富交易场景需求,为用户提供完美支付体验;移动支付将终端设备、互联网、应用提供商以及金融机构相融合;资金不中转,直接转入你自己的账号,资金及时到账,安全可靠,等等。 第四方支付是相对第三方而言的,作为对第三方支付平台服务的拓展。第三方支付介于银行和商户之间,而第四方支付是介于第三方支付和商户之间,没有支付许可牌照的限...阅读全文

博文 2019-03-22 18:34:42 qq3201809208

RedMonk的语言排名:JavaScript,Java保持领先;Go未进前20

avaScript在基于Github和Stack Overflow的排名统计中,均排名第一。 在RedMonk的这个月编程语言指数中:JavaScript,Java和PHP排名前三。这个指数基于Github 的语言代码行数和Stack Overflow上的语言标签数量。 “在狭隘的比较中,Java总是在排名中超过JavaScript,但二者的差异总是如此之远,以至于并不显著”,RedMonk首席分析师Stephen O'Grady这样说。“最显著的特点是该语言经常被描述为将死,有时又被吹捧地上升几位” RedMonk的指数中 Python, C#, C++, Ruby, CSS, C, 和 Objective-C也进入前十。排名11~20的语言为:Perl 和 Shell (并列11), R...阅读全文

5亿次请求,95万QPS HTTPS CC攻击——阿里云云盾抗下全球最大DDoS攻击

5亿次请求,95万QPS HTTPS CC攻击——阿里云云盾抗下全球最大DDoS攻击 3月29日, 阿里云正式对外发布《2015下半年云盾互联网DDoS状态和趋势报告》。报告披露,去年11月,阿里云安全团队成功防御了黑客对阿里云平台上某互联网金融用户发起的超大规模HTTPS/SSL CC流量攻击,此次攻击也是迄今为止全球有统计数据最大的HTTPS SSL/CC攻击。 作为国内最大的公共云计算服务提供商,大量网站选择阿里云的安全防护,也因此为国内客户防御了当前互联网上主要的攻击行为。 攻击者从11月5日下午14点开始针对网站开始发起攻击,出现两次波峰分别在14点10和晚上7点30左右,总攻击量达到了5亿次请求。 ![1攻击请求QPS变化.jpg](http://stu...阅读全文

Golang 中使用 Slice + 索引 Map 替代 Map 获得性能提升

起因 在我们的多个线上游戏项目中,很多模块和服务为了提高响应速度,都在内存中存放了大量的(缓存)数据以便获得最快的访问速度。 通常情况下,为了使用方便,使用了 go 自身的 map 作为存放容器。当有超过几十万 key 值,并且 map 的 value 是一个复杂的 struct 时,额外引入的 GC 开销是无法忽视的。在 cpu 使用统计图中,我们总是观测到较为规律的短时间峰值。这个峰值在使用 1.3 版本的 go 中显得特别突出(stop the world 问题)。后续版本 go gc 不断优化,到我们现在使用的 1.10 已经是非常快速的并发 gc 并且只会有很短暂的 stw。 不过在各种 profile 的图中,我们依然观察到了大量的 runtime.scanobject 开销! ...阅读全文

Go 字符串统计

统计字符串每个字符出现次数!package main import ( "fmt" ) func WordCount(s string) map[string]int { var word string m := make(map[string]int) for i := 0; i < len(s); { word = s[i : i+1] fmt.Println(word) v, ok := m[word] if ok != false { m[word] = v + 1 } else { m[word] = 1 } i += 1 } return m } func main() { var str = "stringsg" fmt.Println(WordCount(str)) ...阅读全文

博文 2016-06-16 20:00:00 mingzhehaolove

如何泄漏一个协程然后修复它

很多 go 语言开发者都知道这句格言,[永远不要启动一个你不知道如何停止的协程](https://dave.cheney.net/2016/12/22/never-start-a-goroutine-without-knowing-how-it-will-stop),但是泄漏一个协程还是超级的简单。让我们看一种常碰到的泄漏协程的方式,然后修复它。 为了实现这个,我们先建立一个包含一个自定义 `map` 类型的库,这个 `map` 类型的 key 在经过了一段可配置的时间后过期。我们把这个库叫做 [ttl](https://en.wikipedia.org/wiki/Time_to_live) ,这个库有一个 `API` 类似如下: ```go // 创建一个生存周期为5分钟的map m :=...阅读全文

golang 统计uint64 数字二进制存储中1的数量

package mainimport ( "fmt")// pc[i] is the population count of i.var pc [256]bytefunc init() { for i := range pc { pc[i] = pc[i/2] + byte(i&1) }}func PopCount(x uint64) int { return int(pc[byte(x>>(0*8))] + pc[byte(x>>(1*8))] + pc[byte(x>>(2*8))] + pc[byte(x>>(3*8))] + pc[byte(x>>(4*8))] + pc[byte(x>>(5*8))] + pc[byte(x>>(6*8))] + pc[byte(x>>(7*8))...阅读全文

博文 2018-07-21 00:30:01 barfoo

Golang 协程并发更新共享数据

前言 以论坛项目为例,其中一个常见的统计更新需求是发布主题或回帖时会相应累加更新数据库相关统计表中目标日期对应的主题数或发帖数。考虑到这种性质的统计数据其实并不需要纯实时更新且增加不必要的数据库写压力,我们可以在 Golang 层面从数据库初始化存储至内存变量并在相应处理业务中更新相关的统计数据变量,再定时更新至数据库即可。 但这里有一个典型的问题是竞态条件(race condition),即数据一旦被多个线程共享操作,那么就很可能会产生争用和冲突的情况,这往往会破坏共享数据的一致性。如果不对这种并发操作共享数据加以控制,则最后得到的累加统计数据很可能是被低估而失真的。 在解决这个问题的角度上,本文不打算阐述诸如数据库锁、第三方内存缓存、消息队列等外部工具的配合使用方案,毕竟 Go 语言是以...阅读全文

博文 2020-04-18 11:32:42 NoTryNoSuccess

golang nats queue模式

队列订阅模式 此模式中,订阅者要指定两个属性,主题和队列(queue,其实就是队列名称) 注意:下面所有前提=必须订阅同一个主题 发布消息后,N个具有同样的主题和queue的订阅者,只有一个会收到消息。(random算法) 说明:queue=工作组,工作组中有N个worker,发布消息后,同一个工作组中,仅有一个worker会收到消息。 相同主题,不同queue的订阅者之间,不符合上面的描述。这种情况下,可以把同一个queue的订阅者们,当成一个订阅者来处理,这样就和普通的发布订阅模式一样了。 主题subj1,queue=q1的订阅者有sub1-q1,sub2-q1,sub3-q1 主题subj1,queue=q2的订阅者有sub1-q2,sub2-q2,sub3-q2 一个主题,两组订阅者...阅读全文

博文 2018-08-18 12:35:04 luckyase

golang初学之map

package main import ( "strings" "fmt") // 返回各个单词数量统计的map func WordCount(s string) map[string]int { m := make(map[string] int) for _, word := range strings.Fields(s) { m[word] ++ } return m} func main() { fmt.Println(WordCount("I am learning Go!")) fmt.Println(WordCount("How do you do?"))...阅读全文

博文 2016-05-21 22:00:04 enfreeworld

使用Go语言优雅地统计单词个数

type WordCounter int func (c *WordCounter) Write(p []byte) (int, error) { scanner := bufio.NewScanner(bytes.NewReader(p)) // set the split function for the scanning operation scanner.Split(bufio.ScanWords) // Count the words count := 0 for scanner.Scan() { count++ } if err := scanner.Err(); err != nil { return -1, err } *c += WordCounter(count) ret...阅读全文

博文 2019-08-09 21:03:22 yeleven

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。# btcpool矿池-核心机制总结及优化思考## 核心机制总结### ①gbtmaker* 监听Bitcoind ZMQ中BITCOIND_ZMQ_HASHBLOCK消息,一有新块产生,将立即向kafka发送新Gbt* 另默认每5秒间隔(可从配置文件中指定)主动RPC请求Bitcoind,获取Gbt发送给kafka* Gbt消息大小约2M,含交易列表### ②jobmaker* 同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_...阅读全文

博文 2018-10-16 18:34:41 兄弟连区块链培训

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考

btcpool矿池-核心机制总结及优化思考 核心机制总结 ①gbtmaker 监听Bitcoind ZMQ中BITCOIND_ZMQ_HASHBLOCK消息,一有新块产生,将立即向kafka发送新Gbt 另默认每5秒间隔(可从配置文件中指定)主动RPC请求Bitcoind,获取Gbt发送给kafka Gbt消息大小约2M,含交易列表 ②jobmaker 同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_TOPIC_NMC_AUXBLOCK,以支持混合挖矿 接收的Gbt消息,如果与本地时间延迟超过60秒将丢弃,如果延迟超过3秒将打印log 可用的Gbt消息,将以gbtTime+isEmptyBlock+height来构造key写入本地Map,另gbtHash也会写入本地队列...阅读全文

博文 2018-10-16 15:34:50 兄弟连区块链培训

兄弟连区块链教程btcpool矿池源码分析slparser

btcpool矿池-slparser(share log parser)模块解析 核心机制总结 支持三种功能: 指定Date和UID,将打印指定日期指定用户的share信息到stdout UID=0时,将打印指定日期所有用户的share信息 指定Date但未指定UID,读取指定日期sharelog,统计数据并写入数据库 按Worker、user、pool三个维度统计:Accept1h、Accept1d、score1h、score1d、Reject1h、Reject1d 数据库仅保留最近3个月统计数据 如果Date和UID均未指定,将监听文件变化,读取share并统计数据,每15秒写入数据库 同时启动Httpd服务,开放ServerStatus和WorkerStatus slparser命令使...阅读全文

博文 2018-10-26 15:34:41 兄弟连区块链培训

首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API

前言 这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见:status.goproxy.cn),我们终于使得 goproxy.cn 达到了零错误率!现在的 goproxy.cn 可以说是很稳的了,大家可以放心使用。 刚刚在开头稍微为这一个月发生的事情做了个小总结。接下来说一下本次的重点,也就是 goproxy.cn 推出了 Go 模块代理世界中的首个统计数据 API(文档详见:gopro...阅读全文

博文 2020-03-30 21:32:45 煎鱼

首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API

前言 这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见:status.goproxy.cn),我们终于使得 goproxy.cn 达到了零错误率!现在的 goproxy.cn 可以说是很稳的了,大家可以放心使用。 刚刚在开头稍微为这一个月发生的事情做了个小总结。接下来说一下本次的重点,也就是 goproxy.cn 推出了 Go 模块代理世界中的首个统计数据 API(文档详见:gopro...阅读全文

博文 2020-03-30 23:35:16 煎鱼eddycjy