- 博客(34)
- 收藏
- 关注
原创 Golang实战之海量日志收集系统(一)项目背景介绍
项目背景每个系统都有日志,当系统出现问题时,需要通过日志解决问题当系统机器比较少时,登陆到服务器上查看即可满足当系统机器规模巨大,登陆到机器上查看几乎不现实每个业务系统都有自己的⽇志,当业务系统出现问题时,需要通过查找⽇志信息来定位和解决问题。 当业务系统服务器⽐较少时,登陆到服务器上查看即可满⾜。但当系统机器规模巨⼤,登陆到服务器上查看⼏乎不现实(分布式的系统,⼀个系统部署在⼗⼏甚至...
2020-03-22 11:21:25 2953
原创 Golang1.14 go modules 怎么导入本地其它项目的包? 看完这篇文章, 终于搞懂了
相信大家在本地使用go mod开发项目时, 肯定会遇到很多依赖包的问题。因为go mod在最近的1.13中使用了Go GO111MODULE·模块进行包管理。设置Go GO111MODULE有的小伙伴使用过程中肯定非常痛苦,因为不是很熟练, 而且里面还有很多不人性化的设置,网上的资料甚少,都是一篇文章你抄我,我抄你, 查阅大量文章只后无果,一怒之下我决定好好研究一下go mod。遇到的问题...
2020-03-31 10:45:14 8604 5
原创 Golang实战之海量日志收集系统(九)beegoWeb入门
Beego web开发beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架。安装beegogo get github.com/...
2020-03-30 18:20:18 455
原创 Golang语言学习从入门到实战----Go操作Mysql实现增删改查
建库建表新建person表create table person(user_id int primary key auto_increment,username varchar(260),sex varchar(260),email varchar(260));Golang操作Mysql数据库安装sqlxgo get github.com/jmoiron/sqlx,sqlx...
2020-03-29 22:16:45 570
原创 Golang实战之海量日志收集系统(八)logTransfer之将日志入库到Elasticsearch并通过Kibana进行展示
前面我们将logTransfor的配置初始化成功了, 下面将从Kafka中消费数据, 并将日志入库到Elasticsearch并通过Kibana进行展示将日志保存到ES中初始化Es在main函数中添加初始化InitEs函数// 初始化Es err = es.InitEs(logConfig.EsAddr) if err != nil { logs.Error("初始化Elastic...
2020-03-28 20:38:58 1903
原创 Golang实战之海量日志收集系统(七)logTransfer之从kafka中获取日志信息
在前六章中已经完成了日志收集的logAgent端, 接下来需要将日志数据写入到Kafka中, 然后将数据落地到Elastciseartch中Elastciseartch与Kinaba下载与安装Elastciseartch与Kinaba下载与安装, 参考我这篇博客使用Golang控制Elasticsearch环境版本:go 1.14elasticsearch-7.6.1kibana-7...
2020-03-28 17:54:19 1799
原创 Windows10配置Elasticsearch7与 Kibana7
下载Elasticsearch下载: https://www.elastic.co/cn/downloads/elasticsearchKibana下载地址: https://www.elastic.co/cn/downloads/kibana配置与启动启动Elasticsearch注意: 启动Elasticsearch需要配置Java环境解压文件, 打开cmd, 在安装目录下输入...
2020-03-27 16:39:11 1557
原创 Win10家庭版没有组策略怎么办? 教你如何启用组策略gpedit.msc
今日在优化Windows cpu时遇到了Win10打不开组策略gpedit.msc的问题, 仅以此篇记录开启组策略功能过程1. 创建cmd脚本在桌面新建一个txt文件, 将下面的代码复制到txt中, 并且更改后缀为cmd@echo offpushd "%~dp0"dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPol...
2020-03-26 17:31:56 2414 5
原创 Golang实战之海量日志收集系统(六)监视etcd配置项的变更
在上一篇中我们已经实现了从etcd中获取配置信息并创建tailTask任务现在我们来通过etcd的watch实现新配置的变更监视etcd配置项的变更实现watch各个不同ip在真实生产环境中时会常常添加新的服务器, 这时我们需要借助之前的ip.go获取所有ip节点, 并且实时监控修改EtcdClient结构体增加keystype EtcdClient struct { client ...
2020-03-25 11:52:59 1132
原创 Golang实战之海量日志收集系统(五)根据etcd配置项创建多个tailTask
通过上一篇从etcd中获取配置信息, 现在要拿着这些配置项进行日志收集根据etcd的配置项创建多个tailtask项目结构:.│ go.mod│ go.sum││├─conf│ logagent.conf│├─kafka│ kafka.go│├─logs│ my.log│├─main│ config.go│ ...
2020-03-23 18:58:23 618
原创 Golang实战之海量日志收集系统(四)etcd介绍与使用etcd获取配置信息
etcd介绍高可用的分布式key-value存储,可以用于配置共享和服务发现类似的项目:Zookeeper和consul开发语言:go接口:提供Restful的接口,使用简单实现算法:基于raft算法的强一致性,高可用的服务存储目录etcd的应用场景:服务发现和服务注册配置中心(我们实现的日志收集客户端需要用到)分布式锁master选举etcd的命令验证PS E:\...
2020-03-23 16:36:56 1568
原创 Golang实战之海量日志收集系统(三)简单版本logAgent的实现
简单版本LogAgent的实现这里主要是先实现核心的功能,后续再做优化和改进,主要实现能够根据配置文件中配置的日志路径去读取日志并将读取的实时推送到kafka消息队列中关于logagent的主要结构如下: . ├─conf │ logagent.conf │ ├─kafka │ kafka.go │ ├─logs │ my.log │ ├─...
2020-03-22 17:38:51 2396
原创 Golang实战之海量日志收集系统(二)收集应用程序日志到Kafka中
kafka库的基本操作我们需要先把两者启动,先启动Zookeeper,再启动Kafka启动ZooKeeper:./bin/zkServer.sh start启动kafka:./bin/kafka-server-start.sh ./config/server.properties我这里使用的是Golang1.14最新版本,并且开启了Go Module, 所以下载的包都会整合在go.mod下...
2020-03-22 12:07:48 1705
原创 解决Golang1.14 etcd/clientv3报错:etcd undefined: resolver.BuildOption
Golang etcd/clientv3报错: etcd undefined: resolver.BuildOption故障描述golang版本go versiongo version go1.14 windows/amd64包管理器go.modmodule goAgentgo 1.14require ( github.com/Shopify/sarama v1.26...
2020-03-20 20:09:13 10542
原创 HA高可用与负载均衡入门到实战(一)----Docker中安装与配置Nginx
实现Docker容器中安装配置Nginx1. 启动进入容器1.1 拉取centos镜像:docker pull centos注意: 这样拉取的是最新的centos8镜像,如果想要拉取centos7则使用docker pull centos:71.2 启动进入容器docker run -d --privileged --name nginx centos:v1 /usr/sbin/i...
2020-03-19 12:44:52 350 1
原创 关于go get 以后下载的包不在src下而在pkg的源头并且不可以import(Goland Modules模块的使用)
采坑记万恶之源:go get 以后我发现下载的包不在src目录下生成,而全部到了$GOPATH$/pkg目录下而且下载完了, import也不成功在不懈的努力下最后终于找到原因:解决Golang使用过程中go get 下载github项目慢或无法下载我写的这篇文章中,go env -w GO111MODULE=on选择了打开官方在 v1.11 中加入了 Go Module 作为官方...
2020-03-16 20:07:07 25560 20
原创 解决Golang使用过程中go get 下载github项目慢或无法下载
https://goproxy.io/zh/一个为Go模块而生的全球代理在cmd中设置如果您使用的 Go 版本是 1.13 及以上 (推荐) go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct速度非常快:...
2020-03-16 15:25:14 21479 6
原创 Windows10安装运行Kafka2.1.0与Zookeeper3.4.14
近日在做一个Golang的日志收集系统需要用到Kafka, 因苦于笔记本电脑虚拟机出了点问题, 所以在本文记录Windows10安装Kafka的过程搭建过程1.1 安装JDK此处不多介绍1.2 安装Zookeeper下载地址:http://zookeeper.apache.org/releases.html#download下载后解压到一个目录:1.进入Zookeeper设置目录,...
2020-03-16 14:37:59 855 3
原创 Golang语言学习从入门到实战----HTTP web开发编程
1. HTTP编程package mainimport ( "fmt" "net/http")func main() { http.HandleFunc("/", Hello) http.HandleFunc("/usr/login", login) http.HandleFunc("/usr/history", history) err := http.ListenAnd...
2020-03-15 16:53:28 263
原创 Golang语言学习从入门到实战----编写简单的TCP/IP聊天室
效果展示首先启动server端:启动client端,输入文本Server端接收:目录结构├─client│ client.go│└─server server.go代码详细client.gopackage mainimport ( "bufio" "fmt" "net" "os" "strings")func main()...
2020-03-13 17:38:00 261
原创 Golang语言学习从入门到实战----基于Golang的客户关系管理系统
客户关系管理系统GitHub地址:https://github.com/PlutoaCharon/Golang_customerManager运行:go run $GOPATH/customerManager(存放该项目的文件夹)/view/customerView.go项目展示----------------------客户信息管理软件---------------------- ...
2020-03-13 17:30:15 1686
原创 Golang语言学习从入门到实战----基于Golang实现简单家庭收支项目
基于Golang实现简单家庭收支项目GitHub地址:https://github.com/PlutoaCharon/Golang_FamilyAccount.git该项目可以简单的进行,明细,登记收入和支出操作实现界面:-----------------家庭收支记账软件----------------- 1 收支明细 ...
2020-03-13 17:16:08 364
原创 Golang语言学习从入门到实战----接口
接口概念说明interface类型可以定义一组方法,但是这些不需要实现。并且interface不能包含任何变量。当某个自定义类型要使用的时候,在根据具体情况把这些方法写出来。基本语法接口里的所有方法都没有方法体,即接口的方法都是没有实现的方法。接口体现了程序设计的多态和高内聚低偶合的思想。Golang中的接口,不需要显式的实现。只要一个变量,含有接口类型中的所有方法,那么这个变量就实...
2020-03-12 15:40:38 227
原创 Liunx Shell编程入门----编写系统监控脚本与FTP探测脚本
1. 编写系统监控脚本sysmon.sh使该脚本实现: 监控系统中内存、cpu、磁盘的占用率1.1 命令解释cat /proc/meminfo/proc/meminfo是了解Linux系统内存使用状况的主要接口我们最常用的free、vmstat等命令就是通过它获取数据的 ,/proc/meminfo所包含的信息比free等命令要丰富得多Linux bc 命令bc 命令是任意精度计算...
2020-03-12 11:52:24 785 2
原创 Golang语言学习从入门到实战----链表定义
链表1. 链表定义// 每个节点包含下一个节点的地址, 这样把所有的节点都串起来了, 通常把链表中的第一个节点叫做链表头type Student struct { Name string Next* Student}定义一个简单的链表package mainimport "fmt"// 定义一个链表结构type Student struct { Name string...
2020-03-11 22:27:22 358
原创 Golang语言学习从入门到实战----结构体以及内存分布
1.Golang语言面向对象编程说明Golang也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言。所以我们说Golang支持面向对象编程特性是比较准确的。Golang没有类(class),Go语言的结构体(struct)和其它编程语言的类(class)有同等的地位,你可以理解Golang是基于struct来实现OOP特性的。Golang面向对象编程非常...
2020-03-11 21:41:48 968
原创 Python算法学习: 竞码编程-蓝桥杯校内选拔赛(初赛)重现赛
oj网站地址:竞码编程-蓝桥杯校内选拔赛(初赛)重现赛文章目录试题A:第N个素数试题B:coffee的签到题试题C:不一样的日期试题D:三位分节法试题E:水坑题试题F:站队试题G:冷门进制试题H:拯救阿拉德大陆试题J:馋嘴羊试题A:第N个素数def isPrime(n): if n == 2: return True for i in range(2, n):...
2020-03-08 11:42:05 664 3
原创 牛客网校招全国统一模拟笔试2020年2月场运维方向编程题解
1. 添加字符题目描述:牛牛手里有一个字符串A,羊羊的手里有一个字符串B,B的长度大于等于A,所以牛牛想把A串变得和B串一样长,这样羊羊就愿意和牛牛一起玩了。而且A的长度增加到和B串一样长的时候,对应的每一位相等的越多,羊羊就越喜欢。比如"abc"和"abd"对应相等的位数为2,为前两位。牛牛可以在A的开头或者结尾添加任意字符,使得长度和B一样。现在问牛牛对A串添加完字符之后,不相等的位数...
2020-03-07 11:20:40 446
原创 Golang语言学习从入门到实战----defer
defer在函数中,程序员经常需要创建资源(比如:数据库连接、文件句柄、锁等),为了在函数执行完毕后,及时的释放资源,Go的设计者提供defer(延时机制)简单的demopackage mainimport "fmt"func main() { res := sum(10, 20) fmt.Println("number4 res=", res)}func sum(n1 i...
2020-03-06 15:21:59 278
原创 Golang语言学习从入门到实战----闭包
Golang闭包基本介绍:闭包就是一个函数和与其相关的引用环境组合的一个整体(实体)package mainimport "fmt"func AddUpper() func(int) int { var n int = 0 return func(x int) int { n += x return n }}func main() { f := AddUppe...
2020-03-06 11:59:27 200
原创 Liunx Shell编程入门----编写简单的开机欢迎脚本与操作服务脚本
开机欢迎脚本在用户目录/root下编写存储welcome.sh脚本,赋予执行权限,并在~/.bash_profile中调用该脚本,使得在用户登录时显示欢迎信息如login_pwd=$(pwd) 等号旁边不要添加空格#!/bin/bash# 基本信息login_pwd=$(pwd)login_date=$(date)login_users=$(users)login_uptime=...
2020-03-05 12:59:55 916 5
原创 Golang语言学习从入门到实战----指针和内存布局
关于Golang语言的指针与内存讲解基本数据类型,变量存的就是值,也叫值类型获取变量的地址,用&,比如:var num int,获取num的地址:&numpackage mainimport "fmt"func main() { // 基本数据类型在内存布局 var num int = 1 // num 的地址是什么, &num fmt.Print...
2020-03-02 20:16:10 269
原创 Python算法学习: 竞码编程-蓝桥杯模拟赛3题解
文章目录A. 试题A:生存还是毁灭,这是一个问题 7’B. 试题B:小小神枪手 开局98K 8'C. 试题C:关云长单刀会金莲,贾宝玉三打白骨精 10’D. 试题D:抽刀断水水更流,举杯销愁愁更愁 10’A. 试题A:生存还是毁灭,这是一个问题 7’描述对于给定的文章,求出出现频率最高的字母。对于字母的出现频率,我们定义为:该字母在整个文章中出现的次数。例如:“To be or not ...
2020-03-01 15:13:55 681
原创 Python算法学习:全排列的回溯实现与二进制枚举
全排列LeetCode 46. 全排列给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]方法1:使用库函数itertools.permutationsPython 中文文档3.7.2rc1itertools...
2020-03-01 15:13:25 1256
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人