04 2018 档案
摘要:先说一下,这里用到了很多关于反射类型的功能,可能刚开始看代码,如果对反射不熟悉的可能会不是非常清晰,但是同时也是为了更好的理解golang中的反射,同时如果后面想在代码中可以直接从我的git地址get:go get github.com/pythonsite/config_yaml直接上代码: 先写
阅读全文
摘要:到这一步,我的收集系统就已经完成很大一部分工作,我们重新看一下我们之前画的图: 我们已经完成前面的部分,剩下是要完成后半部分,将kafka中的数据扔到ElasticSearch,并且最终通过kibana展现出来 ElasticSearch 官网地址这里介绍了非常详细的安装方法:https://www
阅读全文
摘要:再次整理了一下这个日志收集系统的框,如下图 这次要实现的代码的整体逻辑为: 完整代码地址为: https://github.com/pythonsite/logagent etcd介绍 高可用的分布式key-value存储,可以用于配置共享和服务发现 类似的项目:zookeeper和consul 开
阅读全文
摘要:在前两个文章中整理了关于BaseServer部分以及BaseRequestHandler,以及通过对TCP的处理的流程的整理,这次整理的是剩下的关于用于扩展的部分,这里通过对线程扩展进行整理 ThreadingMixIn ThreadingMixIn 类实现了多线程的方式,它只有两个方法,分别是pr
阅读全文
摘要:SocketServer 中非常重要的两个基类就是:BaseServer 和 BaseRequestHandler在SocketServer 中也提供了对TCP以及UDP的高级封装,这次我们主要通过分析关于TCP的处理逻辑来对SocketServer模块进行一个很好的理解和学习 TCPServer
阅读全文
摘要:SocketServer其实是对socket更高级的封装正如官网上说的:The socketserver module simplifies the task of writing network servers. 我们可以先打开以下SocketServer的源码,看一下源码中整体的框架 从上图我们
阅读全文