202108-28 可视化工具Zipkin和Jaeger对比 NEW 背景随着SOA,微服务架构及PaaS,DevOps等技术的兴起,线上问题的追踪和排查变得越来越复杂。线上业务的可观测性,得到了越来越多企业及IT从业者的重视,相应的监控方法变得体系化,逐渐出现了很多细分领域。一个典型的应用,通常有三种类型的数据需要被监控系统记录:Metric、 logging以及tracing。下面简单了解一下它们:Metrics提供进行运行时的指标信息。比如:CPU使用率,内存使用情况,GC情况,网站流量等。注意:Metrics一般指聚合信息,而不仅仅是单... Read More >
201908-17 Go bufio.Reader 结构源码详解 I NEW 你必须非常努力,才能看起来毫不费力! 微信搜索公众号[ 漫漫Coding路 ],一起From Zero To Hero ! 前言 前面的两篇文章 Go 语言 bytes.Buffer 源码详解之1,Go 语言 bytes.Buffer 源码详解 2,我们介绍了 bytes.buffer,它是一个字节缓冲区,我们可以将数据先写到到缓冲区再进行处理。但是 bytes.buffer 并没有提供对底层文件操作的相关接口(ReadFrom 会将整个文件内容写入缓冲区,不适用于大文件... Read More >
201908-17 #yyds干货盘点# 如何生成手机可识别的电话簿文件 NEW 支付宝查询号码1.支付宝好友电话号只能显示前三位跟最后两位怎么查到中间的六位数字是什么呢? 10的六次方是百万级别,这么大的值枚举是不是太大了2.借助工具生成电话号然后生成通讯录导入到手机。 如果你的通讯录有这个好友那么,支付宝会自动的显示全所有的电话号3.电话号的组成前三位代表运营商,移动,联调,电信 中间四位代表区域,北京,南京,天津(百度查号吧可查)4.java生成电话号代码public class test { public static St... Read More >
201908-17 带你十天轻松搞定 Go 微服务系列(一) 本文开始,我们会出一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建(本文) 服务拆分 用户服务 产品服务 订单服务 支付服务 RPC 服务 Auth 验证 服务监控 链路追踪 分布式事务 期望通过本系列带你在本机利用 Docker 环境利用 go-zero 快速开发一个商城系统,让你快速上手微服务。 完整示例代码:https://github.com/nivin-studio/go-zero-mall 1 环境要求 Go... Read More >
201908-17 Go语言区块链从入门到深度实战 Go语言区块链从入门到深度实战网盘地址:https://pan.baidu.com/s/1kvFouq9nUFtDlFMCAx3NyA 提取码:34je 备用地址(腾讯微云):https://share.weiyun.com/6333OHV0 提取码:fcgukt分享课程——Go语言区块链从入门到深度实战,2021新课,提供配套的源码+课件资料。体系的Go+区块链课程,内容从最基本的加密算法讲起,到区块链的原理,挖矿等,再到以太坊和farbic两个大型项目实战。带你真正弄懂... Read More >
201908-17 k8s源码学习-codec编码器 codec编码器是什么? codec编码器包含编码器和解码器,表示将数据转换为特定格式的过程,在k8s系统中主要负责将etcd中数据进行编码和解码操作 Serializer是什么? Serializer是序列化器,包含序列化和反序列化操作,序列化操作是将数据(数组,结构体,对象)转为字符串的操作,反序列化是将字符串转为数据过程 codec编码器和Serializer是什么关系? Serializer算是codec编码器的一种,代码:vendor/k8s.io/apimachi... Read More >
201908-17 #yyds干货盘点#经典的猜数字游戏 package testimport ( "fmt" "math/rand" "time")func GuessNum() { fmt.Println("随机猜数字游戏现在开始,数字在1-100之间") rand.Seed(time.Now().Unix()) num := rand.Intn(100) i:=1 var inputNum int for{ fmt.Println("请输入你猜测的数字:") fmt.Scanf("%d",&... Read More >
201908-17 #yyds干货盘点#go语言文件操作示例详解 1.golang读文件1.1 整个文件读取func readFile(){filePath := "D:/phone.txt"data,err := ioutil.ReadFile(filePath) //这里返回的data是一个字节切片if err!=nil{ fmt.Println("File reading error", err)}fmt.Println(string(data))}1.2 按行读取func readFile(){ filePath := "D:/... Read More >
201908-17 #yyds干货盘点# Go 语言入门很简单:Go 实现简易Web应用 前言截止到目前为止,几乎我们的 Go 入门文章都是在终端运行的。在终端运行的代码或者运用运用程序只适合自己在环境搭好的环境下使用。也就是说,如果用户没有安装 Go 语言环境,是根本没法运行我们所写的 Go 代码,普通用户可以说已经被互联网和万维网宠坏了,他们不想为了使用你的应用而学习使用终端。更有甚者,不想在手机上安装任何多余的客户端和应用。他们希望能在浏览器解决的就能在浏览器上解决,单击某个链接或者扫个二维码就能使用。这大概也就是小程序——即用即走、无需安装的设计理念了吧。... Read More >
201908-17 Go bufio.Reader 结构源码详解 II 你必须非常努力,才能看起来毫不费力! 微信搜索公众号[ 漫漫Coding路 ],一起From Zero To Hero ! 前言 上一篇文章 Go bufio.Reader 结构+源码详解 I,我们介绍了 bufio.Reader 的基本结构和运行原理,并介绍了如下几个重要方法: reset: 重置整个结构,相当于丢弃缓冲区的所有数据,同时将新的文件读取器作为 io.Reader rd fill:首先压缩缓冲区的无效数据,然后尝试填充缓冲区 Peek:查看部分数据,但是不... Read More >
201908-17 基于Go语言构建可落地的亿级微服务电商项目之用户服务模块 点击下载——基于Go语言构建可落地的亿级微服务电商项目之用户服务模块 提取码: 3kvn给大家分享一套课程,基于Go语言构建可落地的亿级微服务电商项目之用户服务模块,附代码、课件。本课程基于电商业务,采用前后端分离方式进行构建和讲解,后端主要包括:Gin+Go-Micro以及前端主要包括Vue。由于内容比较多,课程会分模块讲解,包括用户服务模块、商品服务模块、订单服务模块、消息服务模块、支付服务模块、后台管理系统模块、营销中心模块、物流系统模块、搜索中心模块、智能推... Read More >
201908-17 Asynq实现Go异步crontab定时任务 最近在用Go写运维平台, 需要在Go应用程序中非同步处理任务, go cron并不能满足我的需求,于是在github发现了Asynq库。 让我们来动手实验asynq的用法吧!Asynq是一个Go库,用于将任务排队并与工作者异步处理它们。它由Redis支持,设计成可扩展且易于上手。任务队列被用作跨多台机器分配工作的机制。一个系统可以由多个工作服务器和代理组成,从而实现高可用性和水平扩展。Highlevel overview of how Asynq works:Client p... Read More >
201908-17 Go 学习路线(2022) 原文链接: Go 学习路线(2022) Go 语言的发展越来越好了,很多大厂使用 Go 作为主要开发语言,也有很多人开始学习 Go,准备转 Go 开发。 那么,怎么学呢? 我发现,在互联网时代,学习的困难不是说没有资料,而是资料太多,不知道应该看哪个,从哪开始看。 所以,我整理了一份 Go 学习路线,这份学习路线不以数量取胜,努力做到精简。从基础到进阶,从理论到实战,一共包括以下几个内容: 入门教程 进阶教程 书籍推荐 Web 开发 练手项目 实用工具 技术社区 这份学习路... Read More >
201908-17 go基础(5):goroutine 并发vs并行 并发:多线程程序在 单核 上运行,同一时间只会执行一个线程。并发一般都是被内核通过时间片或者中断来控制的一旦遇到IO阻塞或者时间片用完,就会转移线程的使用权。 并行:多线程程序在 多核 上运行,在不同的cpu核心上同时执行多个线程。 go协程 有独立的栈空间 共享程序堆空间 调度由用户控制 协程是轻量的线程 go xxx开启协程,主线程退出(main方法执行完),协程没有执行完也会退出。 设置执行的cpu核心数(虚拟) 1) golan... Read More >
201908-17 #yyds干货盘点#k8s crd源码分析 crd源码分析crd源码包含两部分,api静态部分和controller动态部分api部分1 定义好runtime.Object2 注册到SchemeBuilder上3 添加到k8s的runtime.Scheme中controller部分1 定义好Reconciler逻辑2 添加到k8s的manager.Manager中具体添加逻辑如下:... Read More >
201908-17 Golang学习笔记1 一、介绍Go 编程语言是一个开源项目,旨在提高程序员的工作效率。它是一种快速、静态类型的编译语言,感觉就像是一种动态类型的解释语言。go,c,c++,java是编译型语言(java既是编译型语言,也是解释型语言),python是解释型编程语言,简单理解:编译型是全文翻译型,解释型是写一句代码翻译一句,二、Windows系统环境搭建注意:这里我用的是win10操作系统,go版本是1.14.32.1 下载go编译器 https://golang.google.cn/dl/... Read More >
201908-17 go基础(3)OOP 接口 //接口的定义 type XXX interface{ method1(args...) int method2(args...) bool } a. go的接口只能定义一些未实现的方法,不能定义属性b. 接口的设计体现了高内聚低耦合的特性。c. go中接口不需要显式实现,不用implement关键字,d. 只要结构体实现了接口的所有方法,调用接口时自动实现。 2. 类型断言 ```go //当一个变量是interface类型时,可以使用类型断言, //返一个实例和... Read More >
201908-17 #yyds干货盘点#Golang 单元测试规范 目录前言正文1. 单元测试文件命名规则2. 单元测试包命令规则3. 单元测试方法命名规则4. 单元测试方法参数结尾前言说到代码的健壮性,单元测试是少不了的,基本上所有语言都有自己的单元测试方案。工作这么多年,单元测试也没少写,像 Java、C++、Golang 都有过恶补单元测试的经历,为的就是应付各种 KPI,但是也不能说单元测试没有用,只是大多数时候不是为了单元测试而单元测试,而是为了应付检查而单元测试。上一篇文章已... Read More >
201908-17 Go 中 new 和 make 的区别 Go 中 new 和 make 都是用来内存分配和值初始化的方法。 1. new 返回类型的指针 new 的作用是计算类型大小,为其分配零值内存。 new 可以初始化任一类型。 new 返回的是指针 *T。 例如,下面的代码: t := new(T) 等同于: var temp T t := &temp 通常情况下,我们很少会用到 new。 builtin.go: // The new built-in function allocates memory. The f... Read More >