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

【互联网早报】2017.11.09

## ??国内新闻?? 1. 小电成为腾讯全球伙伴大会独家共享充电服务商; http://dwz.cn/6OMUqO 2. 腾讯车联平台布局“AI in car”多家A股公司入围; http://dwz.cn/6OMPvi 3. 芝麻信用接入海外租车品牌「惠租车」,国外自驾游也可以衍生系列服务; http://dwz.cn/6ONbM9 4. 「木鸟短租」宣布完成 B + 轮融资,重点打造卫生、安全、服务有保障的四木房源。 http://dwz.cn/6ON3JC ## ? 国际新闻? 1. iOS 11.2 公测版推出个人转账功能 iPhone 6 以上设备可用; http://dwz.cn/6ONaEc 2. 谷歌首款真正无...阅读全文

主题 2017-11-09 02:01:38 polaris

资深GOLANG 开发工程师

招聘PHP工程师和C++ 工程师,15K, B轮、双休、golang熟练, 工作地点深圳南山科技园,地铁高新园B出口。有意者15002093278,或者chenrs@welearn.com . 在线辅导第一品牌。公司的核心团队来自腾讯、阿里、迅雷、华为、快播、新东方。是一个混搭型的团队,公司管理的核心理念是“以人为本,让工作成为实现个人价值的最佳途径”,在管理模式上,采取基于信任的管理...阅读全文

【互联网早报】2017.10.27

## ??国内新闻?? 1. 孙正义: AI 将大量需求半导体,希望控制 90% 芯片市场; http://dwz.cn/6JmoUZ 2. 迎战天猫双11 菜鸟联合日日顺为大件物流提速; http://dwz.cn/6Jmed9 3. 价值8位数,weixin.com域名被腾讯成功仲裁; http://dwz.cn/6Jmf26 4. 中小学教育机构平行线教育完成8000万元A轮融资。 http://dwz.cn/6JmcyF ## ? 国际新闻? 1. LinkedIn 成立人工智能学院,内部孵化 AI 工程师; http://dwz.cn/6JmmF3 2. 知名游戏出版商Gameloft:WP,再见; http:/...阅读全文

GORM update 更新数据

## 查询数据并更新数据 ### 第一种查询语句 `db.Model(&Student).Where("id = ?",1).First(&student)` ### 第二种查询 `db.Model(&Student).Preload("Class").Where("id = ?",1).First(&student)` ### 用相同的语句更新student `db.Model(&student).Update("name":"test")` ### 更新结果 第一种查询的对象更新时,只是更新了students表数据, 第二种查询的对象更新时,不仅仅更新了students表数据,**也同时更新了预加载对象classes的表数据*...阅读全文

博文 2020-05-14 11:34:08 dongjs

【互联网早报】2017.11.20

## 国内新闻 1. 线上线下一哥终牵手,阿里巴巴224亿港元入股高鑫零售 http://www.iyiou.com/p/60281 2. 小米新总部正式落户武汉 总投资230亿 http://tech.sina.com.cn/mobile/n/n/2017-11-20/doc-ifynwnty5533829.shtml 3. 人脸识别公司云从科技完成B轮融资,总计获25亿元资金支持 http://www.iheima.com/zixun/2017/1120/166068.shtml 4. 捌捌玖玖智能获100万融资,资金用于产品升级 http://www.ebrun.com/20171117/255591.shtml 5. 四...阅读全文

关于 golang 中使用 ES

