首页
学习
活动
专区
工具
TVP
发布

Golang语言社区

Golang语言社区(www.Golang.LTD)专业分享Go语言基础、提高等最新最前沿动态。
专栏成员
1903
文章
2876988
阅读量
586
订阅数
Golang 定时任务管理
本文基于Golang Crontab 实现了一个Crontab Job Manager。更加容易使用,同时也能够满足更加复杂的场景。
李海彬
2019-05-08
1.8K0
百万 Go TCP 连接的思考: epoll方式减少资源占用
前几天 Eran Yanay 在 Gophercon Israel 分享了一个讲座:Going Infinite, handling 1M websockets connections in Go
李海彬
2019-05-08
2.2K0
百万 Go TCP 连接的思考2: 百万连接的吞吐率和延迟
上一篇epoll方式减少资源占用 介绍了测试环境以及epoll方式实现百万连接的TCP服务器。这篇文章介绍百万连接服务器的几种实现方式,以及它们的吞吐率和延迟。
李海彬
2019-05-08
9230
百万 Go TCP 连接的思考: 正常连接下的吞吐率和延迟
这一篇文章介绍了I/O密集型服务器和计算密集型的服务器的两种场景,对多epoller服务器和goroutine-per-connection服务器两种服务器进行测试,连接数分别是5000、2000、1000、500、200和100。
李海彬
2019-05-08
1.1K0
百万 Go TCP 连接的思考: 正常连接下的吞吐率和延迟
这一篇文章介绍了I/O密集型服务器和计算密集型的服务器的两种场景,对多epoller服务器和goroutine-per-connection服务器两种服务器进行测试,连接数分别是5000、2000、1000、500、200和100。
李海彬
2019-05-08
7220
一个GO语言性能问题的发现和解决
事情起因于公司一位同事在内部邮件组中post了一个问题,一个使用了go1.8.3写的业务程序跑了一段时间后出现部分goroutine卡在等待一个锁ForkLock的现象,同事认为这是go1.8.3的bug,升级到 go1.10 后没有再重现。为了搞清楚这个事情,同事在 github 上发了 issue :
李海彬
2019-05-08
1.4K0
Go 1.12 正式版发布
Go 1.12 正式版发布了,距离上个正式发布版 Go 1.11 已经过去半年。跟往常一样,Go 1.12 保持了 Go 1 的兼容性承诺,预期所有 Go 程序会像之前一样正常编译。
李海彬
2019-05-08
1.1K0
Golang 多goroutine异步通知error的一种方法
作者近期在写一个项目时遇到了这样的需求:调用一个库API函数,函数内部又会拉起若干个后台goroutine。这时后台goroutine如果遇到错误想要及时通知库的使用者将不会是一件容易的事情,因为这是一个异步通知error的方法。作者最终的解决思路是:使用者另启一个goroutine监听Err channel,库后台goroutine出现的错误将直接发送至Err channel中。 作者以自己项目简单举例:
李海彬
2019-05-08
3.8K0
Go slice扩容分析之 不是double或1.25那么简单
本文主要是对go slice的扩容机制进行了一些分析。环境,64位centos的docker镜像+go1.12.1。
李海彬
2019-05-08
1.9K1
基于Golang的网络性能测量工具
Ethr: Golang based network performance measurement tool (MIT license)】
李海彬
2018-12-24
2.1K0
Golang工程经验(上)
作为一个C/C++的开发者而言,开启Golang语言开发之路是很容易的,从语法、语义上的理解到工程开发,都能够快速熟悉起来;相比C、C++,Golang语言更简洁,更容易写出高并发的服务后台系统
李海彬
2018-10-08
2K1
让事件飞 ——Linux eventfd 原理与实践
目前越来越多的应用程序采用事件驱动的方式实现功能,如何高效地利用系统资源实现通知的管理和送达就愈发变得重要起来。在Linux系统中,eventfd是一个用来通知事件的文件描述符,timerfd是的定时器事件的文件描述符。二者都是内核向用户空间的应用发送通知的机制,可以有效地被用来实现用户空间的事件/通知驱动的应用程序。
李海彬
2018-07-31
5K0
轻度Linux服务器维护人员常用的Shell脚本命令
笔者平时属于非专业运维人员,但是偶尔也需要接触一些测试服务器和个人VPS服务器。所以收集了一些常用的Shell脚本,希望跟我一样的开发人员能有一些收获。 文件操作 更改当前目录 cd 获取当前目录 pwd 删除文件/目录 rm -f or rm -rf or rmdir 创建文件 touch or cat > xxx 创建临时文件 mktemp testing.XXXXXX, 文件名末尾加6个X 创建临时目录 mktemp -d dir.XXXXXX, 目录名末尾加6个X 创建目录 mkdir 移动文件/文
李海彬
2018-03-28
2.1K0
Linux命令行:find的26个用法示例
作者 | Wray 来自 | http://www.codebelief.com/ Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我们将学习如何使用 find命令以及它所提供的选项来查找文件。 在绝大多数Linux发行版中,你都可以直接使用 find 命令而无需进行任何安装操作。如果你想在linux系统的命令行中变得特别高效,那么 find 是你必须掌握的命令之一。 find 命令的基本语法如
李海彬
2018-03-28
1.1K0
linux服务器开发三(网络编程) --二
半关闭 当TCP链接中A发送FIN请求关闭,B端回应ACK后(A端进入FIN_WAIT_2状态),B没有立即发送FIN给A时,A方处在半链接状态,此时A可以接收B发送的数据,但是A已不能再向B发送数据。 从程序的角度,可以使用API来控制实现半连接状态。 #include <sys/socket.h> int shutdown(int sockfd, int how); sockfd: 需要关闭的socket的描述符 how: 允许为shutdown操作选择以下几种方式: SHUT
李海彬
2018-03-27
2.5K0
linux服务器开发三(网络编程) --一
网络基础协议的概念什么是协议 从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。 假设,A、B双方欲传输文件。规定: 第一次,传输文件名,接收方接收到文件名,应答OK给传输方; 第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK; 第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。 由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数据传输规则。双方都按此规则发送、接收数据。A、B之间达成的这个相互遵守的规则即为
李海彬
2018-03-27
1.8K0
Go 语言系统调用简析
一、系统调用概述 系统调用是受控的内核入口,借助于这一机制,进程可以请求内核以自己的名义去执行某些动作。Linux 内核以 C 语言语法 API 接口形式(头文件),提供有一系列服务供程序访问。可以通过 man 2 syscall 查看系统调用信息。 关于系统调用,需要注意以下几点: 1、系统调用将处理器从用户态切换到核心态,以便 CPU 访问受到保护的内核内存; 2、系统调用的组成是固定的,每个系统调用都由一个唯一的数字来标识; 3、每个系统调用可辅之以一套参数,对用户控件(进程虚拟地址控件)与内核空间之
李海彬
2018-03-27
1.7K0
如何优化服务器的性能
一、通常服务器的性能会卡在三个地方: cpu 网络IO 磁盘IO 二、在优化性能的时候,首先要判断性能的瓶颈在上述的哪个地方。然后对症下药,按照下面的方法来优化: 1、提高CPU性能的方法 并发。利用多线程、进程。老的线程库效率太低,需要升级用nptl 。进(线)程数不要大于cpu个数 (请参考:http://www.ibm.com/developerworks/cn/linux/l-threading.html) 谨慎用锁。改善架构,尽量不用锁。 慎用字符串操作,比如sprintf,snprintf,因为
李海彬
2018-03-26
1.9K0
Linux服务器最最基本安全策略
1、Linux SSH 安全策略一:关闭无关端口 网络上被攻陷的大多数主机,是黑客用扫描工具大范围进行扫描而被瞄准上的。所以,为了避免被扫描到,除了必要的端口,例如 Web、 FTP、SSH 等,其他的都应关闭。值得一提的是,我强烈建议关闭 icmp 端口,并设置规则,丢弃 icmp 包。这样别人 Ping 不到你的服务 器,威胁就自然减小大半了。丢弃 icmp 包可在 iptables 中, 加入下面这样一条: -A INPUT -p icmp -j DROP 2、Linux SSH 安全策略二:更改 S
李海彬
2018-03-23
3K0
Linux下TCP最大连接数受限问题
一、 文件数限制修改 1、用户级别 查看Linux系统用户最大打开文件限制: # ulimit -n 1024 (1) vi /etc/security/limits.conf mysql soft nofile 10240 mysql hard nofile 10240 其中mysql指定了要修改哪个用户的打开文件数限制。 可用'*'号表示修改所有用户的限制;soft或hard指定要修改软限制还是硬限制;10240则指定了想要修改的新的限制值,即最大打开文件数(请注意软限制值要小于或等于硬限制)。 (
李海彬
2018-03-23
16.2K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档