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

NSQ学习:流控的实现

消息中间件的pull与push 消息中间件的实现无非两种套路,一种让客户端pull,典型的比如kafka便是如此,而另一种则是push,也就是让客户端不需要做任何操作,只需要做好conn便可以源源不断收到服务端的推送,典型的代表就是我们今天介绍的nsq。 pull的优势在于客户端可以自己做流控,比如客户端想什么时候pull就什么时候pull,不会因为服务端的强迫而接受,但劣势也很明显,如果服务端的生产速度很慢,客户端需要不断的轮询会让cpu处于繁忙且无用的状态。 push的优势则在于能够不受限于客户端的速度,可以让服务端更快的、批量的把数据push给客户端,因此大部分push实现的消息中间件都是属于内存型,而nsq比较特殊,它实际上是内存+磁盘的一个消息中间件。 push流的nsq如何做流控...阅读全文

博文 2019-06-11 01:02:39 imxyb

DockOne技术分享(二十三):暴走漫画的Docker实践

【编者的话】本次主要分享Docker在暴漫中的应用主要包括:开发环境的Service搭建,代码托管、持续集成、Docker镜像等若干Support服务、部分微服务以及整个数据服务系统。 暴走漫画是一家文化传媒公司。公司除了有若干视频娱乐节目,还有相应的社区网站及移动APP。流量UV是200万/天左右,PV大概是千万级别。为了更加有效地运营以及推荐用户个性化,2015年成立了数据部,负责暴漫的数据分析和数据挖掘相关服务。 暴漫没有自己的服务器,是使用的国内某云服务。暴漫的后端主要是基于Ruby开发。也有基于Go、Python的一些微服务。 Docker在暴漫中的应用主要包括: 开发环境的Service搭建 代码托管,持续集成,Docker镜像,等若干Support服务部分微服务以及整个数据服务...阅读全文

博文 2017-06-25 15:01:16 李颖杰

美美的小程序开发之路--20190331

类和继承 在面向对象的编程语言中存在“类”的概念,类就表示数据的类型,比如说People类;继承是指某个类是由另一个类派生出来的。生成的新类是子类,被继承的类是父类。 JS中的“var” 在某一类编程语言中会采用动态类型,是指编码时不要求指定变量类型,实际的变量类型由编译器/解释器在加载程序时动态分配。在JavaScript中用var声明变量,用let声明常量。 nil,null和undefined 通常声明变量的步骤为var a_varible = null;这里表示变量a_varible的值初始化时是空的,即null;在某些语言中是nil,比如Objective-C,Golang。有时声明变量也可以写成var a_varible,在JavaScript中,此时的变量值是undefined...阅读全文

博文 2019-04-01 18:34:41 原鸣清

Go的标准IDE:Acme文本编辑器

摘要Acme是一个文本编辑器。一说到文本编辑器,大家最容易想到的是Vim和Emacs之争。可是和Acme比起来,Vim和Emacs是同宗,都充分利用和依赖键盘操作;而Acme充分利用鼠标:像Emacs的组合键一样组合鼠标按键,又称“chord”。Vim和Emacs减少手在键盘和鼠标之间的移动,Acme方便迅速直接地定位,不需要按着箭头按键不放来移动光标。听说过Acme的人比较少。但是说起它的作者Rob Pike大家就知道了。Rob Pike是Unix的主要设计者,也是Unix的后继Plan 9的设计者,还是Go语言的设计者。Acme是Plan 9上的标准IDE,也是Go语言的主要设计者Rob Pike、Russ Cox等每天使用的编辑器。Russ Cox专门把Acme以及所有Plan 9的用...阅读全文

博文 2020-02-17 09:12:02 王益

Gox语言——支持跨平台原生GUI开发的轻量级全功能脚本语言 - GX1

Gox语言是以Go语言(Golang)为基础的解释型/脚本语言,它除了具有一般脚本语言所具有的编写快捷、语言简洁、易于理解等特点外,还支持其他语言所不具备的跨平台原生图形界面(GUI)开发,并且代码写起来非常舒畅。 用Gox语言编程 Gox语言的主要特点包括: 跨平台,目前支持Windows、Mac和Linux等主流平台; 完全免费和开源,使用MIT授权协议; 代码基于Go语言(Golang),但做了一些优化,因此Go语言、C语言、C++、C#、Java及类似语言的开发者编写起来几乎没有任何压力,稍加了解就可以开始编写代码; 相较于Go语言严格的语法书写要求和静态数据类型限制,Gox语言实现了动态类型,并做了许多更接近主流高级语言的改进,使得代码书写上方便了很多; 基本支持所有Go语言主要的...阅读全文

博文 2020-04-09 00:32:46 陆满庭

如何五分钟内在vs code中配置golang的开发环境

