真惨!受地摊经济的影响,连各大编程语言都摆起地摊了!

困难年年有,今年特别多。公司要做一个新的网站,可预算有限,听说为了生计,各大编程语言们都摆起了地摊儿,我决定去瞧瞧,看看能不能淘点做网站需要的东西。选择静态web服务器一进集市,这烟火气就扑面而来,平时一个个端着架子的C++、Java、Python居然能放下身段,招呼叫卖,我还是头一回见。 “老哥,需要来点什么?”,C语言给我打起了招呼。“我想要建个网站”,我回答到。“那你可算来对地方了”,C语言摊主起身说到,“建网站总得需要一个Web服务器吧,你看这里,apache web服务器,卖的可好了”...阅读全文

简书 2020-09-05 15:00:51 C语言编程学习基地

从每秒6000写请求谈起

背景每一个片子的幕后,都保留了你的观看记录,详细的记着你观看了几次,跳过了那些时长 ,据说根据这些数据可以分析出你喜欢哪个日本明星,以此来做定向推送......虽然看起来很简单的一个功能,其实涉及到的数据量非常大,极限情况下为你的用户数*视频数的乘积。那么在只有两个网站服务器,一台sqlserver的情况下,该如何面对这样不算大数据量的写请求呢?为什么说是写请求呢?因为用户观看视频的每一秒你都需要记录下来,例如:视频的第十秒用户观看了。要想把这个功能搞定,首先需要定义几个事情:记录用户观看视频情...阅读全文

Segmentfault 2020-09-10 10:32:33 菜菜

针对全球SSH服务器的新型无文件P2P僵尸网络恶意软件

image 网络安全研究人员2020年8月19日揭开了一个复杂的、多功能的P2P(peer-to-peer,P2P)僵尸网络的面纱,该僵尸网络自2020年1月以来一直在积极瞄准SSH服务器。Guardicore Labs2020年8月19日发布的一份报告显示,这个名为“FritzFrog”的是一个模块化、多线程、无文件的僵尸网络迄今已突破500多台服务器,感染了欧美知名大学和一家铁路公司。 Guardicore的Ophir Harpaz说:“凭借其分散的基础架构,它可以在所有节点之间分配控制权。...阅读全文

简书 2020-09-05 13:53:08 东塔安全学院

go语言中的slice一些使用注意事项

golang中的slice很灵活,功能也很强悍,不过对于初学者来说会容易被它坑到,此篇文章就尽量提及到使用slice的一些容易容易出错的地方,以下示例使用的golang版本为1.14.2。 作为参数传递 在go语言中的方法的参数都为值传递,切片也不例外,但是切片有一个指向数据地址的指针,所以就算是值传递,如果改变切片中的已有元素数据,也有可能影响到原有的切片 为什么是可能呢?我们来看下面的代码 func test(a []int) { a = append(a, 1) a[0] = 2 } fu...阅读全文

简书 2020-09-05 11:47:27 平山居士

go语言中的IP长度

IP类型的长度 在net包中有两种ip地址的长度常量,可以看到ipv4和ipv6两种ip地址,长度是不一样的 // IP address lengths (bytes). const ( IPv4len = 4 IPv6len = 16 ) 但是如果用到golang的net.IP的话,就算是ipv4的地址,IP的长度也可能和ipv6的一样,如下面的代码 ip := net.ParseIP("192.168.2.145"); log.Printf("%v,len %d\n",ip,len(ip))...阅读全文

简书 2020-09-05 11:47:27 平山居士

go基础——map/sync.Map

注:权作为学习笔记,基于version: 1.14 内容 一 map 1.1 数据结构 1.2 写入 1.3 查找 1.4 扩容 1.5 注意点 二 sync.map 1.1 基本使用 1.2 实现原理 1.3 注意点 一 map 1.1 数据结构 学习go中map的数据结构,可以对比着java中的hashmap实现来一起对比学习,java 中map是采用拉链罚来解决hash冲突,基本数据结构是数组+链表的hash表形式;而go map并没有采取这种形式,go中采取buckets的形式,每个bu...阅读全文

简书 2020-09-04 22:15:09 酷酷码农

MySQL Binlog 增量同步工具go-mysql-transfer实现详解

#一、 概述 工作需要研究了下阿里开源的MySQL Binlog增量订阅消费组件canal,其功能强大、运行稳定,但是有些方面不是太符合需求,主要有如下三点: 1、需要自己编写客户端来消费canal解析到的数据 2、server-client模式,需要同时部署server和client两个组件,我们的项目中有6个业务数据库要实时同步到redis,意味着要多部署12个组件,硬件和运维成本都会增加。 3、从server端到client端需要经过一次网络传输和序列化反序列化操...阅读全文

Go语言中文网 2020-09-04 20:35:39 wj596

