加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

随手记——Go (Golang)

发布时间:2020-12-16 18:52:00 所属栏目:大数据 来源:网络整理
导读:---------------------------------------- 2014-02-26 139K goroutines 支撑 68K 活跃连接, 每个连接有两个goroutine ,因为 net包的write和read是阻塞的,只能是1:2。这条推特的意义在于,证明了了GOLANG的并发模型,解决了服务器端的 C10K 问题,而且是

----------------------------------------

2014-02-26


139K goroutines 支撑 68K 活跃连接, 每个连接有两个goroutine ,因为net包的write和read是阻塞的,只能是1:2。这条推特的意义在于,证明了了GOLANG的并发模型,解决了服务器端的 C10K 问题,而且是突破了 10K ,达到了 68K。

----------------------------------------

2014-05-13

Android:现实世界的购物平台

越过各种软件更新的小树叶,我们所看到的是Google辛勤栽种的一整片森林。将定位功能(包括离线地图)与行为识别、文字广告和强大的即时购买联系到一起,不难看出Google正将这广告平台推向更广阔的现实世界,直接装入了人们的口袋之中。

----------------------------------------

2014-05-17

《beego失落的手册》:http://go-talks.appspot.com/github.com/beego/tutorial/zh/beego/beego.slide#1

2014-05-22

http://confreaks.com/events/gophercon2014

2014-05-23

GO语言国内小站集锦:

http://studygolang.com/topics/node22

http://bbs.go-china.org/

http://sudochina.com/

http://www.golangtc.com/

----------------------------------------

2013-05-31

golang net 库

err时没有close ??
DialTimeout
dialtimeout是不行的
因为http会有复用
方案1:
要写个结构 继承conn 然后在每次读数据时调设置超时时间
type TimeoutConn struct {
net.Conn
timeSegment time.Duration
}

func DialTimeout(netw,addr string) (net.Conn,error) {
conn,err := net.DialTimeout(netw,addr,time.Second*5)
if err != nil {
return nil,err
}

return &TimeoutConn{
Conn: conn,
timeSegment: time.Second * 5
},nil
func (c *TimecoutConn) Read(b []byte) (n int,err error) {
c.SetReadDeadline(time.Now().Add(c.timeSegment))
return c.Conn.Read(b)
func (c *TimecoutConn) Write(b []byte) (n int,51); font-family:Arial; font-size:14.399999618530273px; line-height:26px"> return c.Conn.Write(b)
}
方案2:
@七贝
我们是这样处理的。。。
func TimeoutDialer(cTimeout time.Duration,rwTimeout time.Duration) func(net,addr string) (c net.Conn,err error) {
return func(netw,error) {
conn,cTimeout)
if err != nil {
return nil,err
}
conn.SetDeadline(time.Now().Add(rwTimeout))
return conn,nil
}
}

func NewTimeoutClient(connectTimeout,readWriteTimeout time.Duration) * http.Client{
return & http.Client{
Transport: & http.Transport{
Dial: TimeoutDialer(connectTimeout,readWriteTimeout),
},
}
}
----------------------------------------

2014-06-19

1. go安装包国内地址http://www.golangtc.com/download

2. 更新了Go的版本以后,就必须把pkg下面的文件全部删除

----------------------------------------

2014-11-26

1.
Q:我的程序分成很多模块,每个模块都维护一份自己的全局私有数据,在init函数里初始化这些私有数据,通过共有函数暴露出去。
我以前用其他语言编程的时候,都是定义个类,由其他调用者实例化对象再访问成员函数。
这两种编程方式,哪个更适合做个WEB开发??

A:我的程序分成很多模块,每个模块都维护一份自己的全局私有数据,在init函数里初始化这些私有数据,通过共有函数暴露出去。
我以前用其他语言编程的时候,都是定义个类,由其他调用者实例化对象再访问成员函数。
这两种编程方式,哪个更适合做个WEB开发 ??

http://thesecretlivesofdata.com/raft/
这个太赞了,如果大家对paxos感兴趣,我可以再推荐个视频
http://zhan.renren.com/chengxuyuan?gid=3891118874183979829&checked=true

还有go的一个实现,我们之前研究过,这个项目写得非常好,etcd也是基于它实现的, https://github.com/goraft/raft

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读