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

微服务实战(三):深入微服务架构的进程间通信

【编者的话】这是采用微服务架构创建自己应用系列第三篇文章。第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使用微服务架构的优缺点。第二篇描述了采用微服务架构应用客户端之间如何采用API Gateway方式进行通信。在这篇文章中,我们将讨论系统服务之间如何通信。 简介在单体式应用中,各个模块之间的调用是通过编程语言级别的方法或者函数来实现的。但是一个基于微服务的分布式应用是运行在多台机器上的。一般来说,每个服务实例都是一个进程。因此,如下图所示,服务之间的交互必须通过进程间通信(IPC)来实现。 后面我们将会详细介绍IPC技术,现在我们先来看下设计相关的问题。 交互模式当为某一个服务选择IPC时,首先需要考虑服务之间如何交互。客户端和服务器之间有很多的交互模式,我们可以从两个维度...阅读全文

博文 2016-03-03 10:37:45 hokingyang

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

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

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

最强围棋程序Alpha Go 浅析

最强围棋程序Alpha Go 浅析 去年谷歌的围棋程序Alpha Go一举打败所有已知的围棋AI程序,以及以5:0的大比分打败了专业棋手Fan Hui。随后在《nature》上报到了Alpha Go 的内幕。作为一个伪的围棋爱好者和一个机器学习爱好者,看了该文章,并看了其他的分析,写下自己的心得: 围棋的智能对弈程序最早当属我国的手谈,那个时期的自动对弈程序属于经验型的。随后从国外对围棋研究后,产生了蒙特卡洛树搜索的方法应运于围棋对弈,产生了一系列的强AI,可以达到业余水准,关于蒙特卡洛树搜索可以参看《基于蒙特卡洛树搜索的计算机围棋博弈研究》,可以说对该方法进行了详细的说明,阅读也较容易,可以得到围棋AI的一些背景,制约蒙特卡洛方法更近一步的原因是:树的展开,以及搜索的深度的确定。于此同时,...阅读全文

golang postgresql数据库驱动

今天周末,即使立冬已过,阳光依然独好,闲着没事做,coding。 一直用bm。。。/pq的SQL驱动,忘记叫啥了,一直没问题,今天看到地址转到了lib/pq,重新获取了驱动,继续使用,有如下一段代码, func DB() (db *sql.DB) { db, err := sql.Open("postgres", "user=postgres password=123456 dbname=test sslmode=verify-full") if err != nil { Fatal("数据库连接失败" + err.Error()) } return db } 编译,运行,不知道搞毛,db一直为空,搞了好久,都没搞明白,偶然间看到了 import( ) 居然为空,我去,我去,好吧,我的编辑器...阅读全文

博文 2016-03-19 15:00:01 u013025612

Golang 并行运算以及time/sleep.go

今天大概阅读了一下Golang的并行运算,以下简要概括并行运算 go func() // 可以启动一个协程 可以同时运行多个协程,协程之间通讯使用channel(通道)来进行协程间通信 channel的定义如下 c := chan string 意味着这是一个string类型的通道 channel可以理解为一个队列,先进者先出,但是它只能占有一个元素的位置,我们可以义如下方法添加/读取元素,<- 是一个运算符 c <- "hello" //把"hello"加入到c通道中 msg := <- c // 将c中的"hello"取出到msg里 在并行运算时我们可能需要从多个通道读取消息,此时我们用到 for{ select{ case msg1 := channel_1: fmt.Println(...阅读全文

博文 2018-07-24 23:34:46 Exqlnet

【分布式架构】阿里免费送你分布式消息中间件MQ开发教程

课程介绍 阿里云消息队列MQ(Message Queue)是企业级互联网架构的核心产品,服务于整个阿里巴巴集团已超过8年,经过阿里巴巴交易核心链路反复打磨与历年双十一严苛考验,是一个真正具备低延迟、高并发、高可用、高可靠,可支撑万亿级数据洪峰的分布式消息中间件。 消息队列提供 MQ-MQTT 移动物联套件,连接端(如移动设备、智能家电、汽车、机器人等)和云,实现双向通信,可支撑亿级设备连接与百万消息并发。 消息队列秉持开放、共享的原则拥抱开源生态,无技术绑定,2016年阿里巴巴正式宣布将 MQ 内核引擎 RocketMQ 捐赠给 Apache 软件基金会;与此同时,全面融合 kafka 生态,做到无缝迁移,打造更安全、更可靠、更易运维的 kafka 企业级消息服务。 ...阅读全文

利用websocket,go语言和h5做了一个简单的聊天功能

