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

过年GO HOME

过年回家喽 设计一款产品真心不易,不打个几十个来回,敲不定一个方向,还好,所有的问题都会得到解决,团队协作才是取胜的关键所在~! 技术之路漫长而寂寞 转型之路曲折而难耐 问路在何方。不是在脚下,而是在胸前。 昨日之事不可留,今日之事多烦忧。 硬件软件都有规范与设计模式,都需要经验的打磨,产品中的历练,面面俱到是不可能了。迫切需要一种思维模式,来思考,迫切需要一种环境,在规范中成长,好的经验好的管理,抓质量,严谨而缜密的思考,何时才能想德国一样严谨,何时能像日本一样精细,最适合按键盘的力度是60克 都需要无数次的实验。何时,何时,何时。这才是我想要的环境,一个作为技术人员才会有的迫切需求。 -kunka 2016-02-0...阅读全文

至联云讲解《IPFS 0.5版本改进较大,已出现系统级支持》

协议实验室于5月7~8日举办了 IPFS Pinning Submit。由于疫情原因,这次会议是线上举行。今日得闲,看了几个视频。IPFS 0.5.0版本发布,进展很大,本文做一个简单梳理。主要内容来自IPFS Project Lead - Molly Mackinlay。 IPFS生态日渐完善IPFS生态近期有比较大的发展,从内容分享、社交网络、身份服务、区块链应用、金融电子化等等各个方面。非常重要的是,目前有比较多的浏览器开始支持IPFS,包括Firefox、Chrome、Brave、Opera 等。有一些系统级的支持也出现了, 前看上图的左上角。IPFS 0.5改进巨大 IPFS 0.5版是IPFS 到目前为止最大的一次更新。这次更新主要在IPFS的效率、安全和更具弹性方面得到巨大提升...阅读全文

博文 2020-05-30 03:32:50 雨中的泡面

红黑树 PK 跳跃表 (内存占用,查询性能)1500万数据查询更新1.5万 数据,时间都在100ms以下

跳跃表和红黑树都是常用的数据结构,二者都能实现快速查询 一、跳跃表结构 从图中可以看到, 跳跃表主要由以下部分构成: 表头(head):负责维护跳跃表的节点指针。跳跃表节点:保存着元素值,以及多个层。层:保存着指向其他元素的指针。高层的指针越过的元素数量大于等于低层的指针,为了提高查找的效率,程序总是从高层先开始访问,然后随着元素值范围的缩小,慢慢降低层次。表尾:全部由 NULL 组成,表示跳跃表的末尾。 跳跃表以空间换取时间,来实现快速查找 二、红黑树 红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求: 1、节点是红色或黑色。2、根是黑色。3、所有叶子都是黑色(叶子是NIL节点)。4、每个红色节点必须有...阅读全文

博文 2019-07-12 17:32:43 单龙攀

3小时搞定数据可视化大屏,升职加薪有望了

Apsara Clouder大数据专项技能认证:使用DataV制作实时销售数据可视化大屏 该认证帮助数据分析师进行数据可视化中的大屏制作,讲解了包括制作的方法、设计原则等基础知识,并提供一个微项目,使用数加的DataV基于ABC公司的经营数据,快速构建一个高质量的实时销售大屏,服务于企业的高层决策、数据分析和业务监控。 认证流程 1购买认证 2学习课程/在线实验 3在线考试 4领取电子证书 课程学习 01 数据可视化介绍 通过学习,可以了解数据可视化的概念、分类及相关的案例。 免费试听 02 DataV介绍 通过学习,可以了解阿里云数据可视化工具DataV功能及特性。 免费试听 03 DataV基本操作...阅读全文

好玩又实用,阿里巴巴开源混沌工程工具 ChaosBlade

减少故障的最好方法就是让问题经常性的发生。在可控范围或环境下,通过不断重复失败过程,持续提升系统的容错和弹性能力。 那么,实施一次高效的混沌工程实验,需要几步呢? 答案:2 步。 ① 登陆 ChaosBlade ② 下载 release 版本,打造故障演练专属工具 高可用架构是保障服务稳定性的核心。 阿里巴巴在海量互联网服务以及历年双11场景的实践过程中,沉淀出了包括全链路压测、线上流量管控、故障演练等高可用核心技术,并通过开源和云上服务的形式对外输出,以帮助企业用户和开发者享受阿里巴巴的技术红利,提高开发效率,缩短业务的构建流程。 例如,借助阿里云性能测试 PTS,高效率构建全链路压测体系,通过开源组件 Sentinel 实现限流和降级功能。这一次,经历了 6 年时间的改进和实践,累计在线...阅读全文

博文 2019-04-03 15:34:41 阿里云科技快讯

IPFS官方周报22期:IPFS宣布进军中国来势汹汹,登上头版

