日志分析系统实践(一)

/**
  **日志监控系统
  **读取
  **解析
  **写入
 **/
package main

import (
        "strings"
        "fmt"
        "time"
)

//结构体

type LogProcess struct {
    //channels进行通信
    rc chan string
    wc chan string

    //路径和写入用户名密码
        path string
        influxDBDsn string

}

//读取模块
//  *为引用  l就可修改自身定义的一些参数
func (l *LogProcess) ReadFromFile() {
        //模拟读取到数据
        line := "hello world"
        l.rc <- line
}

//解析模块
func (l *LogProcess) Process() {
    //接收传过来的数据
    data := <-l.rc
    //转化为大写
    l.wc <- strings.ToUpper(data)

}

//写入模块
func (l *LogProcess) WriteToInfluxDB() {

        fmt.Print(<-l.wc)

}

func main()  {

         lp := &LogProcess{

                rc: make(chan string),
                wc: make(chan string),
                path: "/tmp/access.log",
                influxDBDsn: "username&password...",

         }

         //创建3个goroutine
         go lp.ReadFromFile()
         go lp.Process()
         go lp.WriteToInfluxDB()

         time.Sleep(1*time.Second)//当创建完3个程序就会自动退出  不会等待这些goroutine执行完才退出  所以让等待1秒


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值