golang如何防止意外崩溃

无论是代码运行错误由 Runtime 层抛出的 panic 崩溃,还是主动触发的 panic 崩溃,都可以配合 defer 和 recover 实现错误捕捉和恢复,让代码在发生崩溃后允许继续运行。Go 没有异常系统,其使用 panic 触发宕机类似于其他语言的抛出异常,那么 recover 的宕机恢复机制就对应 try/catch 机制。让程序在崩溃时继续执行下面的代码实现了 ProtectRun() 函数,该函数传入一个匿名函数或闭包后的执行函数,当传入函数以任何形式发生 panic 崩溃后,...阅读全文

简书 2020-09-04 18:35:29 MO_ON_e503

万级K8s集群背后etcd稳定性及性能优化实践

背景与挑战 随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群、EKS弹性集群、edge边缘计算集群、mesh服务网格、serverless knative)也越来越丰富。各类容器服务类型背后的核心都是K8s,K8s核心的存储etcd又统一由我们基于K8s构建的etcd平台进行管理。基于它我们目前管理了千级etcd集群,背后支撑了万级K8s集群。 在万级K8s集群规模下的我们如何高效保障etcd集群的...阅读全文

简书 2020-09-04 18:35:29 腾讯云原生

go 语言下gin框架学习系列之环境篇01

1:windos环境开发环境的配置 用 Gin 框架之前,需要先检查本地 Go 语言版本,目前要求 Go 1.9 及以上版本,这里我们使用最新的版本go1.15!!! 安装包下载地址:https://studygolang.com/dl/golang/go1.15.windows-amd64.msi 常规的安装软件步骤形式,指定安装目录,然后配置环境变量。 2:GOLAND-IDE新建项目 2.1 新建项目: PS:指定使用的代理 image.png 2.2 设置文件监听,便于自动导包处理: 具...阅读全文

简书 2020-09-04 12:38:10 小钟钟同学

map golang

func main() { m := make(map[int]string) //初始化一个map m[1] = "ok"//赋值 delete(m, 1)//删除m键为1的键值对 a := m fmt.Println(a) //m2 := make(map[int]map[int]string) //初始化一个二维map //m2[1][1] = "ok2" //fmt.Println(m2)//在这里m2运行不了,报错信息为panic: assignment to entry in nil...阅读全文

简书 2020-09-04 11:33:28 与子笑

函数 function golang

func main() { //B("ok", 4) s1 := []int{1, 2, 3} a, b, c := 4, 5, 6 C(s1, a, b, c) fmt.Println(s1) fmt.Println(a, b, c) d := D //这里可以直接将函数赋值到d d()//这里d就是一个函数了,要调用加上括号 e := func() { fmt.Println("匿名函数") } e() f := F(1) //这里返回的是一个匿名函数,传入参数为1作为闭包参数 g := f...阅读全文

简书 2020-09-04 11:33:28 与子笑

golang微服务框架go-zero系列-3:在go-zero中使用jwt-token鉴权实践

go-zero本身支持html模板解析,我们只需要添加url对应模板解hanlder,实现逻辑就可以了 但是winlion太懒了,我甚至想 不写任何一个和模板相关的handler 如果有新的模板,直接把模板到某个特定目录就好,不要动任何go代码 在开发环境下没有缓存,修改了模板文件无需重启 需求在这里,开撸吧 在代码开始前,你可能需要阅读 金光灿灿的Gorm V2+适合创业的golang微服务框架go-zero实战 如果对go-zero已经了解,直接跳过吧 创建项目 生成go.mod文件 以如下...阅读全文

简书 2020-09-04 10:53:58 非正式解决方案

【Grafana】编译源码

Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。目前使用grafana的公司有很多,如paypal、ebay、intel等。 下载源码 https://github.com/grafana/grafana go_git.png 下载、配置Go 下载: https://golang.google.cn/dl/ 配置: path.png 配置代理 上图配置了代理 下载gcc 运行,打包build-server: go run build.go buil...阅读全文

简书 2020-09-04 10:53:57 小王小王是大王

还在手撸Go微服务?快来试试go-zero,超乎你的想象!

Githubhttps://github.com/tal-tech/go-zero快速构建高并发微服务0. 为什么说做好微服务很难?要想做好微服务,我们需要理解和掌握的知识点非常多,从几个维度上来说:基本功能层面并发控制&限流,避免服务被突发流量击垮服务注册与服务发现,确保能够动态侦测增减的节点负载均衡,需要根据节点承受能力分发流量超时控制,避免对已超时请求做无用功熔断设计,快速失败,保障故障节点的恢复能力高阶功能层面请求认证,确保每个用户只能访问自己的数据链路追踪,用于理解整个系统和快速定位特...阅读全文

Segmentfault 2020-09-09 12:04:38 Keson