星系云科技全面解读​​ ​IPFS大规模招聘了!!!官方加速了进入中国的步伐IPFS是星际文件系统一种超媒体的点对点传输协议构建分布式的全球网络将颠覆互联网(戳我详细了解什么是IPFS)一、IPFS本周聚焦1、IPFS登上HackerNews,引发热烈讨论 ​小编注:HackerNews属于全球知名的加速器公司Ycombinator——它是IPFS官方团队协议实验室的主要投资者之一。 ​2、IPFS创始人语录已经五周年了IPFS创始人Juan Benet在2013年于Github项目主页上发言:大的未来从小事开始 “big things have small beginnings”,现在正好五周年了。 图:IPFS创始人Juan Benet在2013年Github的IPFS主页发言,那时候I...阅读全文

博文 2018-12-12 20:34:44 星际头条

HTML5 websocket实验,后台为golang http包使用

package main import ( "code.google.com/p/go.net/websocket" "fmt" "log" "net/http" "html/template" ) func Echo(ws *websocket.Conn){ var err error for{ fmt.Println("start") var reply string if err = websocket.Message.Receive(ws, &reply); err != nil{ fmt.Println("can't receive") break } fmt.Println("received back from client:"+ reply) msg := "Received...阅读全文

博文 2015-06-17 20:17:25 rufidmx

好玩又实用,阿里巴巴开源混沌工程工具 ChaosBlade

减少故障的最好方法就是让问题经常性的发生。在可控范围或环境下,通过不断重复失败过程,持续提升系统的容错和弹性能力。那么,实施一次高效的混沌工程实验,需要几步呢?答案:2 步。① 登陆 ChaosBlade② 下载 release 版本,打造故障演练专属工具高可用架构是保障服务稳定性的核心。阿里巴巴在海量互联网服务以及历年双11场景的实践过程中,沉淀出了包括全链路压测、线上流量管控、故障演练等高可用核心技术,并通过开源和云上服务的形式对外输出,以帮助企业用户和开发者享受阿里巴巴的技术红利,提高开发效率,缩短业务的构建流程。例如,借助阿里云性能测试 PTS,高效率构建全链路压测体系,通过开源组件 Sentinel 实现限流和降级功能。这一次,经历了 6 年时间的改进和实践,累计在线上执行演练场景...阅读全文

博文 2019-04-03 20:34:41 独角的犀牛

Golang协程与Python协程速度比较

本实验通过抓取50页诗词并做对每一页里面的a标签对应的html页面(每页40个a标签)进行抓取,然后对html做简单解析,总共就是请求50+50*40 = 2050个页面,并解析这些页面的html内容。 1.Python 速度 总耗时:31.947秒 多次试验是在32s左右 image.png image.png image.png 源码: from bs4 import BeautifulSoup import time import aiohttp import asyncio async def do_task(domain, pageUrl): async with aiohttp.ClientSession() as session: async with session.requ...阅读全文

博文 2019-10-07 15:32:49 aside section ._1OhGeD

利用Prometheus 打造企业分布式监控平台(3)--远程读写之战

Prometheus远程读写存储是一个热门话题,已经存在了数个系统(Cortex,M3DB,InfluxDB),并且在过去的几个月中已经诞生了一些系统(Thanos,VictoriaMetrics)。每个系统都有自己的架构和不同的使用场景。 一句话:成也Prometheus,败也Prometheus。 Prometheus生态和体系太过优秀,导致抛开Prometheus,另起炉灶,重新创建一个轮子的难度非常之大。而正如第一篇文章所述,Prometheus本身tsdb的劣势,又给了诸多系统机会。 至于这场战争,谁会笑到最后,目前来看不得而知。 目前Prometheus已经支持以下第三方系统的对接: 不过良莠不齐,很多是一些实验性的适配器。当然如果你恰好运行在公有云上,而且能承受监控存储所带来的...阅读全文

博文 2020-04-20 12:32:45 iyacontrol

2018最新微服务架构实战 从0到1完完全全学习主流微服务技术栈组件及架构(视频+源码+课件)

教程目录第一模块 :微服务安全架构与实践01 | 第一模块课程介绍02 | 微服务安全要解决什么问题03 | 白话 OAuth204 | OAuth2 的正式定义05 | OAuth2 有哪些典型模式06 | OAuth2 模式该如何选型07 | Spring Security OAuth2 架构简介08 |【实验】授权码模式授权服务器09 |【实验】简化模式授权服务器10 |【实验】密码模式授权服务器11 |【实验】客户端模式授权服务器12 | 实验一扩展环节13 |【实验】Web 应用接入授权服务器14 | 实验二扩展环节15 | 什么是 JWT 令牌16 |【实验】授权服务器支持 JWT 令牌17 | 实验三扩展环节18 |【实验】Android 无线应用接入授权服务器19 |【实验】...阅读全文

博文 2019-01-15 12:34:42 java20192019

分布式服务架构下的混沌工程实践

本文来自阿里巴巴高可用架构团队高级开发工程师肖长军(花名穹谷)在 GIAC(全球互联网架构大会)上的分享,包含三部分内容:(阿里巴巴中间件公众号对话框发送“混沌工程”,获取分享PPT) 混沌工程的定义、价值、原则和流程; 混沌工程如何在企业中落地,以及 ChaosBlade 和混沌实验平台 AHAS Chaos 架构设计; 结合两个具体案例介绍了分布式服务下的混沌工程实践; 大家好,我是来自阿里的肖长军,今天给大家分享混沌工程在分布式服务架构下的具体实践。 先做个自我介绍,我来自于阿里高可用架构团队,花名穹谷,做过分布式系统设计和 APM 研发相关工作,现在专注于高可用架构和混沌工程领域,是阿里云产品 AHAS 底层技术负责人和开源项目 ChaosBlade 负责人,并且承担集团内故障演练、...阅读全文

博文 2019-07-05 16:02:57 阿里云云栖社区

IPFS周报52期:在Raspberry Pi上安装IPFS和IPFS-Cluster|点滴资讯

欢迎来到IPFS周报!星际文件系统(IPFS)是一种新的超媒体分布式协议,基于内容和身份的寻址。IPFS支持创建完全分布式应用程序。它旨在使网络更快,更安全,更开放。由于这是一个非常大的项目,我们在每周发布中会跟踪整个生态系统的开发情况。想参与其中?可以访问我们的官网:https://ipfsdrop.com/下面是上周IPFS的最新消息!最新要闻在Raspberry Pi上安装IPFS和IPFS-Cluster曾经想破解IPFS和物联网吗?Aadhi Manivannan最近写了一篇很棒的教程,介绍如何在Raspberry Pi上安装IPFS和IPFS-Cluster。查看完整教程:https://aadhi.rocks/installing-ipfs-ipfs-cluster-on-ra...阅读全文

博文 2019-08-03 22:32:39 点对点科技

golang 的 import理解实验

刚接触golang时对其import的原理很不理解,特别是其先后数序,网上查阅了写资料说的也不是很完全透彻,于是决定自己动手实验下。 这里的import情况特指 import ( "fmt" "ssss" ) ssss包中含有诺干文件(文件同直属ssss包),ssss包内平级别文件的引入顺序、变量初始顺序已经init函数执行顺序 实验中ssss包含 package main import ( "fmt" "ssss" ) func main() {} 经测试 其执行结果为 表明包内的文件是至上而下(文件名排序)的加载执行顺序...阅读全文

博文 2016-03-23 22:00:12 ivy19860929

GoLang SMTP Send Mail 发送邮件

发送邮件可以用smtp,也可以用gomail,下面是代码 1、SMTP package main import ( "fmt" "net/smtp" ) func main() { mailConn := map[string]string{ "user": "it@go.com", "pass": "password", "host": "smtp.go.com", "port": "25", } mailTo:="***@gmail.com" auth := smtp.PlainAuth("", mailConn["user"], mailConn["pass"], mailConn["host"]) err := smtp.SendMail(mailConn["host"]+":" +...阅读全文

如何使用 Go 语言搭建企业级高并发服务器?

每到节假日和过年,需要外出通行的人几乎都会遇到一个问题:抢火车票!当全国上亿人都在固定的时间段抢票,服务器动辄就要承受上百万级并发的情况时,你就会明白,一个支持高并发的服务器架构有多重要! 在后端程序员的面试中,如果你有开发高并发服务器的经验,也往往能得到比别人更多的机会。 后台开发工程师招聘要求 提到「高并发」,就不得不提天生为高并发而生的 Go 语言。今天,我们就带大家从 0 开始,用 Go 语言完成一个企业级服务器的开发。 关于实现一个企业级框架,你无需恐惧难度过高,你只需要有 Golang 的基础知识即可。我们会每次只会添加一些微小的功能,以循序渐进的曲线方式了解服务器框架的领域。 教程出自实验楼课程——《Go 并发服务器框架 Zinx 入门》,欢迎来实验楼免费学习! Go 并发服务...阅读全文

博文 2020-05-09 16:35:02 实验楼

LoRaWAN开放式实验平台

摘要: 本文介绍了基于loraserver和uDC的LoRaWAN开发平台,基于该平台用户无需投入硬件即可在设备端和服务端进行,极大的降低了入门和开发门槛。 **点此查看原文:http://click.aliyun.com/m/43348/** 本文旨在介绍AliOS Things的LoRaWAN开放式实验平台和具体使用方法,通过这些介绍用户可以在没有节点和网关,没有架设server的情况下完成对节点的远程调试,烧录,控制,数据交互等操作。 **软硬件环境** [Visual Studio Code(以下简称VSC)和AliOS Things开发环境](https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things...阅读全文

golang错误处理(实验楼)

Go中有一个名为error的内置接口,定义如下: type error interface { Error() string } Go是使用一个独立的·明确的返回值来传递错误信息的。这与使用异常的 Java 和 Ruby 以及在 C 语言中经常见到的超重的单返回值/错误值相比,Go 语言的处理方式能清楚的知道哪个函数返回了错误,并能想调用那些没有出错的函数一样调用。 看一段实验楼的代码: package main import "errors" import "fmt" // 按照惯例,错误通常是最后一个返回值并且是 `error` 类 // 型,一个内建的接口。 func f1(arg int) (int, error) { if arg == 42 { // `errors.New` 构...阅读全文

博文 2016-05-19 02:00:04 Ellon-Daris

[译] Go语言使用TCP_NODELAY控制发包流量

编写健壮且高性能的网络服务需要付出大量的努力。提高服务性能的方式有很多种,比如优化应用层的代码,更进一步,还可以看看垃圾回收器,操作系统,网络传输,以及部署我们服务的硬件是否有优化空间。 TCP/IP协议栈中的一些算法会影响到服务性能。本文将简单介绍其中的Nagle算法,与Nagle算法相关的socket选项TCP_NODELAY,以及在Go语言中如何使用它。 理论 大部分平台上的TCP实现都提供了socket选项,用于控制连接生命周期,流量控制等算法。 其中一个会对网络传输性能造成影响的算法是Nagle算法,它在Linux,macOS,Windows平台默认都是打开的。 Nagle算法的做法是:将要发送的小包合并,并延缓发送。延缓后的发送策略是,收到前一个发送出去的包的ACK确认包,或者一...阅读全文

博文 2020-01-01 15:32:39 就想叫yoko

[译] Go语言使用TCP_NODELAY控制发包流量

编写健壮且高性能的网络服务需要付出大量的努力。提高服务性能的方式有很多种,比如优化应用层的代码,更进一步,还可以看看垃圾回收器,操作系统,网络传输,以及部署我们服务的硬件是否有优化空间。 TCP/IP协议栈中的一些算法会影响到服务性能。本文将简单介绍其中的Nagle算法,与Nagle算法相关的socket选项TCP_NODELAY,以及在Go语言中如何使用它。 理论 大部分平台上的TCP实现都提供了socket选项,用于控制连接生命周期,流量控制等算法。 其中一个会对网络传输性能造成影响的算法是Nagle算法,它在Linux,macOS,Windows平台默认都是打开的。 Nagle算法的做法是:将要发送的小包合并,并延缓发送。延缓后的发送策略是,收到前一个发送出去的包的ACK确认包,或者一...阅读全文

博文 2020-01-01 10:32:39 就想叫yoko

机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码)

摘要: 背景 最近互联网上出现一个热词就是“freestyle”,源于一个比拼rap的综艺节目。在节目中需要大量考验选手的freestyle能力,freestyle指的是rapper即兴的根据一段主题讲一串rap。 背景 最近互联网上出现一个热词就是“freestyle”,源于一个比拼rap的综艺节目。在节目中需要大量考验选手的freestyle能力,freestyle指的是rapper即兴的根据一段主题讲一串rap。freestyle除了考验一个人rap的技巧,其实我觉得最难的是如何在短时间内在脑海中浮现出有韵律的歌词。 本文会介绍如何自动生成歌词,到底什么工具有这样的功效呢?答案是PAI。PAI平台是阿里云人工智能平台,在上面可以通过最简单的拖拉拽的方式,完成对各种结构...阅读全文

关于Go Module的争吵

即将发布的Go 1.11将加入对go mod的支持,解决了go一直存在的依赖管理的短板。不过这篇文章并不是要介绍go module本身,而是打算说一下go团队和社区之间的冲突——你可以从中看到go team的做事风格,也可以当做是单纯的八卦。先说一下背景。Go作为Google内部孵化的项目,其对的设计非常符合Google内部的使用场景:所有的源代码都在一个巨大的repo,依赖就是VCS里面的路径,构建的时候全部从最新源代码编译,最终只产出一个单一的可执行文件。然而并不是所有的公司都是像Google这样使用Go,Google之外的使用者们需要更好的依赖管理,主要有:依赖版本的控制,以不受依赖模块代码修改的影响,产生稳定的可预测的构建结果稳定的依赖路径,以在项目vcs地址改变或者fork vcs...阅读全文

如何备战互联网公司技术面试

作者介绍:2015 年毕业于中科院计算所,目前是阿里巴巴技术专家。主攻技术方向 Go 语言和大数据。毕业时候曾获得 BAT offer,并通过硅谷公司 Google 等技术面试。文末附联系方式,欢迎交流。 对于很多即将毕业的应届生,这是第一次踏入社会。很多同学因为毕业时候拿到不同的 offer,加入不同的公司,然后在五年之后发生了翻天覆地的变化。为什么有的人明明上学的时候平平无奇,为何工作之后如鱼得水,迅速升级,五年之内年薪百万?而有的人成绩数一数二,职场缺不见起色?这都说明了工作平台的重要性。本文就来剖析一下如何备战互联网公司的技术面试,适用于应届生以及刚毕业两到三年的职场新人。 本文提纲如下: 互联网公司技术面试主要考察什么(以面试官的角度) 我们应该如何准备面试(以学生的角度) 准备资...阅读全文

博文 2019-08-20 16:02:59 legendtkl

阿里云RDC自动化测试和持续集成服务上线

摘要: 面对繁杂机械重复的测试工作,面对测试精度、难度极高的大数据量校验、单元测试、统计测试覆盖率等工作,面对多线程的并发测试,如何使用软件或工具,帮助减少重复机械工作,将繁杂工作流程化、自动化,提高测试的准确性和测试人员的积极性。 面对繁杂机械重复的测试工作,面对测试精度、难度极高的大数据量校验、单元测试、统计测试覆盖率等工作,面对多线程的并发测试,如何使用软件或工具,帮助减少重复机械工作,将繁杂工作流程化、自动化,提高测试的准确性和测试人员的积极性。 RDC提供了完备的Pipeline, 在整个研发过程开发代码提交后自动触发单元测试, 静态代码扫描。应用发布打包,部署, 自动触发集成测试, 构成了开发和测试共同参与的一套流水线. 在持续交付的实践中, 这样的做法可以有效的加快...阅读全文

IPFS官方周报第52期:全球女性程序员来联欢!

IPFS官方周报,已经更新到第52期啦!本周看点多多,协议实验室有新职位开放,同时还鼓励全球女性程序员一起来学习IPFS教程,为职业生涯持续充电,好了先不多说,我们一起来研读吧!最新消息在Raspberry Pi上安装IPFS节点和IPFS-Cluster曾经想破解IPFS和loT?Aadhi Manivannan最近写了一篇很棒的教程,介绍如何在Raspberry Pi上安装IPFS节点和IPFS-Cluster。欢迎查看完整教程以获取更多信息。https://aadhi.rocks/installing-ipfs-ipfs-cluster-on-raspberry-pi/ IPFS大视野你在推特上关注IPFS了吗?有关新闻中IPFS的最新信息,请查看我们的 Twitter ,或者查看 A...阅读全文

博文 2019-07-31 20:32:40 引擎矿机

Apsara Clouder云计算专项技能认证:云服务器管理运维,你了解多少?

如何实现1+3+5=100种可能性么?通过学习你可以掌握如何快速地开通一台云服务器,并通过管理控制台方便地进行服务器的管理、服务器配置的变更和升级、数据的备份,并保证其可以正常运转并按业务需求随时进行配置的变更。 认证流程 1购买认证 2学习课程/在线实验 3在线考试 4领取电子证书 课程学习 01 3个理由拥抱云服务器 让你了解什么是云服务器以及使用云服务器的好处,带你开启云服务器之旅。免费试听https://edu.aliyun.com/course/58 02 1分钟快速定制ECS 让你了解如何快速地拥有一台属于自己的云服务器。开始学习https://edu.aliyun.com/course/58 03 3分钟便捷管理ECS 让你了解如何远程登录服...阅读全文

Go语言 常见数据结构性能测试

在开发过程中,我们总是在设计不同的数据结构和不同的算法对数据进行组织和存取,有些场合我们可以用硬编码或者代码生成器来生成一组函数按条件返回数据,另外一些场合我们可以把数据存储在slice当中,需要查找时就遍历查找,又或者有的场合我们可以用map存储数据,用key来索引数据。这几种数据存取方式在不同数据量的情况下,性能消耗是怎么样的呢?下面做个对比实验。 我们知道go的map数据量不管大小都能保证固定的读取时间,而slice和硬编码肯定无法应对大数据量,所以这里不做大数据量的实验,只做小数据量的实验。 实验代码(github): package labs06 import "testing" type BigStruct struct { C01 int C02 int C03 int C04...阅读全文

博文 2016-04-05 21:00:04 abv123456789

自动算法转换 Pseudo

Pseudo利用一个算法/一个简单程序,然后在Python, JavaScript, C#, Go 和 Ruby 中生成为惯用代码。 Pseudo实现两层翻译:它采取目标 语言的语法 ,可以使用Y语言的本地标准库表达出X语言的标准库的方法/API。 应用实例: * generate code for the same task/algorithm in different languages (parser generators etc) * port a library/codebase * develop core logic in one language and use it in other language codebases * write a compil...阅读全文

go语言一年的实践经验!

导读 如公司名暗示的那样,我们是开发移动应用的。在发布一个应用给公众后,我们很快意识到我们缺失一个工具来检查用户实际发生的情况以及他们是如何与应用交互的 - 如果有任何问题或者 bug 的报告,这将会相当方便。 现在有几款工具声称能在这个方面帮助开发者,但是没有一个能完全满足要求,因此我们决定自己构建一个。我们开始创建一组基础的脚本,如今它很快进化成了完整的工具,称为 Bugfender!由于这最初是一个实验,我们决定使用一种新的趋势技术。对学习以及持续教育的热爱是 Mobile Jazz 的核心价值的之一,因此我们决定使用 Go 构建。这是一个由 Google 开发的相对较新的编程语言。它是编程世界的的新玩家,已经有许多受尊敬的开发者对它赞不绝口。 一年后,这个实验变成了一个初创项目,我们...阅读全文

博文 2017-08-25 05:32:37 linuxprobe2017

HTTP协议-04.搭建HTTP实验环境

1.软件介绍 搭建一个“最小化”的环境,在这个环境里仅有HTTP协议的两个端点:请求方和应答方,去除一切多余的环节,从而可以抓住重点,快速掌握HTTP的本质。 简单说一下这个“最小化”环境用到的应用软件: Wireshark Chrome/Firefox Telnet OpenResty Wireshark是著名的网络抓包工具,能够截获在TCP/IP协议栈中传输的所有流量,并按协议类型、地址、端口等任意过滤,功能非常强大,是学习网络协议的必备工具。 它就像是网络世界里的一台“高速摄像机”,把只在一瞬间发生的网络传输过程如实地“拍摄”下来,事后再“慢速回放”,让我们能够静下心来仔细地分析那一瞬到底发生了什么。 Chrome是Google开发的浏览器,是目前的主流浏览器之一。它不仅上网方便,也是...阅读全文

博文 2019-08-28 13:34:06 王侦

TCP SYN队列与Accept队列详解

李乐   尽信书,不如无书。   纸上得来终觉浅,绝知此事要躬行。   实验现象依赖于系统(如下)以及内核参数(附录);一切以实验结果为准。 cat /proc/version Linux version 3.10.0-693.el7.x86_64 引子   线上服务(Golang)调用内网API服务(经由内网网关/Nginx转发)时,偶尔会出现"connection reset by peer"报警;为此梳理TCP RST包可能产生的几种情况: 目的主机防火墙拦截; 向已关闭的socket发送数据; 全连接队列溢出; 向已经"消逝"的连接发送数据。   情况说明:Golang服务作为客户端,内网网关Nginx作为服务端,HTTP请求默认基于长连接(连接池)。   情况1非常容易理解;同机房...阅读全文

博文 2020-04-08 22:32:42 LNMPR源码研究

GO上传图片到图床的问题~

最近在捣鼓弄个程序自动上传图到sm.ms图床。 因为是零基础的新手,所以有难题被卡住了。 ![QQ截图20171221225508.jpg](https://static.studygolang.com/171221/c128ff752bc5c6451ae4110a01ba33a5.jpg) Request Payload就是上传的文件。 自己查资料看的有部分看不懂,有的自己实验了也不行,所以只能来这里请教一下各位了~~!! 如果方便的话,可以码一下代码贴上来谢谢,或者指点一下~十分感...阅读全文

实验结果

Docs »数字图像处理 »数字图像处理-直方图均衡化 Edit on GitHub直方图均衡化直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布. 直方图均衡化就是对图像进行非线性拉伸, 重新分配图像像素值, 使一定灰度范围内的像素数量大致相同. 直方图均衡化就是把给定图像的直方图分布改变成"均匀"分布直方图分布.假设输入是一张 8 比特灰度图(即灰度级为 0 至 255), 则任意灰度级的概率函数为P(rk)=nk/n,k∈0−255其中 nk 为灰度级为 k 的像素个数, n 为总像素个数. 设转换函数为 T, 则sk=T(rk)=255∑j=0knjn代码实现import matplotlib.pyplot as plt impo...阅读全文

博文 2020-05-31 16:07:47 asialiugf

致 Go 团队的一封公开信 —— 关于 try

> polaris 注:目前关于 try 的提案被否决了,具体见:https://studygolang.com/articles/22043 *“一旦语言变得足够复杂,在其中编程更像是从无限多的特性海洋中划出一个子集,其中大部分都是我们永远不会学到的。一旦语言像是有无限多的特性,为其添加更多特性的成本就不再明显。”* - *[Mark Miler](https://medium.com/@erights/the-tragedy-of-the-common-lisp-why-large-languages-explode-4e83096239b9)* 新的关于 `try` 的提议是对语言的补充,它引入了第二种错误处理机制。它是根据 [2018 年 Go 语言调查](https://blog....阅读全文

博文 2019-07-27 20:10:14 polaris

面试官:如何开发一个万级并发的抽奖系统?我:给你五个

每个生活在互联网时代的人,都一定经历过抢红包、秒杀、集卡、双色球等抽奖活动,这类活动其实有一个共同点:就是在某个时间点会瞬间涌入大量流量,给系统造成瞬间高于平时百倍、千倍甚至几十万倍的压力。 在企业面试中,「如何设计一个支持高并发的抽奖系统」也是常见问题之一,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了,因为如果你确实有开发高并发系统的经验,那 offer 对你来说基本如探囊取物了。 提到「高并发」,就不得不提大名鼎鼎的 Go 语言了。Go 天生为高并发而生,Goroutine 和 channel 两样神器使得编写高并发的服务端软件变得相当容易。 今天就带大家用 Go 语言,实现抽奖、红包、大转盘、集福字、双色球 5 种抽奖系统! 自己建一个抽奖系统,不香吗 (下面的内容出自实验楼课...阅读全文

博文 2020-05-11 19:32:46 实验楼

Golang sync.atomic 相比 sync.Mutex 优势

sync.atomic Golang 标准库中的 sync/atomic 为开发者提供了对几种简单类型的原子操作函数。这些简单类型包括int32, int64, uint32, uint64, uintptr, unsafe.Pointer。这些原子操作函数有以下5种:增减(Add),存储(Store),载入(Load),交换(Swap),比较并交换(CompareAndSwap)。 sync.atomic 与 sync.Mutex 对比 对比实验源码: package main import ( "fmt" "sync" "sync/atomic" "time" ) func main() { test1() test2() } // sync.Mutex func test1() { v...阅读全文

博文 2020-02-24 21:32:55 WuCh1k1n

疯狂 Golang 小实验(1): 直接掌控协程生命周期.md

在 $GOROOT/src/runtime 目录下新建一个 whatever.go 文件,文件内容如下: package runtime type G = g func GetG() *G { return getg() } var l mutex func GoPark() { lock(&l) goparkunlock(&l, 0, 0, 0) } func GoReady(g *G) { goready(g, 3) } 然后我们就可以在自己的代码中疯狂地玩耍比如这样: package main import ( "runtime" "sync" "time" ) func main() { ch := make(chan bool) var g *runtime.G go func()...阅读全文

博文 2019-10-25 20:32:46 aside section._1OhGeD

分布式索引设计实验 in Go

作为一个 Go 语言门外汉,这段时间刚刚使用 Go 实现了一个分布式索引系统的仿真实验, 这篇文章就来总结一下实现过程和经验。 分布式储存的索引技术是分布式储存的一个技术重点,为了验证一种索引的设计, 自然要设计一个仿真测试来验证各项性能指标是否令人满意。 在实现系统之前,我对 Go 语言的认知水平还很初级,选择并不熟悉的 Go 语言作为实现语言的原因主要由以下几条: Go 语言有比较方便的包管理方案,譬如使用go get命令和第三方的 godep 包来实现依赖管理非常方便。在实验中因为要使用第三方的 B+ Tree 实现,因此 Go 语言成为了一个很好的选择 Go 语言有出色的编译和执行速度。作为一种编译执行的语言,既能像脚本语言那样获得这么好的编译速度, 又可以获得较好的执行效率,这对于...阅读全文

博文 2017-09-26 21:13:14 meter

Golang入坑指南

一、Go语言简介 Google是Go语言的亲爸爸,于2009年由Thompson、 Pike、 Robert Griesemer等人推出,有广大开源技术爱好者、黑客协助完成。Go语言自出生自带主角光环,除去亲爸爸是Google不说,开发者Thompson曾经开发过Unix和衍生出C语言的B语言;Pike:曾是贝尔实验室(Bell Labs)的Unix团队,和Plan 9操作系统计划的成员。他与Thompson共事多年,并共创出广泛使用的UTF-8 字元编码。 二、Go语言的优势 大多数编程语言能做到的,Go语言都能实现,Go语言中没有继承,天生支持并发,可以直接生成静态文件,除了glibc,不依赖其他库。Go语言特别适合做服务器编程、网络编程和云平台的开发。对分布式处理有着优越的表现。作为一...阅读全文

博文 2018-06-02 17:30:01 linuxlog

go 变量声明初始化、new、make

title: go 变量声明初始化、new、make date: 2019-01-04 tags: - golang - 变量声明和初始化 - new - make categories: - golang学习 变量的声明和初始化 实验一 起源于大远问,下面的代码会输出什么? type Person struct { name string age int } func main() { var p Person fmt.Println(p.age) } 按照我之前的理解,报错。因为p只是声明了,并没有初始化。 但是打印出来却是0 说明Person对象确实初始化了。 实验二 func main() { var p *Person fmt.Println(p) // fmt.Prin...阅读全文

博文 2019-01-07 00:34:48 豆瓣奶茶

企业如何善用数据,完成运营数据的平台化统计分析

DT时代,数据的重要性,相信所有企业和ITers都是深有体会的。互联网企业想要长效发展,一定离不开对于自身门户平台的管理和数据分析。 稍有规模的互联网公司,每天都会沉淀不小规模的数据,但由于很多中小企业并无专职的分析师,导致线上运营团队只能通过简单的数字报表了解整体的运营状况。然而当数据信息展示不直观时,分析效率低下,会严重影响数据的利用率和分析的有效性。 数据怎么才能直观?这样一个数据平台,看了是否很心动呢? ![image001.png](http://studygolang.qiniudn.com/170713/42809489bdcc9680c4722f4dbfc4f48d.png) 一个简洁美观的数据分析平台,对于高速发展的互...阅读全文

1 Go语言初探

GO语言简介 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。发布于2009年,目前最新版本为1.12。 Go号称21世纪的c语言,着重于分布式高并发的开发场景,针对网络编程、并发编程、分布式编程而设计,这种设计理念更适应现代软件的发展趋势,你会惊讶于Go在这些场景的开发效率和运行效率之高。 Go语言的设计理念 学习并使用一门语言,首先应该了解其设计理念,理解设计理念会帮助你更好的使用它,是不是好?它是为解决什么问题设计?这样做有什么优缺点?在实际应用中加入自己的思考对你帮助会很大。下面列出其主要设计理念: 少即是多:做特定的事情只提供一种方法,并把事情做到极致; 正交性:Go的特性是正交的,协程、管道、类型系统等特性都密切配合。 并...阅读全文

博文 2019-07-05 21:32:41 GoFuncChan

理解Golang包导入

Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。 Golang中包的定义和使用看起来十分简单: 通过package关键字定义包: package xxx 使用import关键字,导入要使用的标准库包或第三方依赖包。 import "a/b/c" import "fmt" c.Func1() fmt.Println("Hello, World") 很多Golang初学者看到上面代码,都会想当然的将import后面的"c"、"fmt"当成包名,将其与c.Func1()和 fmt.Println()中的c和fmt认作为同一个语法元...阅读全文

博文 2018-04-07 22:33:05 易野

Go语言黑魔法

今天我要教大家一些无用技能,也可以叫它奇技淫巧或者黑魔法。用得好可以提升性能,用得不好就会招来恶魔,嘿嘿。 黑魔法导论 为了让大家在学习了基础黑魔法之后能有所悟,在必要的时候能创造出本文传授之外的属于自己的魔法,这里需要先给大家打好基础。 学习Go语言黑魔法之前,需要先看清Go世界的本质,你才能获得像Neo一样的能力。 在Go语言中,Slice本质是什么呢?是一个reflect.SliceHeader结构体和这个结构体中Data字段所指向的内存。String本质是什么呢?是一个reflect.StringHeader结构体和这个结构体所指向的内存。 在Go语言中,指针的本质是什么呢?是unsafe.Pointer和uintptr。 当你清楚了它们的本质之后,你就可以随意的玩弄它们,嘿嘿嘿。 ...阅读全文

博文 2017-02-10 16:34:19 达达

gRPC在安卓(java版本)的可行性实验

最近在调研网络通信框架,libp2p跟gRPC。公司之前用的是libp2p, 但是这个框架是针对p2p 网络的,最近才从IPFS分离出来的子项目,比较新,功能还在完善中,并且功能比较全。公司项目并没有用到这么多的功能,并且担心后续维护起来成本会比较高,所以就想找替代方案。 gRPC目前看来是一个比较流行的通信框架。这几天分析了服务注册、通信、交互等流程(后续会有相关的文章)。因为后续需要支持移动端的开发,从gRPC的文档来看,已经能够支持Android(Java 跟 kotlin)、IOS(Objective-C跟 swift) 。纸上得来终觉浅,所以今天就在Android上实验了一把。 自己之前没有写过安卓,相当于从零开始,搭建环境、配置简单的demo、支持gRPC、利用gRPC跟gola...阅读全文

博文 2019-11-11 02:33:01 更多精彩内容grpc应用详解与实例剖析孤街酒客HgRPC基于Golang和Java的简单实现贾顺2019-08-19 win10系统下搭建安卓开发环境之JDK+Eclipse+ADT+SDK配置LingSmartgrpc应用详解孤街酒客H微软、谷歌、亚马

新入GO门,请教大神们关于defer的一个问题

```go func abc() interface{} { blogRows, _ := models.Db.Query("select * from blog where id=1") defer blogRows.Close() catRows, _ := models.Db.Query("select * from category where id=1") defer catRows.Close() return 1 } ``` 这样并没有实现我想要的释放掉两个资源,似乎只释放了一个。于是我又做了以下实验: ```go func abc() interface{} { blogRows, _ := models.Db.Query("select...阅读全文

Clouder专项技能认证课程:网站建设——部署与发布

课程介绍 Clouder-ACP专项技能认证:网站建设 建站认证可以帮助学员掌握如何将一个本地已经设计好的静态网站发布到Internet公共互联网,通过自己的域名让全世界的网民访问到,并且教会学员如何完成工信部的ICP备案,实现监管合规。 课程目标 • 了解建站基本步骤 • 掌握域名注册方法 • 掌握云服务器的基本使用 • 掌握网站环境搭建方法 • 掌握网站内容发布方法 • 掌握域名解析方法 • 掌握域名备案方法 适合人群 • 想在云服务器上建站的用户 课时列表 免费 课时1:课程介绍 免费 课时2:建站的基本步骤 免费 课时3:注册域名 课时4:开通云服务器 课...阅读全文

golang数据类型rune的使用

我们知道golang的数据类型有布尔型,字符串型,数字类型,派生类型。rune它属于数字类型,类似in32。 官方解释: // rune is an alias for int32 and is equivalent to int32 in all ways. It is // used, by convention, to distinguish character values from integer values. type rune = int32 翻译成中文:rune是int32的别名,在所有方面都等同于int32。它是按惯例,用于区分字符值和整数值。 看了官解我还没有了解其真正含义,rune一般用在哪?现在我通过2个例子来讲一下rune的使用。 举例说明 例子1:字符串截取 如...阅读全文

博文 2020-01-21 17:32:43 小手25

golang自定义json encode

golang json自定义encode 简介 golang原生提供了很方便的json处理,例如struct转为json时,直接在成员变量上使用 `json:"name"` 来设置json的字段。一般情况下,对于基础类型 json.Marshal(object) 都可以满足需求,但对于特殊情况就需要通过自定义的json encode解决了。 特殊情况 golang官方推荐提供的set方案是通过map来实现的 custormSet := make(map [CustormStruct] bool) custormObj := custorm.NextObj() if _,ok := custormSet[custormObj];!ok{ custormSet[custormObj] = tru...阅读全文

博文 2018-05-15 22:33:05 zhnxin

golang 扩展GC 实验

package main import ( "fmt" "runtime" "time" ) type Garbage struct { a int } func notify(f *Garbage) { stats := &runtime.MemStats{} runtime.ReadMemStats(stats) //go 标准库ReadMemStats将内存申请和分配的统计信息填写进f fmt.Println("Last GC was:", stats.LastGC) //go 标准库uint64 // 上次运行的绝对时间(纳秒) go ProduceFinalizedGarbage() } func ProduceFinalizedGarbage() { x := &Garbage{...阅读全文

博文 2018-12-19 09:20:02 stvenyin