go 实现日志采集-04-如何降低 cpu 的消耗 + 模块化 + 抽象接口
cpu 空转
说明
解决方式
模块化拆分
chat
Q1: go 中 log.Println 方法如何使用占位符?
Q2-go 如何实现模块化的分工
Q3-给出一个完整的例子?
Q4-导入的时候 github.com/yourusername/blog/user,那我要如何指...
2023-09-25 13:01:55 |
Go
go 实现日志采集-03-如何实现大文件的读取?
读取
Golang 操作文件的读取的方法很多,适用的场景也是各不相同,在此我们将文件的读取分为如下几种 :
文件整体读取
文件分片读取(块级读取)
文件行级读取
1. 文件整体读取
文件整体读取就是将文件一次性读取到,理解上是将文件的内容第一次就读取完了
使用场景 :
针对小文件比较合适(大文件读取空间和时间的消耗也...
2023-09-25 13:01:55 |
Go
go 实现日志采集-02-如何实现读取日志文件?
Q1- go 如何读取特别大的日志文件
chat
在Go语言中,可以使用 bufio 包来逐行读取大型日志文件。
下面是一个示例代码:
package main
import (
"bufio"
"log"
"os"
)
func main() {
filePath := "path/to/your/log/file.log"
file, err := os.Open(...
2023-09-25 13:01:55 |
Go
go 实现日志采集-01-windows10 install go 并初步实现基本的文件监听功能
download
下载 https://go.dev/dl/go1.21.3.windows-amd64.msi
双击安装。
测试验证
>go version
go version go1.21.3 windows/amd64
goland 只能免费使用 30 天,有免费的 go 开发工具吗
是的,Go语言有一些免费的开发工具可供使用。以下是一些常用的免费Go开发工具:
...
2023-09-25 13:01:55 |
Go
go 实现日志采集-00-与 chat 沟通如何监听文件的变化?
说明
如何通过 go 实现监听文件夹的变化,增量采集变化内容?
核心思路
1)监听文件夹的内容变化
2)监听对应文件的变化内容
1. 获取文件的内容
在Go语言中,你可以使用标准库中的io/ioutil包来获取文件的内容。
以下是一个示例代码,演示了如何读取文件的内容:
package main
import (
"fmt"
"io/ioutil"
"os"
)
f...
2023-09-25 13:01:55 |
Go
spring tool-01-如何通过 spring 实现扫包?
说明
spring 的功能非常强大,如何通过 spring 扫描指定包呢?
比如我们想获取指定包下的所有枚举。
实现
package com.github.houbb.spring.tool.utils;
import com.github.houbb.heaven.util.lang.StringUtil;
import com.github.houbb.spring.tool....
2023-09-19 13:01:55 |
Monitor
cat monitor-06-cat 消息存储
项目简介
CAT(Central Application Tracking),是基于 Java 开发的分布式实时监控系统。
CAT 目前在美团点评的产品定位是应用层的统一监控组件,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等。
CAT 目前在美团点评已经基本覆盖全部业务线,每天处理的消息总量 3200 亿+,存储消息量...
2023-09-19 13:01:55 |
Monitor
cat monitor-05-cat 客户端集成实战
接入准备工作
添加 app.properties
然后你需要在你的项目中创建 src/main/resources/META-INF/app.properties 文件, 并添加如下内容:
app.name={appkey}
appkey 只能包含英文字母 (a-z, A-Z)、数字 (0-9)、下划线 (_) 和中划线 (-)
配置 client.xml
配置 /data/a...
2023-09-19 13:01:55 |
Monitor