gos-log —— 基于 Go 语言的日志检索系统
gos-log 基于Go语言的轻量级高性能的大日志检索系统
开源地址
gos-log
https://gitee.com/dianjiu/gos-log
https://github.com/dianjiu/gos-log
gos-log-vue
https://gitee.com/dianjiu/gos-log-vue
https://github.com/dianjiu/gos-log-vue
演示地址
账号:admin
密码:admin
演示截图
登陆页
客户端
项目管理
日志查找
项目构建
gos-log
# 进入go工作空间 cd ~/codes/go/src # 配置go国内代理 sudo vim ~/.bash_profile # 新增如下内容 export GOPATH=/Users/dianjiu/Codes/go export GOROOT=/usr/local/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT/bin:$GOPATH/bin export GOPROXY=https://goproxy.cn export GO111MODULE=on # 使配置生效 source ~/.bash_profile # 安装beego依赖 go get github.com/astaxie/beego go get github.com/beego/bee # 克隆项目 git clone https://github.com/dianjiu/gos-log.git # 分别进入项目目录 cd gos-log/logs #进入服务端 cd gos-log/logc #进入客户端 # 启动服务 bee run
gos-log-vue
# 克隆项目 git clone https://github.com/dianjiu/gos-log-vue.git # 进入项目目录 cd gos-log-vue # 安装依赖 yarn install # 启动服务 yarn run dev
项目部署
gos-log
# 打包服务端 cd gos-log/logs bee pack -be GOOS=linux # 打包客户端 cd gos-log/logc bee pack -be GOOS=linux # 准备数据库 见gos-log项目下的sql文件夹
gos-log-logs
# 解压缩 tar -zxf logs.tar.gz -C ./ # 授权 chmod 777 logs # 修改数据库配置 sudo vim conf/app.conf # 启动 nohup ./logs >> logs.log &
gos-log-logc
# 解压缩 tar -zxf logc.tar.gz -C ./ # 授权 chmod 777 logc # 启动 nohup ./logc >> logc.log &
gos-log-vue
# 打包构建 yarn run build # 把dist目录下的文件拿到服务器部署即可 # nginx部署如下nginx.conf server { listen 2022; server_name localhost; location / { root /web/gos-log/vue; index index.html index.htm; try_files $uri $uri/ /index.html; } location /api { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://127.0.0.1:2021; } }
性能测试
系统硬件
CPU | Intel® Core™ i5-10210U CPU @ 1.60GHz × 8 |
内存 | 16G |
硬盘 | 512.1 GB |
操作系统 | Ubuntu 20.04.2 LTS 64位 |
GNOME版本 | 3.36.8 |
系统环境
Java环境 | ORACLE JDK13.0.2 |
Go环境 | GO1.15.7 linux/amd64 |
Python环境 | Python 3.8.5 |
性能对比
单文件逐行读取 17.8G test.log (单线程读取)
语言 | test1 | test2 | test3 | test4 | test5 | 总耗时 | 平均耗时 |
Go | 32.99s | 34.24s | 30.33s | 31.21s | 35.70s | 164.16s | 32.83s |
Python | 32分钟还没执行完 | ||||||
Java | 226s | 206s | 153s | 219s | 183s | 987s | 197.4s |

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Blender 接下来会开发什么功能?2021 开发规划公布
Blender Foundation在这两天发布了2021年的开发路线图,预览了今年计划在开源3D软件的两个主要版本中发布的功能,下面瑞云渲染就带大家来具体看看。 库覆盖系统的持续工作,新的几何节点和Grease Pencil工具集都将在Blender2.93中推出,目前计划于5月下旬发布。 而Blender 3.0将计划于今年的第三季度发布,它在结构上有较大的的变化,包括新的USD importer插件,新的动画姿势库以及对Blender角色动画工具基础功能的改进。 同时,Blender Foundation还发布了Cycles X,这是对Blender主要生产渲染器的重大更新,将于Cycles3.1中发布。官方23号在油管上发布了一支长达40分钟的介绍视频,大家有时间的可以去看看,不过下面还是先带大家用文字来了解一下。 Blender Foundation揭开了Cycles X的面纱 Blender Foundation称Cycles X即将对软件的生产渲染器进行一次重大的改写,旨在在未来10年内对其进行进一步的验证。 这个新版本将大大缩短现代GPU上的渲染时间和视口交互性,并增加...
- 下一篇
Java并发编程专题系列之深入分析AQS的工作原理(前传)
🐉 大致介绍 本章讲解一下CAS,本质就是机器指令:cmpxchg+lock(根据处理器核数进行判断) 原子操作; 而在谈到并发操作里面,我们不得不谈到AQS,JDK的源码里面好多并发的类都是通过Sync(同步器)的内部类继承AQS而实现出五花八门的功能; 🐉 简单认识AQS 🐉 何为AQS? AQS是一个抽象类,类名为AbstractQueuedSynchronizer,抽象的都是一些公用的方法属性,其自身是没有实现任何同步接口的; AQS定义了同步器中获取锁和释放锁,目的来让自定义同步器组件来使用或重写; 纵观AQS的子类,绝大多数都是一个叫Sync的静态内部类来继承AQS类,通过重写AQS中的一些方法来实现自定义同步器; AQS定义了两种资源共享方式:EXCLUSIVE( 独占式:每次仅有一个Thread能执行 )、SHARED( 共享式:多个线程可同时执行 ); AQS维护了一个FIFO的CLH链表队列,且该队列不支持基于优先级的同步策略; 🐉 AQS的state关键词 维护了一个volatile的int类型的state字段:private volatile int s...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19