如何五分钟内在vs code中配置golang的开发环境​ 这一期呢,我们来谈一下如何在vs code中配置golang开发环境。当然,开发golang最好的工具,应该算是goland的。 如果你用过intellij,android studio, 对于goland的上手来说基本上没有任何障碍。但是美中不足的,这个工具是收费的,来自jetbrains。不过也还好,它有30天的试用。很多高手呢,直接用类似NOTEPAD这类编辑器写代码,这种都是神级人物,不在此文的涉及范围之内。我感觉思维正常的开发者还是要找好的工具,所谓工欲善其事,必先利其器嘛, 所以大部分开发者还是倾向于找一些免费的工具,vs code是其中的佼佼者。在最开始开发goland的时候,笔者在配置vs code的过程中遇到了一些...阅读全文

博文 2019-08-02 08:32:38 丁哥开讲

Go总体介绍

1 Go语言项目 1.1 来源和特点 Go语言,即Golang,是Google公司于2009年11月正式对外公开的一门编程语言,有以下特性:静态强类型语言、编译型语言、并发型语言。Go语言的语法比较接近C语言,变量声明不太一样,有垃圾回收的机制。 Go语言并不包括类似C++的枚举、异常处理、继承、泛型、断言、虚函数等功能。但是可以用一种方式去实现类似继承(接口编程),面向对象编程模式。Go语言有一些核心的特性:channel(管道),切片(slice),并发等。1.2 项目背景 Go语言于2007年由3个人发起设计,分别是罗伯特格瑞史莫,罗勃派克(Unix小组的成员),以及肯汤普逊(设计和实现了Unix系统,是C语言的前身-B语言的创造者)。 Go语言是基于Inferno(创造并支持分布式服...阅读全文

博文 2019-01-14 17:34:44 华哥Dean

使用 Go 添加 Nginx 代理

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

博文 2019-11-05 11:04:23 帅气猫咪

Golang海量用户即时通讯系统

1.实现功能-显示客户端登录菜单 client/main.go package main import ( "fmt" "os" ) var userId int var userPwd string func main() { //接收用户选择 var key int //判断是否还继续显示菜单 var loop = true for loop { fmt.Println("--------海量用户即时通讯系统--------") fmt.Println("\t\t 1.登录聊天系统") fmt.Println("\t\t 2.注册用户") fmt.Println("\t\t 3.退出系统") fmt.Println("请选择(1-3):") fmt.Scanf("%d\n", &key)...阅读全文

博文 2020-04-29 00:34:26 DoneIsBetter

Protobuf编码指南

这个文档会介绍protocol buffer的二进制有线格式(binary wire format)。你并不是需要理解这些后才能在应用里使用protocol buffer,但是当你想知道不同的protocol buffer格式是如何影响编码后的消息体的体积时,这些知识会非常有用。 一个简单的消息 假设有一个非常简单的消息定义: message Test1 { optional int32 a = 1; } 在应用中,你创建了一个Test1消息并把a设置为150。然后你把消息序列化到输出流中,如果你能查看编码后的消息,你会看到三个字节: 08 96 01 到目前为止,如此小而且都是数字-但是这是什么意思呢?继续往下看 Varint编码 要理解上面protocol buffer编码的数据,你需要...阅读全文

博文 2019-09-29 22:32:48 KevinYan

淘宝千万级并发架构的演进之路

说到千万级并发架构,经常会提到淘宝和12306,今天先谈谈淘宝的千万级并发架构演进之路,架构优化的方向以及架构设计的一般原则。1. 淘宝千万级并发架构的演进之路 初始状态:单机架构问题:随着用户数的增长,Tomcat和数据库之间竞争资源,单机性能不足以支撑业务第一次演进:tomcat与数据库分开部署问题:随着用户数的增长,并发读写数据库成为瓶颈第二次演进:引入本地缓存和分布式部署问题:缓存抗住了大部分的访问请求,随着用户数的增长,并发压力主要落在单机的Tomcat上,响应逐渐变慢第三次演进:引入反向代理实现负载均衡问题:反向代理使应用服务器可支持的并发量大大增加,但并发量的增长也意味着更多请求穿透到数据库,单机的数据库最终成为瓶颈第四次演进:数据库读写分离问题:业务逐渐变多,不同业务之间的访...阅读全文

博文 2020-04-12 19:32:48 陌若尘_c167

看了一定会收藏的海量数据实时在线分析Quick BI

课程介绍 Quick BI 专为云上用户量身打造的新一代智能BI服务平台,本课程主要介绍Quick BI的基础用法。 产品优势如下: • 无缝集成云上数据:支持多种数据源:RDS、ADS、MaxCompute;ECS自建Mysql、SqlServer;本地文件等。 • 快速搭建数据门户:拖拽式操作、强大的数据建模、丰富的可视化图表、快速搭建数据门户。 • 灵活嵌入第三方系统:仪表板可嵌入到自有系统,直接在自有系统访问报表, 并实现免登。 • 安全管控数据权限:内置组织成员管理,支持行级数据权限,满足同一份报表,不同人看不同的数据。 课程目标 • 学习阿里云Quick BI的用法 适合人群 • 大数据分析师 课时列表 ...阅读全文

快速一键部署测试环境,降低环境配置风险

摘要: 环境部署是软件测试很重要的一个环节,但也是比较耗时间的环节,很多企业经常是项目立项后,开始邮件申请服务器资源,再三催促审批通过后,进行手工部署搭建环境,然后解决各种依赖和修改各种配置文件。如何有效减少环境部署流程,提升环境搭建效率,并且保证环境配置质量安全呢? 环境部署是软件测试很重要的一个环节,但也是比较耗时间的环节,很多企业经常是项目立项后,开始邮件申请服务器资源,再三催促审批通过后,进行手工部署搭建环境,然后解决各种依赖和修改各种配置文件。如何有效减少环境部署流程,提升环境搭建效率,并且保证环境配置质量安全呢?针对这些需求,新型一站式研发效能平台,云效的环境管理系统提供了解决方案。 首先,解决测试服务器资源管理的问题。 云效平台统一对测试服务器资源(包含:测试服务...阅读全文

go gl 彩色的三角形

go 彩色三角形 之前在网上想找一个能渲染颜色的go gl图形编程例子,,找了半天都是白色的三角形。。。于是自己研究了半天,大概是研究出来的样子,记录到这里来分享一下。 作者用的是mac开发的,windows的go gl需要麻烦一点的操作,读者自行裁决吧。 配置 1.go下载 2.配置mac go环境请自行搜索一下。 3.IDE。作者用的是goland,破解的话,也请自行搜索一下。 go开发包 由于国内的墙比较严重,建议用github上的镜像下载,然后本地配置一下。 借助github的golang下载 下载下来之后把包拖动到指定的目录,比如golang.org中: 配置 核心开发包 "github.com/go-gl/gl/v4.1-core/gl" "github.com/go-gl/gl...阅读全文

博文 2019-02-08 16:34:43 不求甚解_4703

RabbitMQ系列笔记广播模式和路由模式

导语 上一节介绍了简单的工作模式,即一个队列可以被多个消费者进行消费,只有一条消息被送到消费者,采用公平调度的方式,在以往的例子中似乎我们还没用到交换器进行发送消息,我们都知道,往队列里发送消息,是需要用交换器进行分发的消息的,为什么我们没有申请交换器仍然可以发送消息呢?因为在RabbitMQ服务器中,如果不申请交换器,服务器会使用默认的交换器,所以说,交换器在发送消息的时候必不可少,今天我们学习两种交换器分别为fanout(扇形交换器)和direct(直连交换器) 扇形交换器(日志记录器) 特性 分发消息到与之绑定的所有队列,发送消息到交换器时会忽略routing key(路由),我们可以称它为广播消息。 生产者 申请交换器 指定交换器的名字 指定交换器的类型 err = ch.Excha...阅读全文

博文 2019-08-10 16:32:47 陌无崖

go学习笔记-init函数执行顺序分析

`golang`中有个神奇的函数`init`,该函数会在所有程序执行开始前被调用,每个包可以包含多个`init`函数,所有被编辑器识别到的`init`函数都会在`main`函数执行前被调用。通常被用来注册一个程序需要使用的依赖,如`mysql`注册,配置文件加载等。 ###### 在main包的使用 ``` package main import "fmt" func main() { fmt.Println("这里是mian") } func init() { fmt.Println("这里是Init1") } func init() { fmt.Println("这里是Init2") } //输出结果 这里是Init1 这里是Init2 这里是main ``` 一个很简单的示例,可以看到...阅读全文

博文 2020-01-14 22:48:05 rundaisc

Go 实战丨微信公众号接入及用户消息处理

使用 Go 语言的 Web 框架 Gin 进行微信公众号接入,并实现对微信消息的接收以及回复处理。 同时借助 nginx 代理服务器对代理的端口号以及 URI 进行优化处理。 在文章末尾给出该 Demo 的项目地址。 目录 公众号接入 消息接收 消息回复 使用 ngxin 代理服务器 小结 公众号接入 这里使用微信公众平台提供的接口测试号用于开发使用,接口测试号申请。 公众号的接入主要有两个步骤,微信公众平台接入指南: 填写服务器配置 验证服务器地址的有效性 第一步需要配置服务器的 URL 地址,并且必须以 http:// 或 https:// 开头,分别支持 80 端口和 443 端口;还需配置一个 3 ~ 32 位字符的 Token,用于消息验证。 第二步用于验证消息来源的正确性,当第一...阅读全文

博文 2020-04-04 20:34:23 ColeLie

Go语言实现实战“云存储”系统

课程介绍:云程序员,微服务,是最近几年一直被频频提到的热门词汇。本课程将通过Golang来实现一个支持断点续传和秒传的分布式云存储服务系统。课程中老师将手把手带你从快速构建“云存储”原型系统,到分块上传,到搭建访问阿里云,最后进行系统的微服务化,让你快速掌握架构传输性能和稳定性的优化过程,秒变云时代中第一代“云程序员”。 课程截图: 如果觉得可以,可以添加威信:sulindong1993,其中Price is 5...阅读全文

博文 2019-06-24 20:02:42 IT资源信息

解析器眼中的 Go 语言

Home Menu 解析器眼中的 Go 语言 02 Feb 2019 Golang Go实现原理 编译原理 词法分析 语法分析 抽象语法树 词法分析 lex Go 语法分析 文法 分析方法 自顶向下 自底向上 Lookahead Go 辅助方法 节点 总结 相关文章 Reference 代码其实就是按照约定格式编写的一堆字符串,工程师可以在脑内对语言的源代码进行编译并运行目标程序,这是因为经过训练的软件工程师能够对本来无意义的字符串进行分组和分析,按照约定的语法来理解源代码。既然工程师能够按照一定的方式理解和编译 Go 语言的源代码,那么我们如何模拟人理解源代码的方式构建一个能够分析编程语言代码的程序呢。 我们在这一节中将介绍词法分析和语法分析这两个非常重要的编译过程,这两个过程的主要作用就...阅读全文

博文 2019-03-19 12:20:08 draveness.me

服务端渲染

1.什么是服务器端渲染和客户端渲染? 互联网早期,用户使用浏览器浏览的都是一些没有复杂逻辑的、简单的页面,这些页面都是在后端将html拼接好的然后将之返回给前端完整的html文件,浏览器拿到这个html文件之后就可以直接解析展示了,而这也就是所谓的服务器端渲染了。而随着前端页面的复杂性提高,前端就不仅仅是普通的页面展示了,而可能添加了更多功能性的组件,复杂性更大,另外,彼时ajax的兴起,使得业界就开始推崇前后端分离的开发模式,即后端不提供完整的html页面,而是提供一些api使得前端可以获取到json数据,然后前端拿到json数据之后再在前端进行html页面的拼接,然后展示在浏览器上,这就是所谓的客户端渲染了,这样前端就可以专注UI的开发,后端专注于逻辑的开发。 2.两者本质的区别是什么?...阅读全文

Go 每日一库之 carbon

简介 一线开发人员每天都要使用日期和时间相关的功能,各种定时器,活动时间处理等。标准库time使用起来不太灵活,特别是日期时间的创建和运算。carbon库是一个时间扩展库,基于 PHP 的carbon库编写。提供易于使用的接口。本文就来介绍一下这个库。 快速使用 第三方库需要先安装: $ go get github.com/uniplaces/carbon 后使用: package main import ( "fmt" "time" "github.com/uniplaces/carbon" ) func main() { fmt.Printf("Right now is %s\n", carbon.Now().DateTimeString()) today, _ := carbon.No...阅读全文

博文 2020-02-15 15:32:40 darjun

重磅干货免费下载!阿里云RDS团队论文被数据库顶会SIGMOD 2018收录

摘要: 来自阿里云RDS团队的论文“**TcpRT: Instrument and Diagnostic Analysis System for Service Quality of Cloud Databases at Massive Scale in Real-time” (TcpRT:面向大规模海量云数据库的服务质量实时采集与诊断系统)**被数据库顶会SIGMOD 2018收录。 ACM SIGMOD数据管理国际会议是由美国计算机协会(ACM) 数据管理专业委员会(SIGMOD)发起、在数据库领域具有最高学术地位的国际性学术会议。 SIGMOD和另外两大数据库会议VLDB、ICDE构成了数据库领域的三个顶级会议。相对而言,SIGMOD比另外两个会议的含金量更高,被录取的难度...阅读全文

# golang JWT的简单使用

golang JWT的简单使用 JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。 JWT和session有所不同,session需要在服务器端生成,服务器保存session,只返回给客户端sessionid,客户端下次请求时带上sessionid即可。因为session是储存在服务器中,有多台服务器时会出现一些麻烦,需要同步多台主机的信息,不然会出现在请求A服务器时能获取信息,但是请求B服务器身份信息无法通过。JWT能很好的解决这个问题,服务器端不用保存jwt,只需要保存加密用的secret,在用户登录时将jwt加密生成并发送给客户端,由客户端存储,以后客户端的请求带上,由...阅读全文

博文 2019-02-05 17:34:41 w85278161

【分布式架构】企业级分布式应用服务EDAS使用攻略免费分享

课程介绍 本课程主要讲解企业级分布式应用服务EDAS相关技术和使用方法。 企业级分布式应用服务(EDAS,Enterprise Distributed Application Service)是企业级互联网架构解决方案的核心产品,充分利用阿里云现有资源管理和服务体系,引入中间件成熟的整套分布式计算框架(包括分布式服务化框架、服务治理、运维管控、链路追踪和稳定性组件等),以应用为中心,帮助企业级客户轻松构建并托管分布式应用服务体系。 课程目标 掌握企业级分布式应用服务EDAS的使用 适合人群 云计算开发者 课时列表 • 第1 章 : EDAS介绍 • 课时1:EDAS介绍 • 第2 章 : EDAS...阅读全文

问个游览器缓存问题

~~~ 用户中心URL都是验证session存在不 ,不存在返回登录页面 如果此时程序重启了,当再次访问URL,URL就会自动退出【此时游览器也记录了缓存】,当重新登录 这个页面始终无法访问,必须清理本地缓存才行,, 这个如何解决不让进游览器缓存? 是不是要设置头文件之类的 ~~...阅读全文

Golang cookie使用

cookie设置和获取使用方法 func HttpCookies() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { cName := http.Cookie{ Name: "name", // cookie的名称 Value: "golang", // cookie名称对应的值 Path: "/", // Domain: "", // cookie的作用域 Expires: time.Time{}, // cookie的过期时间 RawExpires: "", MaxAge: 0, // 设置过期时间,对应浏览器cookie的MaxAge属性 Secure: false, // 设置Secure属性...阅读全文

博文 2020-03-29 01:33:08 是个懒人

云服务器 ECS弹性变配能力总览

摘要: 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,充分的助您降低 IT 成本,提升运维效率,使您更专注于自己核心业务创新。它的一个重要优势就是弹性计算,可以在数分钟内创建数千台的云服务器来应对您的业务压力,方便您根据自己的业务的需求从水平和垂直两个维度进行管理。 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,充分的助您降低 IT 成本,提升运维效率,使您更专注于自己核心业务创新。它的一个重要优势就是弹性计算,可以在数分钟内创建数千台的云服务器来应对您的业务压力,方便您根据自己的业务的需求从水平和垂直两个维度进行管理。 下面我们将着重介绍下目前云服务器的弹性能力,也许有您所不知道但是...阅读全文

分享一个让我进入阿里中间件的个人项目

作者: vangoleo官网: http://www.vangoleo.com/iris-java/ 背景 时光荏苒,进入阿里中间件团队已经快两年时间了。这期间,有幸参与了第四届中间件性能挑战赛的题目组,筹备了以“Dubbo Mesh”为主题的初赛题;和团队一起开展了Dubbo线下meetup活动;将阿里多年双11积累的中间件基础设施最佳实践和方法论,通过阿里云的商业化产品,为广大开发者和企业提供服务。很庆幸能有这样一段难忘的经历。回想起来,能进入中间件团队,和我当初的一个Github项目还有关系。今天把该项目分享给大家。 Q: 什么是中间件团队?A: 阿里巴巴中间件技术部,是世界顶尖的Java技术团队之一,起源于淘宝平台架构组,是跟随着阿里电商业务和双十一成长起来的技术团队,解决复杂的业务...阅读全文

博文 2019-11-12 10:02:43 vangoleo

零基础学习php——入门篇

在Web开发的世界里除了PHP之外还有很多编程语言可供挑选,主流的有Node.js、Python、Java,.NET、Golang,Ruby。其中使用最多的是PHP,特别是在中小企业、互联网创业公司。 在说编程语言之前,我们先了解一下网站是如何在浏览器打开的: 359b033b5bb5c9ea6434d6a7d339b6003bf3b3ab.png 1. 输入地址 向浏览器输入一个网址 2. DNS解析 请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。 如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请...阅读全文

博文 2019-08-20 16:02:48 胡木木OvO

如何设计一个微型分布式架构?

序言(初衷) 设计该系统初衷是基于描绘业务(或机器集群)存储模型,分析代理缓存服务器磁盘存储与回源率的关系。系统意义是在腾讯云成本优化过程中,量化指导机房设备扩容。前半部分是介绍背景,对CDN缓存模型做一些理论思考。后半部分会实际操作搭建一个微型但是五脏俱全的分布式通用系统架构,最后赋予该系统一些跟背景相关的功能,解决成本优化中遇到的实际问题。缓存服务器存储模型架构(背景): 图1 存储模型腾讯CDN的线上路由是用户à分布于各地区各运营商的OC->SOC->SMid->源站。各个层级节点部署的都是缓存服务器。来自用户的部分请求流量命中服务器,另一部分产生回源流量。随着业务带宽自然增长,用户端带宽增长,假设业务回源率不变的情况下,磁盘缓存淘汰更新(淘汰)速率变快,表现为以下业务瓶颈(iowai...阅读全文

博文 2018-09-28 18:34:42 Java架构007

js 使用golang模板拼接HTML代码

#### *

js 使用golang模板拼接HTML代码* - 功能: post 从服务端获取一个json数据,直接拼接HTML 感觉太乱。希望用go 的HTML模板实现HTML标签和数据的拼接并显示到对应的位置。 - 存在问题:我理解的模板是在服务端返回HTML页面时起作用,现在需要发送post请求获得数据之后再使用模板,初始化页面时模板不执行。需要怎么做...阅读全文

博文 2018-12-12 11:46:40 specialgolanger

阿里云携领先SDN能力,亮相全球网络技术盛会ONS

摘要: 网络通讯届盛会Open Network Summit(ONS)于3月29日落下了帷幕。作为开源网络届首屈一指的世界性大会,今年在洛杉矶举办的ONSNA2018已经是第七年举办了。参会者囊括了来自电信运营商、云服务提供商、网络设备制造商、芯片厂商、网络软件开发商、研究学者等众多网络生态参与者,共吸引了超过2000名业界专家和从业人员参加。 网络通讯届盛会Open Network Summit(ONS)于3月29日落下了帷幕。作为开源网络届首屈一指的世界性大会,今年在洛杉矶举办的ONSNA2018已经是第七年举办了。参会者囊括了来自电信运营商、云服务提供商、网络设备制造商、芯片厂商、网络软件开发商、研究学者等众多网络生态参与者,共吸引了超过2000名业界专家和从业人员参加。知名IT...阅读全文

2018-07-30

build-web-application-with-golang1. web工作方式2. DNS工作原理(1)先看hosts(2)在看本地DNS解析器缓存,是否有这个网址映射关系(3)首先会找本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。(4)如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)...阅读全文

博文 2018-08-02 12:34:51 温暖之隔

新梦想干货——那些关于软件工程的“宗教”辩论

引言:开发者的世界里总是充斥着各种各样的争论,从编程语言、框架甚至到编辑器、Windows/iOS系统,都可以成为争得面红耳赤的“宗教战争”。本文作者针对软件开发行业的辩论进行了深入研究,探讨了这些辩论背后的本质,解释了他认为好的技术辩论应该是怎样的。“Python的速度不行。”“都9102年了,还有人不用Java虚拟机(Scala、Clojure)构建Web App吗?”“Mong是最好的数据库;SQL很差劲,SQL数据库扩展性不行。任何现代工程师都必须熟悉Mongo。”“Golang糟透了(因为没有泛型);谁用谁白痴。”在我刚刚成为软件工程师那会,最令我震惊的就是,同行们居然用“宗教战争”这样的字眼来形容工程层面的争议。有这么严重吗?干嘛那么大火气?带着好奇心,我希望弄清为什么工程技术辩...阅读全文

博文 2019-10-29 21:32:59 aside section._1OhGeD

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 编译器内部知识:向 Go 添加新语句-第 2 部分

这是探讨 Go 编译器两篇文章的最后一篇。在[第 1 部分中](https://studygolang.com/articles/25101),我们通过构建自定义的编译器,向 Go 语言添加了一条新语句。为此,我们按照此图介绍了编译器的前五个阶段: ![go compiler flow](https://raw.githubusercontent.com/studygolang/gctt-images/master/compiler-internal/go-compiler-flow.png) 在"rewrite AST"阶段前,我们实现了 until 到 for 的转换;具体来说,在[gc/walk.go](https://github.com/golang/go/blob/master/...阅读全文

博文 2020-03-12 22:40:36 polaris

WebSocket+SLB(负载均衡)会话保持解决重连问题

写在最前面:由于现在游戏基本上采用全球大区的模式,全球玩家在同一个大区进行游戏,传统的单服模式已经不能够满足当前的服务需求,所以现在游戏服务器都在往微服务架构发展。当前我们游戏也是利用微服务架构来实现全球玩家同服游戏。 玩家每次断线(包括切换网络/超时断线)后应该会重新连接服务器,重连成功的话可以继续当前情景继续游戏,但是之前写的底层重连机制一直不能生效,导致每次玩家断线后重连都失败,要从账号登陆开始重新登陆,该文章写在已经定位了重连问题是由SLB引起后,提出的解决方案。 当前游戏架构: 客户端从一个Account服务器登陆并且拉取游戏服务器的所有SLB地址 客户端ping所有SLB地址,选择延迟最低的一个SLB进行连接 客户端连接SLB,SLB将连接转发到一个网关节点建立连接 问题: 每次...阅读全文

博文 2020-05-17 22:32:45 神奇的哈密瓜_35b8

官方博文:2019 年 Go 开发者调查结果

点击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习 Go 语言Todd Kulesza 2020-04-20概览、感谢 首先,我要非常感谢参与本次调查的数千名 Go 开发人员。在 2019 年,我们收到了 10,975 份回复,几乎是去年的两倍![1]我要代表团队的其他成员,充分强调您花时间和精力向我们介绍您在 Go 方面的经验,我们对此深表感谢。谢谢!关于前几年调查说明 敏锐的读者可能会注意到,我们每年的比较与我们过去分享的数字不太吻合。原因是从 2016 年至 2018 年,我们使用开始调查的总人数作为分母来计算每个问题的百分比。尽管这很不错而且很一致,但它忽略了并非每个人都会完成调查的事实——多达 40% 的参与者在到达最后一页之前就停止了调查,这意味着在调查的后面出现的...阅读全文

博文 2020-04-26 10:36:01 Go语言中文网

搭建网站,和把大象装冰箱一样简单?

摘要: 一个流行了很多年的梗,至今仍然热度不减,当年本山大叔在春晚上说出这个段子时,不知是不是预料到了很多人这辈子都指着这个笑话活着了。 一个流行了很多年的梗,至今仍然热度不减,当年本山大叔在春晚上说出这个段子时,不知是不是预料到了很多人这辈子都指着这个笑话活着了。 Q:“要把大象装冰箱,总共分几步?” A:“分三步。1. 把冰箱门打开;2.把大象放进冰箱;3.把冰箱门关上”。 一个听上去很困难的事情,在脑筋急转弯的世界里,不用考虑它的实现成本和实现可行性,其实只需分三步即可完成。其实生活中的很多事,换个角度,也是如此。 搭建网站,这个词,很多人都听说过,但是当你还未了解建站的具体步骤时,你会觉得这件事好难,没有技术底子很难实现。其实,当你勇敢的打开冰箱门以后,你会发现...阅读全文

详解SLB、EIP、NAT网关之间区别, 合理选择云上公网入口

摘要: 概述 阿里云的公网入口产品共有三个,SLB、EIP、NAT网关,这几个产品都可以作为云上资源的公网入口,他们之间有何区别,又分别应该在什么场景下使用呢? **点此查看原文:http://click.aliyun.com/m/41840/** **开始** 阿里云的公网入口产品共有三个,SLB、EIP、NAT网关,这几个产品都可以作为云上资源的公网入口,他们之间有何区别,又分别应该在什么场景下使用呢? 概念 -- **负载均衡SLB** **对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。** 可见云计算中的负载均衡除了通过流量分发让后端的服务器负载均衡,还有两个重...阅读全文

gRPC负载均衡(自定义负载均衡策略)

### 前言 上篇文章介绍了如何实现gRPC负载均衡,但目前官方只提供了`pick_first`和`round_robin`两种负载均衡策略,轮询法`round_robin`不能满足因服务器配置不同而承担不同负载量,这篇文章将介绍如何实现自定义负载均衡策略--`加权随机法`。 `加权随机法`可以根据服务器的处理能力而分配不同的权重,从而实现处理能力高的服务器可承担更多的请求,处理能力低的服务器少承担请求。 ### 自定义负载均衡策略 gRPC提供了`V2PickerBuilder`和`V2Picker`接口让我们实现自己的负载均衡策略。 ```go type V2PickerBuilder interface { Build(info PickerBuildInfo) balancer.V2...阅读全文

博文 2020-05-20 17:12:40 939496716

[系列] - 使用 go modules 包管理工具(一)

概述 我想实现一个开箱即用的 API 框架的轮子,这个轮子是基于 Gin 基础上开发的。 为什么是开箱即用,它会集成哪些功能? 以上功能点,都是常用的,后期可能还会增加。 废话不多说,咱们开始吧。 创建一个项目,咱们首先要考虑一个依赖包的管理工具。 常见的包管理有,dep、go vendor、glide、go modules 等。 最开始,使用过 dep,当时被朋友 diss 了,推荐我使用 go modules 。 现在来说一下 go modules ,这个是随着 Go 1.11 的发布和我们见面的,这是官方提倡的新的包管理。 说一个环境变量:GO111MODULE,默认值为 auto 。 当项目中有 go.mod 时,使用 go modules 管理,反之使用 旧的 GOPATH 和 v...阅读全文

博文 2019-08-27 11:34:29 訢亮

Go语言实用技巧

基础代码说明 time类:系统的时间类 time.second/minute/hour time.Duration能够对时间进行转换,默认开始是1ns,换算单位是1ms = 1000µs = 1000,000ns,往上到时间的那一层也能正常转换 time类能够自动转换时间,通用的是nuix的时间格式,不需要手动处理时间格式 strings类提供的split方法能够拆分字符串为字符串数组 golang的post的请求和接收,并对数据进行处理 post的发送 func HttpServerSender(data data.SenderData) { jsonss,err :=json.Marshal(data) if err != nil { fmt.Println(err.Error() ) ...阅读全文

博文 2019-01-02 12:34:45 木鱼cavalry

Go36-46-访问网络服务(socket)

访问网络服务 这篇开始讲网络编程。不过网络编程的内容过于庞大,这里主要讲socket。而socket可以讲的东西也太多了,因此,这里只围绕Go语言介绍一些它的基础知识。 IPC方法 所谓socket,是一种IPC(Inter-Process Communication)方法,可以被翻译为进程间通信。顾名思义,IPC这个概念(或者说规范)主要定义的是多个进程之间,相互通信的方法。这些方法主要包括: 系统信号(signal),os包和os/signal包有针对系统信号的API 管道(pipe),os.Pipe函数可以创建命名管道,os/exec包支持另一类管道:匿名管道 套接字(socket),net包中提供支持 文件锁(file lock) 消息队列(message queue) 信号灯(se...阅读全文

博文 2019-02-09 08:35:10 骑士救兵

如何学习服务端开发—以代码工人的视角

理解并关注业务 无论是什么样的开发内容,都请将业务放在重要的位置。时常有人问我,我应该服务端 C++开发的职位,结果居然让我写业务,我听了也很是不解,沟通之下我才明白,原来他对于服务端开的理解就是网络,所以首先要明白服务端开发是什么,网络只占一部分,而且这一部分在产品开动之初,一般都是骨干搭建了,后面只会是慢慢地调整与生成的过程,初入团队能力还没有得到证明是很难有这样的机会的,而业务是产品与项目生成的根本,自然是重头。 工具偏好 进了团队,应该的是 C++,结果让用 Node.js ,或者让用 Go,或者是 Python,很多人和我反应自己无法接受,其实我们应该是变化的眼光去看事物,服务器端的开发,也是讲场景,讲业务性质,也要看交付时间,综合来进行项目的技术选项是必然的,特别是在小公司小企业...阅读全文

博文 2017-09-02 09:34:46 Lispre

金融安全资讯精选 2017年第四期:全球安全支出走高,外国银行再遭黑客袭击

摘要: Gartner:全球安全支出2017年可达864亿美元;匈牙利三大国有银行连遭黑客网络钓鱼攻击;开源CMS Drupal 8发布更新修复多处高危漏洞补丁;IDC云安全评估: 阿里云为最重视安全建设的云服务提供商 3d4fd1956f53474cc9939731e71719b550aad415 【金融安全动态】 Gartner:全球安全支出2017年可达864亿美元。点击查看原文 概要:Gartner认为全球安全支出增加有三个原因数据泄露事件、勒索攻击加剧、企业内部对应用程序安全需求增强。Gartner也预测2018年的支出预计将达930亿美元,安全服务将继续成为增长最快的部门,特别是IT外包,咨询和实施...阅读全文

一款属于自己的笔记本【vue+gin+elementUI前后端分离开发部署开源项目】

# 前言 **我为什么要写一个个人的云笔记?** (⊙o⊙)…额额额😄。。。这件事儿还得从一只蝙蝠说起...... 好了_(:з」∠)_不想扯了...... **~~有以下几个原因:~~** 1. 突然发现有道云笔记不是自己的 我的隐私都在别人的库里😱。并且一直想有一个自己的云笔记。 2. 打开全球最大同性交友平台gay....嗯嗯嗯...错了,Github。发现开源的云笔记软件很少几乎没有 3. 想做一个前后端分离的项目,并且想开源分享给大家。 4. 一只蝙蝠的传说。(大家应该清楚🙃) --- 以上就是我一时冲动,不对。。。一时兴起,所以抄起我的小本本就开干!!来一场说撸就撸的guan......额不对,说撸就撸的码!(时不时就开车。老司机快上车!!🚜)

# 用到的相关技...阅读全文

博文 2020-03-02 23:07:02 biningo

centos7下搭建ngrok服务器进行内网穿透

以下以阿里云centos7服务器为例,并且已经安装好git、golang 一、下载ngrok cd /data/wwwroot git clone https://github.com/tutumcloud/ngrok.git 二、生成ngrok使用的https证书 cd /data/wwwroot/ngrok NGROK_DOMAIN="ngrok.test.com" openssl genrsa -out base.key 2048 openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem openssl genrsa -out server.key 20...阅读全文

博文 2018-12-10 16:34:45 王乐城愚人云端