最近开发的telemetry采集系统上线了。听起来高大上,简单来说就是一个grpc/udp服务端,用户的机器(路由器、交换机)将它们的各种统计数据上报采集、整理后交后端的各类AI分析系统分析。目前华为/思科的大部分设备支持。 上线之后,各类用户开始找来要求帮忙定位问题,一般是上报的数据在后端系统
一、 Go编译流程   二、过程说明 1. 词法解析     读取Go源文件,将字符序列转换为符号(token)序列,比如将“:=”转换为_Define     代码中的标识符、关键字、运算符和分隔符等字符串都将转化为对应的符号 2. 语法解析     根据Go语言规范对符号化的Go源文件进行解
概要 最近遇到一个需求,golang应用部署在远程机器,远程机器在内网,部署之后不方便再次登录此远程机器去升级。 因此,需要golang应用自动检查是否需要升级,如果需要升级,则下载二进制后自升级。 自升级库 golang自升级的库有好几个,比较之后决定采用: https://github.com
课程地址 go-class-slides/xmas-2020 at trunk · matt4biz/go-class-slides (github.com) 主讲老师 Matt Holiday 00-02-Hello Example 目录结构 L:. │ main.go │ └───hell
sort包简介 官方文档 Golang的sort包用来排序,二分查找等操作。本文主要介绍sort包里常用的函数,通过实例代码来快速学会使用sort包 sort包内置函数 sort.Ints(x []int) ints := []int{1, 4, 3, 2} fmt.Printf("%vn",
在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/bosima/ylog/releases/tag/v1.0.1 工程实践中,我们往往还需要对日志进
原创不易,求分享、求一键三连 前段时间,有个粉丝在群里问了一个问题: 今天对接一个业务团队,要我帮他导数据,这种工作又臭又烦又没成长,而且边界模糊谁做都可以,我很想拒绝他,但又怕引起对方不满,大家有什么说“不”,“拒绝”别人的技巧吗? 拒绝的本质是做抉择,底层逻辑是一本经济账,是你决定
Golang标准日志库提供的日志输出方法有Print、Fatal、Panic等,没有常见的Debug、Info、Error等日志级别,用起来不太顺手。这篇文章就来手撸一个自己的日志库,可以记录不同级别的日志。 其实对于追求简单来说,Golang标准日志库的三个输出方法也够用了,理解起来也很容易:
GO的环境配置? GOPATH GOROOT 都是干嘛用的? 配置环境跟java对比有点奇怪 https://blog.csdn.net/weixin_40563757/article/details/115476327 语言特性 协程? 建立一个协程很简单 加一个go关键字就可以 package
一、并行管道搭建: 总结下实现思路: 归并排序:进行集合元素排序(节点),并两两节点归并排序;每个节点元素要求有序的(排序),当然终点最小节点元数个数为1必是有序的; 节点:任务处理单元,归并排序节点是处理输出有序集合任务的单元;文件过大单台机排不了需要多台机集群; 根据粒度,单机版:非并发节点
在go-micro中异步消息的收发是通过Broker这个组件来完成的,底层实现有RabbitMQ、Kafka、Redis等等很多种方式,这篇文章主要介绍go-micro使用RabbitMQ收发数据的方法和原理。 Broker的核心功能 Broker的核心功能是Publish和Subscribe,也
目录需求开发的步骤linux下如何开发Go程序MAC下如何开发Go程序Golang执行流程分析编译和运行说明Go程序开发的注意事项Go语言的转义字符(escapechar)Golang开发常见的问题和解决方法注释规范的代码风格Golang 官方编程指南 需求 要求开发一个hello.go程序,可以
sqlx是Golang中的一个知名三方库,其为Go标准库database/sql提供了一组扩展支持。使用它可以方便的在数据行与Golang的结构体、映射和切片之间进行转换,从这个角度可以说它是一个ORM框架;它还封装了一系列地常用SQL操作方法,让我们用起来更爽。 sqlx实战 这里以操作MySQ
前几天有个同学想了解下如何在go-micro中做链路跟踪,这几天正好看到wrapper这块,wrapper这个东西在某些框架中也称为中间件,里边有个opentracing的插件,正好用来做链路追踪。opentracing是个规范,还需要搭配一个具体的实现,比如zipkin、jeager等,这里选择
VSCode开发环境配置 目录VSCode开发环境配置先到VSCode官网去下载适合自己系统的VSCode安装软件演示在WIndows下 安装使用演示在Linux(Ubuntu/centos)下安装vscode并使用。演示在MAC下安装vscode并使用Windows下搭建Go开发环境-安装和配置
更多干货文章,更多最新文章,欢迎到作者主博客 菜鸟厚非 一、安装 GoLang 1.1 下载 首先访问 https://go.dev/dl/ 下载 GoLang,下载完成后双击安装即可。如下: 1.2 安装 GoLang 安装的目录一定要记得,这目录后面配置 GOROOT环境变量要用。如下:
这次我们主要来说说muduo库中大量使用的回调机制。muduo主要使用的是利用Callback的方式来实现回调,首先我们在自己的EchoServer构造函数中有这样几行代码 EchoServer(EventLoop *loop, const InetAddress
这次我们开始muduo源代码的实际编写,首先我们知道muduo是LT模式,Reactor模式,下图为Reactor模式的流程图[来源1] 然后我们来看下muduo的整体架构[来源1] 首先muduo有一个主反应堆mainReactor以及几个子反应堆subReactor,其中子反应堆的个数由用