需要使用到的包 gopkg.in/olivere/elastic.v6 golang.org/x/elasti 创建一个接口 controllers/base.go package controllers import ( "context" "fmt" "log" "os" "gopkg.in/olivere/elastic.v6" ) var EsClient *elastic.Client var host = "http://127.0.0.1:9200/" func init(){ //es 配置 errorlog := log.New(os.Stdout, "APP", log.LstdFlags) var err error EsClient, err =elastic.New...阅读全文

博文 2019-08-28 17:32:46 顶尖少爷

golang使用Nsq

为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯。一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golang原汁原味的东西,功能齐全,关键是性能还不错。其中支持动态拓展,消除单点故障等特性, 都可以很好的满足我的需求 下面上一张Nsq与其他mq的对比图,看上去的确强大。下面简单记录一下Nsq的使用方法 golang2017开发者大会 Nsq服务端 Nsq服务端简介 在使用Nsq服务之前,还是有必要了解一下Nsq的几个核心组件整个Nsq服务包含三个主要部分 nsqlookupd 先看看官方的原话是怎么说:nsqlookupd是守护进程负责管理拓扑信息。客户端通过查询 nsqlookupd 来发现指定话...阅读全文

博文 2017-04-24 12:56:37 喵喵小魔王

由Go语言并发模型想到游戏服务器并发

这段时间看了一些Go语言相关的东西,发现Go语言的最大特性并发模型类似于C++里面的线程池,正好我们项目服务器也是用的线程池,记录下。 Go语言的并发单位是语言内置的协程,使用关键字go+函数创建一个新的协程,新创建的协程会自动加入到协程调度上下文的等待调度队列,一个协程调度上下文对应一个线程,一个协程调度上下文对应多个协程。新加入的协程会动态负载到各个调度上下文,如果所有调度上下文的平均负载较高时,总调度器会自动创建新的线程和对应的调度上下文用于工作。整体上看,是N个线程:N个调度上下文:M个协程的关系。 我们项目服务器线程架构使用boost::threadpool作为底层,按照配置设定的线程数量启动threadpool,驱动所有Invoker单元,各个Invoker再驱动持有自己的Ser...阅读全文

博文 2014-10-17 03:00:01 gns3

webhook 是什么以及如何创建

我们在网上做的工作,大部分其实就是事件,webhooks 已经成为了连接系统的主要方式,不管是用户创建、支付成功、DockerHub 镜像推送或者 Git 仓库上的合并请求,这些都是非常有用并且轻量级的共享信息的方式 ![](https://raw.githubusercontent.com/studygolang/gctt-images/master/webhook/1.png) 那么,webhook 究竟是什么呢?webhook 是应用给其它应用提供实时信息的一种方式。信息一产生,webhook 就会把它发送给已经注册的应用,这就意味着你能实时得到数据。不像传统的 APIs 方式,你需要用轮询的方式来获得尽可能实时的数据。这一点使得 webhook 不管是在发送端还是接收端都非常高效。由...阅读全文

博文 2018-09-25 10:05:16 jettyhan

[更新] 深圳羚羊极速科技有限公司招聘golang开发工程师

golang语言开发工程师 岗位职责: 1. 负责分布式系统设计与实现 2. 负责云存储系统的维护和优化 任职要求: 1. 3年以上 Linux 操作系统下的 GO项目的开发经验; 2. 有分布式存储开发、设计、架构经验,深刻理解分布式存储原理,有海量非结构化数据存储设计经验的优先考虑; 3. 精通linux IO系统、网络系统,精通高性能系统者优先; 4. 有RabbitMQ开发经验者优先; 5. 熟悉MongoDB、LevelDB数据库; 6. 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力; 7. 有良好的团队合作能力,富有工作激情,善于沟通,热爱开发事业。 上班地点:深圳市...阅读全文

golang轮询机制select的理解

func main() { c := make(chan int) quit := make(chan int) go func() { for i := 0; i < 10; i++ { fmt.Println(<-c) } quit <- 0 }() fibonacci(c, quit) } //select的轮询机制 func fibonacci(c chan int, quit chan int) { x, y := 0, 1 for { select { // select轮询机制 case c <- x: x, y = y, x+y case <-quit: fmt.Println("quit") return } } } main中执行fibonacci函数时候,select有...阅读全文

博文 2015-07-24 16:00:01 webyh

【互联网早报】2017.11.28

## 国内新闻 1.用游戏化教学实现“零成本”获客,「编玩边学」获数千万元Pre-A轮融资 http://36kr.com/p/5104910.html 2.21个月之后,聚美优品宣布撤回私有化,股价上涨13% http://www.donews.com/news/detail/3/2976627.html 3.十分到家获国美1.05亿投资 并达成战略合作 http://www.pintu360.com/a40418.html 4.支付宝推免押金出海 芝麻分700以上可境外免押租车 http://www.donews.com/news/detail/3/2976616.html 5.一嗨租车接到私有化要约 较上周收盘价溢...阅读全文

创业公司招聘工程师

## 我们是谁 我们的名字叫**年假旅行**--各大应用商店均可下载我们的同名APP 我们是一家做**境外游**的创业公司, 我们是**旅游卫视**[经广电总局批准的中国境内唯一一家以旅游休闲为主要内容的专业化卫星电视频道]和**众信旅游**[中国最大的出境游运营商之一] 合伙投资的 我们马上就A轮融资--赶在A轮之前入职会有更多惊喜 ## 我们需要 **前端工程师** 能独立完成工作 较好的JavaScript&CSS基础 1年以上前端开发经验 **java工程师** 较好的java基础及编程理念 1年以上java编程经验或者实习生 会一门脚本语言 熟悉linux ## 如果你是这样纸我们会更爱你 - **态度认真,做事负责,认为做出最好...阅读全文

【杭州互联网金融】数据获取工程师,年薪15-30W+期权

【岗位信息】 数据获取工程师 工作职责: 1.使用golang进行项目的开发 2.海量数据只能抽取,校对 3.抓取程序及集群只能调度控制 4.Tcp,HTTP数据协议破解,攻防 基础要求: 1.熟悉网络编程(TCP/IP,HTTP),数据结构,通用算法 2.熟悉消息系统及数据存储 3.具有较好的学习与发现问题的能力,同事能独立使用代码解决问题尤佳 优先考虑: 1.不限于golang,有海量数据、高负载产品实际开发经验 2.已有爬虫的开发经验,参与过大规模数据爬取 【工作地点】:杭州西湖区 【公司信息】 有意者QQ2778420498(备注studygolang),产品为理财记账类产品,2014年底B轮,5000w美金,2015年7月B+轮,8000...阅读全文

moonmq: 用go实现的高性能message queue

介绍 moonmq是一个用go实现的高性能消息队列系统,后续准备用于我们消息推送服务以及各个后台的异步任务。 在设计上面,moonmq主要借鉴了rabbitmq以及rocketmq相关的思想,但是做了很多减法,毕竟我不是要设计成一个非常通用的mq。 名词解释 publisher,消息生产者consumer,消息消费者broker,消息中转站queue,消息存储队列 publisher给一个命名的queue发送消息msg,broker负责将msg存放在queue里面。 consumer可以关注自己感兴趣的queue,这样当queue里面有消息的时候,broker就会将该消息推送给该consumer。 推拉模型 在rocketmq里面,支持的是pull msg,而rabbitmq则是支持push...阅读全文

博文 2015-06-18 18:07:58 siddontang

分布式后台任务队列模拟(Golang)

最近研究了下gowoker,这东西代码少而精,Golang真是很适合实现这类东西。 我去掉参数配置,JSON,Redis这些东西,用goworker的方式做了个最简单的实现。 实现如下功能: 1. worker向JobServer注册可执行的功能 2. JobServer轮询,有job就执行,没有则继续轮询 3. client向JobServer提出任务请求,并传入参数 4. JobServer依请求丢给worker执行(可并发或串行执行) 5. JobServer继续轮询 我弄的这个代码很少,其中队列用数组代替,同时省掉了很多东西, 但保留了其goroutine与channel最基础的实现。 如果想看goworker的,可以参考下我这个,应当可以更快的弄明白goworker。 演示例子及运...阅读全文

博文 2015-06-17 20:03:48 xcltapestry

【探探】知名社交 招聘 高级GO语言开发

联系方式: QQ:405121666 Email:king@fengqihr.com 薪资面议 职责: 探探后台服务的研发 项目管理 带新人 要求: 两年以上工作经验 在一线的互联网公司工作过。 参与过百万级日活以上产品的研发。 熟悉Go语言或者至少精通其他一门语言并且愿意转go 善于沟通协作 公司简介 探探,2016年最具成长力产品奖。 探探,2015年“最受女性欢迎的社交app”奖项获得者。 探探,2015年拉勾“社交领域最佳雇主”奖项获得者。 探探,2015年百度“年度创新应用”奖项获得者。 探探,2015年中国互联网大会“最具行业先锋奖”奖项获得者。 探探,2015年中国互联网大会授予探探团队行业先锋人物获得者。 截至到...阅读全文

Golang控制goroutine的启动与关闭

最近在用golang做项目的时候,使用到了goroutine。在golang中启动协程非常方便,只需要加一个go关键字: go myfunc(){ //do something }() 但是对于一些长时间执行的任务,例如: go loopfunc(){ for{ //do something repeat } }() 在某些情况下,需要退出时候却有些不方便。举个例子,你启动了一个协程,长时间轮询处理一些任务。当某种情况下,需要外部通知,主动结束这个循环。发现,golang并没有像java那样中断或者关闭线程的interrupt,stop方法。于是就想到了channel,通过类似信号的方式来控制goroutine的关闭退出(实际上并不是真的直接关闭goroutine,只是把一些长时间循环的阻塞...阅读全文

博文 2015-10-11 04:00:00 vimsk

深圳羚羊极速科技有限公司 招聘golang开发工程师

go语言开发工程师 岗位职责: 1. 负责分布式系统设计与实现 2. 负责云存储系统的维护和优化 任职要求: 1. 3年以上 Linux 操作系统下的 C/C++项目的开发经验 2. 有分布式存储开发、设计、架构经验,深刻理解分布式存储原理 3. 精通linux IO系统、网络系统,精通高性能系统者优先 4. 有RabbitMQ开发经验者优先 5. 有go语言开发经验者优先 6. 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力 7. 有良好的团队合作能力,富有工作激情,善于沟通,热爱开发事业 工作地址 深圳市南山区软件产业基地后海大道2388号怡化金融科技大厦1301 联系电话: 0755-26651282 kelly.wa...阅读全文

Golang package轻量级KV数据缓存——go-cache源码分析

作者:Moon-Light-Dream 出处:https://www.cnblogs.com/Moon-Light-Dream/ 转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任 什么是go-cache KV存储引擎有很多,常用的如redis,rocksdb等,如果在实际使用中只是在内存中实现一个简单的kv缓存,使用上述引擎就太大费周章了。在Golang中可以使用go-cache这个package实现一个轻量级基于内存的kv存储或缓存。GitHub源码地址是:https://github.com/patrickmn/go-cache 。 go-cache这个包实际上是在内存中实现了一个线程安全的map[string]interface{},可以将任...阅读全文

博文 2020-03-15 16:34:30 Moon-Light-Dream

go为什么这么快?(再探GMP模型)

进程、线程、协程 进程:进程是系统进行资源分配的基本单位,有独立的内存空间,单切换代价极高,进程间通信也比较麻烦 线程:线程是CPU调度和分派的基本单位,线程依附于进程,与其他线程共享进程的资源,仅有自己的(程序计数器,一组寄存器的值,和栈),线程切换代价小(但是线程之间的切换可能会设计用户态和内核态的切换),由于共享进程资源,所以线程之间通信比较方便。 协程:协程是一种用户态的轻量级线程,协程的调度完全由用户控制,协程切换只需要保存和恢复任务的上下文,没有内核的开销。协程间通信也比较简单(协程间本身是不可抢占的,由于操作系统的调度机制无法影响到它,因此一般存在用户自定义的调度机制)(也可以这么说内核线程依然叫“线程(thread)”,用户线程叫“协程(co-routine)".) Gola...阅读全文

博文 2020-04-12 19:32:48 GGBond_8488

基于Redis实现的延迟队列

delay-queue 延迟队列, 参考有赞延迟队列设计实现 项目地址 运行 ./delay-queue -c delay-queue.conf 默认监听0.0.0.0:9277 HTTP接口 请求方法 POST 请求Body及返回值均为json 返回值 { "code": 0, "message": "添加成功", "data": null } 参数名 类型 含义 备注 code int 状态码 0: 成功 非0: 失败 message string 状态描述信息 data object, null 附加信息 添加任务 URL地址 /push { "topic": "order", "id": "15702398321", "delay": 3600, "ttr": 120, "body"...阅读全文

博文 2017-07-04 16:04:57 order_c

筑巢新游招聘Go语言开发工程师/北京望京soho/15-25k

岗位职责: 移动互联网服务器端开发。 任职要求: 1、热爱互联网,对探索未知领域有浓厚的兴趣 2、优秀的分析问题和解决问题的能力,对解决具有挑战性问题充满激情 3、精通C++/Java/PHP/Python/Golang任意2种语言编程,熟悉linux平台 4、对数据结构和算法设计有较为深刻的理解 5、具有良好的沟通能力,和良好的团队合作精神 优先条件: 1. 有广告平台工作经验 2. 有运营数据平台经验 3. 有大数据处理经验 4. 有大并发处理经验 5. 能独立处理Web前端相关工作 6. 能撰写简明易懂的技术文档 7. 能高效的与不同岗位的同事沟通,解释,答疑,获得技术所需资源。 B轮创业公司,位于望京soho,纯纯的...阅读全文

golang实现权重轮询调度算法(Weighted Round-Robin Scheduling)

最近在看golang连接mysql数据库的例子(Go-MySQL-Driver),但是想到连接数据库肯定会有连接多从库的需求,而且每个从库的权重也会不一样,参考<<权重轮询调度算法(Weighted Round-Robin Scheduling)>>这篇文章写了一个golang版本的权重轮询调度算法,请大家指教,不多说了直接上代码: package main import ( "fmt" "time" ) var slaveDns = map[int]map[string]interface{}{ 0: {"connectstring": "root@tcp(172.16.0.164:3306)/shiqu_tools?charset=utf8", "weight": 2}, 1: {"co...阅读全文

博文 2016-11-03 02:00:03 Lancerio

【武汉】做贪吃蛇大作战的公司 武汉微派 急招golang服务器开发工程师

不知道微派是哪家公司,那你总知道贪吃蛇大作战、谁是卧底online、微派桌游助手吧,专注在游戏&社交两个领域;营收很好 ,数轮融资,比较低调。目前是B轮融资,巨人网络投资 公司简介: 公司16年的明星产品为贪吃蛇大作站和谁是卧底。贪吃蛇目前3亿多用户,16年77天在app store上霸榜,风靡全国,是现在休闲游戏的代表;谁是卧底也是一款十分经典的社交游戏。 1)贪吃蛇大作站,日活千万,于2016.8月-10月在app store免费榜连续70多天排名第一,是app store有史以来霸榜时间最长的APP。 目前用户3亿多,17年盈利8000W-1亿; 2)谁是卧底是top1的卧底游戏,多次进入app store免费榜单前30强,千万级用户,年收入千万; 因业务发展迅猛...阅读全文

网投现场火爆靠谱

相信大家都想找个正规的实体平台吧!找我你就选对了,我们的公司平台就在云南边界,说到云南大家应该不陌生吧!公司详细地址: 第一、云南省 第二、临沧市 第三、镇康县 第四、南伞镇 第五、就可以到达缅甸果敢老街腾龙集团,便是正规实体菠菜娱乐公司了!还有什么不懂的吗?尽管点击加卫咨—130 9439 1097—询即可! 第六、正规实体平台在线:WWW.tL8819.com 第七、公平.公正.公开 第八、合法菠菜.正规菠菜.诚信为本.信誉第一...阅读全文

【互联网早报】2017.12.07

## 国内新闻 1.定了!微信公众平台全面开放原创和留言功能 http://www.ebrun.com/20171206/258077.shtml 2.新零售解决方案提供商「企加云」完成A轮融资,阿里巴巴领投 http://36kr.com/p/5096162.html ## 国际新闻 1.比特币突破13000美元,加密货币市场估值超摩根大通 http://tech.sina.com.cn/i/2017-12-06/doc-ifypnyqi1262086.shtml 2.六家公司接洽万达旗下连锁影院AMC,有意投资或收购影院 http://36kr.com/p/5106705.html 3.App...阅读全文

Bootstrap导入JavaScript插件

u=2721599714,2937226223&fm=21&gp=0 导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单、按钮组、导航、分页等。他还包括一些JavaScript的插件。 Bootstrap的JavaScript插件可以单独导入到页面中,也可以一次性导入到页面中。因为在Bootstrap中的JavaScript插件都是依赖于jQuery库,所以不论是单独导入还一次性导入之前必须先导入jQuery库。 一次性导入: Bootstrap提供了一个单一的文件,这个文件包含了Bootstrap的所有JavaScript插件,即bootstrap.js(压缩版本:bootstrap.min.js)。 具体使用...阅读全文

(Go语言)Go的网络轮询及IO机制

创文章,转载请注明出处:服务器非业余研究-sunface 简介 这篇介绍了Go的运行时系统——网络I/O部分。 阻塞 Go语言中,所有的I/O都是阻塞的,因此我们在写Go系统的时候要秉持一个思想:不要写阻塞的interface和代码,然后通过goroutines和channels来处理并发,而不是用回调和futures。其中一个例子是“net/http"包中的http服务器,无论何时当http服务器接收一个连接,它都会创建一个新的goroutine处理来自这个连接的所有请求,这样我们就能写出很清晰的代码:先做什么,然后做什么。然而,不幸的是,操作系统提供的阻塞式I/O并不适合构建我们自己的阻塞式I/O接口(interface)。 在我之前有关Go运行时的文章中,其中一篇介绍了Go调度器如何处...阅读全文

博文 2015-06-17 23:01:52 working_brain

IO模型

一:IO简介Unix(like)中,一切皆文件。Socket、FIFO、管道、终端都是文件,一切都是流。在信息交换的过程中,实际都是对这些流进行的数据收发操作,简称I/O操作(系统调用read、write)。而流有很多,于是就用文件描述符(fd)来区分具体是哪个流。For example,我们创建了一个socket,系统调用会返回一个fd,对socket的任何操作都是对这个fd的操作(隐隐包含着一种分层与抽象的思想)。 二:同步异步、阻塞非阻塞同步与异步是一种通信机制,涉及到调用方和被调用方(针对应用程序与内核而言)。同步过程中,进程触发IO操作并等待(阻塞)或者轮询的(非阻塞)去查看IO操作是否完成;异步过程中,进程触发IO操作以后,直接返回,做自己的事情,IO交给内核来处理,完成后内核通...阅读全文

博文 2018-04-08 18:34:39 this_HD

快速对接payjs的个人支付接口(收银台模式)

近期在了解个人支付接口,希望能解决我在微信上支付的问题。找了很多平台对比再三,感觉payjs比较专业,其它多是模仿payjs的东西。同时支持支付宝和微信,由于本人支付宝还没开通(需要有一定流量才给开通),本文重点讲一下微信收银台模式的对接。记录一下。 收银台模式对接其实非常简单,官方有开发包可以直接使用,或者自己开发也比较简单。 ##### 一、个人通过代码实现的办法 - 配置商户号和通信密钥 ``` $mchid = '**************'; // PAYJS 商户号 $key = '**************'; // 通信密钥 ``` - 构造订单 ``` // 构造订单参数 $data = [ 'mchid' => $mchid, 'body' => '我是一个测试订单标...阅读全文

博文 2019-06-26 13:03:20 zilin9980

全球比特币和区块链领域创业企业全景图

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 全球比特币和区块链创业企业中,美国的数量占全球55%,其次为英国占6%,新加坡占3%,中国仅占2%! 荷兰的BitFury Group自2012年以来获得了9000万美元投资,日本的数字货币交易所bitFlyer也获得了3600万美元投资,这两家公司成为美国之外融资最多的比特币或区块链创业企业。 在比特币和区块链领域中,美国主要集中在资本市场和金融服务领域的比特币和区块链企业,而英国主要集中在数字货币钱包和汇款服务。 比特币和区块链近年来已经成为全球瞩目的焦点,尤其是区块链被称为是继互联网之后又一种颠覆性技术!现在全球各国在区块链领域积极探索,CB Insights跟踪了2012年以来比特币和区块链领域的融资情况...阅读全文

Gogs - 基于 Go 语言的自助 Git 服务

Gogs(Go Git Service) 是一个基于 Go 语言的自助 Git 服务。Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X 以及 Windows。 在线演示 源码下载 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果【附源码】 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发中很实用的10个效果【源码下载】 12款经典的白富美型 jQuery 图片轮播插件 本文链接:Gogs - 媲美 Gitlab,基于 Go 语言的自助 Git 服务...阅读全文

博文 2015-03-24 03:00:01 lhb25

Golang - 调度剖析【第二部分】

回顾本系列的第一部分,重点讲述了操作系统调度器的各个方面,这些知识对于理解和分析 Go 调度器的语义是非常重要的。在本文中,我将从语义层面解析 Go 调度器是如何工作的,并重点介绍其高级特性。Go 调度器是一个非常复杂的系统,我们不会过分关注一些细节,而是侧重于剖析它的设计模型和工作方式。我们通过学习它的优点以便够做出更好的工程决策。 开始 当 Go 程序启动时,它会为主机上标识的每个虚拟核心提供一个逻辑处理器(P)。如果处理器每个物理核心可以提供多个硬件线程(超线程),那么每个硬件线程都将作为虚拟核心呈现给 Go 程序。为了更好地理解这一点,下面实验都基于如下配置的 MacBook Pro 的系统。 可以看到它是一个 4 核 8 线程的处理器。这将告诉 Go 程序有 8 个虚拟核心可用于并...阅读全文

博文 2018-10-08 17:34:49 sxssxs

golang grpc 负载均衡

微服务架构里面,每个服务都会有很多节点,如果流量分配不均匀,会造成资源的浪费,甚至将一些机器压垮,这个时候就需要负载均衡,最简单的一种策略就是轮询,顺序依次选择不同的节点访问。 grpc 在客户端提供了负载均衡的实现,并提供了服务地址解析和更新的接口(默认提供了 DNS 域名解析的支持),方便不同服务的集成 使用示例 conn, err := grpc.Dial( "", grpc.WithInsecure(), // 负载均衡,使用 consul 作服务发现 grpc.WithBalancer(grpc.RoundRobin(grpclb.NewConsulResolver( "127.0.0.1:8500", "grpc.health.v1.add", ))), ) 创建连接的时候可以使...阅读全文

博文 2018-07-11 03:35:42 xjtuhit

Go之一步步学习RabbitMQ(一)

本文来自公众号“灰子学技术”,原文链接:https://mp.weixin.qq.com/s/YDtJzDYn7EMeoupRFwrulg写在前面的话:最近笔者在学习RabbitMQ,便尝试着通过下面的学习过程,来尽量还原RabbitMQ为什么如此设计,以及它是如何解决这些问题的。当中如有不对或者理解偏差的地方,还请大家不吝赐教,多多留言。如果你觉得这篇文章真的帮到了你,还请你顺手转发下。背景知识:在学习RabbitMQ之前,我们需要对下面的知识有些概念,生产者(producer):产生并发送消息的程序。队列(queue):存在RabbitMQ中的邮筒,虽然消息是在应用程序和RabbitMQ中进行传递,但队列才是唯一能够存储消息的地方。队列的大小取决于宿主机器的内存和磁盘容量,它本质上是一个...阅读全文

博文 2019-11-04 08:47:02 ZhDavis

Golang之实现一个负载均衡算法(随机,轮询)

代码记录 程序结构目录 --------程序包 package balance type Balancer interface { DoBalance([]*Instance, ...string) (*Instance, error) } balance.go package balance import ( "strconv" ) type Instance struct { host string port int } func NewInstance(host string, port int) *Instance { return &Instance{ host: host, port: port, } } //定义Instance结构体的方法GetHost() func (p *...阅读全文

istio1.0安装教程,快速入门

广告 | kubernetes各版本离线安装包 祝贺istio1.0发布, 在此献上教程一份 安装 安装k8s 强势插播广告 三步安装,不多说 安装helm, 推荐生产环境用helm安装,可以调参 release地址 如我使用的2.9.1版本 yum install -y socat # 这个不装会报错 [root@istiohost ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz [root@istiohost ~]# tar zxvf helm-v2.9.1-linux-amd64.tar.gz [root@istiohost ~]# cp linux-amd64...阅读全文

博文 2018-08-01 19:34:52 fanux

Go 为什么这么“快”

本文主要从 Go 调度器架构层面上介绍了 G-P-M 模型,通过该模型怎样实现少量内核线程支撑大量 Goroutine 的并发运行。以及通过 NetPoller、sysmon 等帮助 Go 程序减少线程阻塞,充分利用已有的计算资源,从而最大限度提高 Go 程序的运行效率。本文主要介绍了 Go 程序为了实现极高的并发性能,其内部调度器的实现架构(G-P-M 模型),以及为了最大限度利用计算资源,Go 调度器是如何处理线程阻塞的场景。怎么让我们的系统更快随着信息技术的迅速发展,单台服务器处理能力越来越强,迫使编程模式由从前的串行模式升级到并发模型。并发模型包含 IO 多路复用、多进程以及多线程,这几种模型都各有优劣,现代复杂的高并发架构大多是几种模型协同使用,不同场景应用不同模型,扬长避短,发挥...阅读全文

博文 2020-03-01 03:32:53 即将秃头的Java程序员

Golang 简单的读负责均衡

read-loadbalance master-slave(n) 读库集群负载均衡器(简单轮询)+时间间隔错峰。github 地址:https://github.com/Plen-wang/read-loadbalance 使用场景 1.一般我们会有多个从库,需要在从库的读取上做负载均衡。 2.在数仓拉取数据的时候经常对产线DB造成影响,所以会独立一个从库专门用来拉取,但是这个从库的利用率非常低。数仓拉取数据一般在业务低峰期进行,iops峰值较高,但是持续时间很短。我们可以错开这个时间段,让这台从库的利用率最大化。 package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "github.com...阅读全文

博文 2020-02-23 23:33:49 王清培

Go语言 Go的网络轮询及IO机制

创文章,转载请注明出处:服务器非业余研究-sunface 简介 这篇介绍了Go的运行时系统——网络I/O部分。 阻塞 Go语言中,所有的I/O都是阻塞的,因此我们在写Go系统的时候要秉持一个思想:不要写阻塞的interface和代码,然后通过goroutines和channels来处理并发,而不是用回调和futures。其中一个例子是“net/http"包中的http服务器,无论何时当http服务器接收一个连接,它都会创建一个新的goroutine处理来自这个连接的所有请求,这样我们就能写出很清晰的代码:先做什么,然后做什么。然而,不幸的是,操作系统提供的阻塞式I/O并不适合构建我们自己的阻塞式I/O接口(interface)。 在我之前有关Go运行时的文章中,其中一篇介绍了Go调度器如何处...阅读全文

博文 2015-06-17 23:01:53 abv123456789

Go 实现的负载均衡服务器goproxy-server

goproxy是使用golang实现的一个基本的负载均衡服务器,支持缓存(使用redis);反向代理,目前支持6种模式: 随机分发; IP HASH两种模式; 轮询(Round Robin)法; 加权轮询(Weight Round Robin)法; Power of Two Choices (P2C)算法; 边界一致性哈希算法(Consistent Hashing with Bounded Loads)。 另外,对转发的请求有较大的控制度,可以控制代理特定的请求,屏蔽特定的请求,甚至可以重写特定的请求。 另外,有时候项目需要用到第三方的服务并对返回的数据进行自定义修改,调用第三方的API,利用proxy server可以很容易的控制第三方API返回的数据并进行自定义修改...阅读全文

开源项目 2018-07-02 13:30:01 网友

beego的orm_,All() 竟然有限制 limit

生成sql查询竟然有限制 : LIMIT 1000 orm代码: ```go _, err := o.QueryTable(table).Filter("role_id", 0).All(&workers) ``` 对应 sql 查询记录: ``` [ORM]2019/08/24 15:15:59 -[Queries/default] - [ OK / db.Query / 9.5ms] - [SELECT T0.`id`, T0.`user_name`, T0.`real_name`, T0.`user_id`, T0.`phone`, T0.`number`, T0.`bank_num`, T0.`password`, T0.`salt`, T0.`sex`, T0.`role_id`,...阅读全文

博文 2019-08-24 16:23:35 stayfoo

golang实现权重轮询调度算法

package main import ( "fmt" "time" ) var slaveDns = map[int]map[string]interface{}{ 0: {"connectstring": "root@tcp(172.16.0.164:3306)/shiqu_tools?charset=utf8", "weight": 2}, 1: {"connectstring": "root@tcp(172.16.0.165:3306)/shiqu_tools?charset=utf8", "weight": 4}, 2: {"connectstring": "root@tcp(172.16.0.166:3306)/shiqu_tools?charset=utf8", "weight...阅读全文

博文 2017-09-04 16:00:03 zhangboyu

golang使用Nsq

为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯。一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golang原汁原味的东西,功能齐全,关键是性能还不错。其中支持动态拓展,消除单点故障等特性, 都可以很好的满足我的需求 下面上一张Nsq与其他mq的对比图,看上去的确强大。下面简单记录一下Nsq的使用方法图片来自golang2017开发者大会 Nsq服务端 Nsq服务端简介 在使用Nsq服务之前,还是有必要了解一下Nsq的几个核心组件整个Nsq服务包含三个主要部分 nsqlookupd 先看看官方的原话是怎么说:nsqlookupd是守护进程负责管理拓扑信息。客户端通过查询 nsqlookupd 来发现...阅读全文

博文 2017-04-25 15:00:25 花间隐虎

使用 Go 添加 Nginx 代理

简介 反向代理 负载均衡 轮询 加权轮询 最少连接 iphash 通用 hash 总结 当前部分的代码 简介 Nginx 是一个高性能的 HTTP 服务器和反向代理服务器. 最常用的两个功能是反向代理和负载均衡. 反向代理 反向代理是正向代理的反面. 普通的代理服务器是需要用户主动去设置的, 用户在自己的电脑上设置并连接代理服务器,从而可以隐藏自己的 IP, 使得应用服务器不知道客户端的 IP 地址. 而反向代理是作为应用服务器的代理, 安装在服务器上. 客户端实际上访问的反向代理服务器,反向代理服务器再去访问实际的应用服务器, 然后将获取到的响应传送给客户端. 使用 Nginx 配置反向代理非常简单, 基础配置如下: upstream web { server 127.0.0.1:8081...阅读全文

博文 2019-11-05 09:02:39 帅气猫咪

图解Go运行时调度器

本文翻译自《Illustrated Tales of Go Runtime Scheduler》。 译注:原文章结构有些乱,笔者自行在译文中增加了一些分级标题,让结构显得更清晰一些:)。 多goroutines形式的Go并发是编写现代并发软件的一种非常方便的方法,但是您的Go程序是如何高效地运行这些goroutines的呢? 在这篇文章中,我们将深入Go运行时底层,从设计角度了解Go运行时调度程序是如何实现其魔法的,并运用这些原理去解释在Go性能调试过程中产生的Go调度程序跟踪信息。 所有的工程奇迹都源于需要。因此,要了解为什么需要一个Go运行时调度程序以及它是如何工作的,我们可以让时间回到操作系统兴起的那个时代,回顾操作系统的历史可以使我们深入的了解问题的根源。如果不了解问题的根源,就没有...阅读全文

博文 2020-03-21 21:38:18 bigwhite

平滑的基于权重的轮询算法

轮询算法是非常常用的一种调度/负载均衡的算法。依照百度百科上的解释: Round-Robin,轮询调度,通信中信道调度的一种策略,该调度策略使用户轮流使用共享资源,不会考虑瞬时信道条件。从相同数量无线资源(相同调度时间段)被分配给每条通信链路的角度讲,轮询调度可以被视为公平调度。然而,从提供相同服务质量给所有通信链路的角度而言,轮询调度是不公平的,此时,必须为带有较差信道条件的通信链路分配更多无线资源(更多时间)。此外,由于轮询调度在调度过程中不考虑瞬时信道条件,因此它将导致较低的整体系统性能,但与最大载干比调度相比,在各通信链路间具有更为均衡的服务质量。 更广泛的轮询调度应用在广度的服务调度上面,尤其在面向服务或者是面向微服务的架构中,比可以在很多知名的软件中看到它的身影,比如LVS、Ng...阅读全文

博文 2017-02-08 12:53:44 smallnest

GoLang使用Mysql

1、安装mysql开源库 go get github.com/go-sql-driver/mysql 2、go实现mysql的查询、插入、更新、删除 package main import ( "database/sql" "fmt" "time" _ "github.com/go-sql-driver/mysql" ) type User struct { id int64 `db:"id"` groupname sql.NullString `db:"groupname"` groupfatherid int `db:"groupfatherid"` remark sql.NullString `db:"remark"` } const ( USERNAME = "root" PASSW...阅读全文

博文 2019-11-22 12:32:49