聊天对于大家都不陌生,但是如何做一个自己的聊天功能呢 首先介绍一下何为websocket,帮助大家更好的认识一下websocket 在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双向通信,但效率较低,并需要服务器有较好的支持; flash中的socket和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使用这两项功能. 可以预见,如果websocket一旦在浏览器中得到实现,将会替代上面两项技术,得到广泛的使用.面对这种状况,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯。 可见为何利用websocket来写聊天功能了,这样可以省去很多的麻烦! 因为我是用go写的首先你得...阅读全文

博文 2017-01-19 22:00:04 qq_35730500

GoLang之调用C接口的使用方法

2014-06-10 wcdj 摘要:本文主要介绍在GoLang中如何实现调用C接口。由于Go的官网经常被墙,导致无法浏览官方的详细文档,偶然间在浏览GoLang的源码中找到了一些关于cgo的用法,具体路径在go/misc/cgo目录下。 例如,在go/misc/cgo/gmp/gmp.go文件中可以找到如何在GoLang中引用C Library的方法: An example of wrapping a C library in Go. This is the GNU multiprecision library gmp's integer type mpz_t wrapped to look like the Go package big's integer type Int. 下面是一个...阅读全文

博文 2015-06-17 20:01:43 delphiwcdj

golang手把手实现tcp内网穿透代理(1)

使用golang手把手实现一个tcp内网穿透代理工具。 描述一下应用场景,假设内网也就是我们的局域网,我们的电脑,pc运行了一个tomcat服务器,或者nginx服务器,又或者jdbc数据库,又或者python的服务器。 正常来说,我们是无法通过互联网达到访问局域网的电脑,pc的。 然后我们有一台外网主机,需要实现在外网主机端口支持访问我们内网的服务,这样的好处和目的是什么呢? 方便调试我们的代码,尤其是微信的公众号,以及线上的支付功能回调。凡是需要别人的服务器回调我们的服务器的都需要。 在做工具之前,需要先设计一下怎么实现这个工具,而不是盲目的开工。 首先可以明确的是: 1.控制服务,控制服务需要监听在外网服务器上,假设这个服务名字叫做control_server control_serv...阅读全文

博文 2019-06-13 23:32:42 iamdev

教你轻松做一个响应式网站

在响应式还未流行的时候,很多企业与互联网公司都觉得响应式网站应该是大企业才用的上,大企业才有资金去投入。对于这个问题小编只能说,没错放在前段时间做一个响应式网站的确需要高投入,而且还很耗时间。但是放在今天来讲,小编可以告诉你,以现在的互联网技术,做一个响应式网站快的只需要几个小时,需要细致完成的也就几天时间。这样的发展速度,让众人所惊叹! 在响应式还未流行的时候,很多企业与互联网公司都觉得响应式网站应该是大企业才用的上,大企业才有资金去投入。对于这个问题小编只能说,没错放在前段时间做一个响应式网站的确需要高投入,而且还很耗时间。但是放在今天来讲,小编可以告诉你,以现在的互联网技术,做一个响应式网站快的只需要几个小时,需要细致完成的也就几天时间。这样的发展速度,让众人所惊叹! 现在...阅读全文

Nginx《微服务:从设计到部署》中文版

本书为 Nginx 微服务电子书 [Designing and Deploying Microservices](https://www.nginx.com/resources/library/designing-deploying-microservices/) 中文版,其从不同角度全面介绍了微服务:微服务的优点与缺点、API 网关、进程间通信(IPC)、服务发现、事件驱动数据管理、微服务部署策略、重构单体。 https://github.com/oopsguy/microservices-from-design-to-deployment-chines...阅读全文

我有一个梦想

**我有一个梦想** --- 我有一个梦想, 我希望在不久的将来,程序员可以自由的享受每一个夜晚,而不是在屏幕前敲啊敲; 我有一个梦想, 我希望在不久的将来,程序员可以畅快地享受每一个假期,出游度假,而不是在办公室里等待程序响应 我有一个梦想, 我希望不久的将来,程序员不用再为产品上线时的那个晚上和产品上线后的那个晚上焦虑 我有一个梦想, 我希望在不久的将来,面对北上广深不断攀升的房价,程序员可以自由的选择出路,去或留,都能坦然面对; 我有一个梦想, 我希望在不久的将来,程序员不用天天面向对象编程,却整天被提示找不到对象; 我有一个梦想, 我希望在不久的将来,程序员可以痛快的答应每一个约会,不用再为临时出现的各种bug爽约 ![9-1....阅读全文

golang学习计划

之前在工作中有使用过golang开发一些小项目,比如直播间爬取、多平台推流系统、云监控直播点播系统(后续整理下,打算开源,新手,别喷O(∩_∩)O),但是一直没有系统的学习,没有很深入的去使用,自己觉得对golang的了解还很浅,所以计划系统的学习下了。golnag语言的学习资料,网上很多pdf和各种博客教程,需要的可以参考下无闻的《Go 语言学习资料与社区索引》,收录了很多比较好的资料,但我对看纸质的资料比较有感觉,所以去买了《go程序设计语言》这本书,一共13章,计划一天看一章,那么两周时间就可以看完了。考了,突然发现,比 xxx21天从入门到精通 时间还短,是不是太快了看得没质量,暂且这么计划着先吧,后续看情况是不是需要调整,let go...阅读全文

博文 2017-07-08 16:32:08 dawing38

如何用golang写个程序获取斗鱼直播间的弹幕?

斗鱼第三方接入协议,下载地址http://dev-bbs.douyutv.com/forum.php?mod=attachment&amp;aid=MTQ5fDk5NDQ2ZTVhfDE0OTc1MjE5NjN8MHwxMDk%3D 斗鱼第三方开放平台API文档,下载地址http://dev-bbs.douyutv.com/forum.php?mod=attachment&aid=MTQ4fGI5ZWRkOWVhfDE0OTc1MjM2NzR8MHwxMDg%3D 有人用PHP写了获取斗鱼直播间的弹幕的程序,有人用node写了获取斗鱼直播间的弹幕的程序, 还有人用C/C++写了获取斗鱼直播间的弹幕的程序。。。就差golang版本的了。。。O(∩_∩)...阅读全文

教你如何用Golang打造实时聊天系统

项目截图 简介在本次课程中,我们来学习使用WebSocket来打造一个实时聊天系统。我们会从一下几个方面来进行学习:什么是websocket;Websocket与传统的HTTP协议有什么区别;Websocket有哪些优点;如何建立连接;如何维持连接;Golang实战项目—实时聊天系统;总结;什么是websocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并被RFC7936所补充规范。WebSocket协议支持(在受控环境中运行不受信任的代码的)客户端与(选择加入该代码的通信的)远程主机之间进行全双工通信。用于此...阅读全文

博文 2020-03-11 14:33:08 即将秃头的Java程序员

关于go thrift双向通信的问题

默认情况下,thrift是单向通信的,但是通过一定的技巧是可以实现双向通信的,目前网上能找到的是关于Java和C++的例子,但是go的基本没有关于thrift双向通信的讨论。不知有哪位有这方面的例子或思路?以下几个参考基本是对getProcessor函数进行了改写 参考: http://blog.csdn.net/qq_27989757/article/details/50725973 http://blog.csdn.net/qq_27989757/article/details/50761051 http://joelpm.com/2009/04/03/thrift-bidirectional-async-rpc.html http://www.cnphp6.com/archi...阅读全文

tm域名为什么是10年起注?

互联网上已经没有一个域名注册像.TM一样有强制规定:十年起注,必须十年! ![20170105174036_44755.png](http://studygolang.qiniudn.com/170109/885b2e72ac66d44b6f3d5ff40ed3dcf9.png) 这样笔者想起了现在很多创业公司的现状:大都撑不过3年。 一家企业能不能活十年都是个问题,注册个域名竟然要求十年?凭什么? TM域名还真是生来“霸道”,带着长得像商标(TradeMark)英文缩写“TM”的先天优势,在价格上远高于主流域名。TM域名自开放注册以来,已被世人默认为“商标域名”。 TM域名的价格:http://www.iisp.com/domain/intro_tm.php?...阅读全文

letting go ,偶然间的发现

刚刚写完策划,听首曲子,准备休息了。我采用的是下面的这种方式 我采用的是网页播放器+客户端播放器,播放同一首曲子。发现,相比当前的单一方式,比如单独用客户端播放器或者网页播放器,带给我的感觉是不一样的呢。 要不, 你也去试试....... 说到这儿,我要给我最好的朋友------睿哥。点首曲子: Bluebird Story with Jumelles 我相当喜欢这首曲子带来的意境呢。每次听,基本上都能带给我 不一样的意境哦。希望它也能为 看到这里的你带来快乐,消除烦恼。 ~~~~~ ........阅读全文

博文 2015-12-23 02:00:01 HK_5788

tm域名注册说明

互联网上已经没有一个域名注册像.TM一样有强制规定:十年起注,必须十年! 这样笔者想起了现在很多创业公司的现状:大都撑不过3年。 一家企业能不能活十年都是个问题,注册个域名竟然要求十年?凭什么? TM域名还真是生来“霸道”,带着长得像商标(TradeMark)英文缩写“TM”的先天优势,在价格上远高于主流域名。TM域名自开放注册以来,已被世人默认为“商标域名”。 笔者认为,tm域名之所以十年起注原因有三: 1、 商标的注册有效期是10年,这个期限是参考国际的《商标法》决定的。少部分国家如缅甸是3年,中国澳门、尼泊尔、埃塞尔比亚的商标注册有效期是7年,加拿大、委内瑞拉等商标有效期是15年。tm域名既然肩负着“商标域名”的重任,注册期限自然和商标期限同步。 2、 10...阅读全文