摘要: 《深入理解计算机系统》,这本书,我多次想要好好完整的读一遍,每次都是没有坚持下去,但是作为一个开发者,自己想要成为为数不多的大牛之一,所以打算这次把这本书完整的好好读一遍,并整理为相关的博客! 书的开头说了一句话:计算机系统是由硬件和系统软件组成,他们共同工作来运行应用程序。我们通常接触更多的是应用阅读全文
posted @ 2018-05-16 14:27 python修行路 阅读(367) 评论(0) 编辑
摘要: 先说一下,这里用到了很多关于反射类型的功能,可能刚开始看代码,如果对反射不熟悉的可能会不是非常清晰,但是同时也是为了更好的理解golang中的反射,同时如果后面想在代码中可以直接从我的git地址get:go get github.com/pythonsite/config_yaml直接上代码: 先写阅读全文
posted @ 2018-04-26 22:14 python修行路 阅读(234) 评论(0) 编辑
摘要: 到这一步,我的收集系统就已经完成很大一部分工作,我们重新看一下我们之前画的图: 我们已经完成前面的部分,剩下是要完成后半部分,将kafka中的数据扔到ElasticSearch,并且最终通过kibana展现出来 ElasticSearch 官网地址这里介绍了非常详细的安装方法:https://www阅读全文
posted @ 2018-04-26 00:44 python修行路 阅读(659) 评论(0) 编辑
摘要: 再次整理了一下这个日志收集系统的框,如下图 这次要实现的代码的整体逻辑为: 完整代码地址为: https://github.com/pythonsite/logagent etcd介绍 高可用的分布式key-value存储,可以用于配置共享和服务发现 类似的项目:zookeeper和consul 开阅读全文
posted @ 2018-04-22 23:21 python修行路 阅读(1260) 评论(0) 编辑
摘要: 在前两个文章中整理了关于BaseServer部分以及BaseRequestHandler,以及通过对TCP的处理的流程的整理,这次整理的是剩下的关于用于扩展的部分,这里通过对线程扩展进行整理 ThreadingMixIn ThreadingMixIn 类实现了多线程的方式,它只有两个方法,分别是pr阅读全文
posted @ 2018-04-20 21:44 python修行路 阅读(85) 评论(0) 编辑
摘要: SocketServer 中非常重要的两个基类就是:BaseServer 和 BaseRequestHandler在SocketServer 中也提供了对TCP以及UDP的高级封装,这次我们主要通过分析关于TCP的处理逻辑来对SocketServer模块进行一个很好的理解和学习 TCPServer 阅读全文
posted @ 2018-04-20 13:58 python修行路 阅读(346) 评论(1) 编辑
摘要: SocketServer其实是对socket更高级的封装正如官网上说的:The socketserver module simplifies the task of writing network servers. 我们可以先打开以下SocketServer的源码,看一下源码中整体的框架 从上图我们阅读全文
posted @ 2018-04-19 00:29 python修行路 阅读(435) 评论(0) 编辑
摘要: 一篇文章主要是关于整体架构以及用到的软件的一些介绍,这一篇文章是对各个软件的使用介绍,当然这里主要是关于架构中我们agent的实现用到的内容 关于zookeeper+kafka 我们需要先把两者启动,先启动zookeeper,再启动kafka启动ZooKeeper:./bin/zkServer.sh阅读全文
posted @ 2018-03-30 00:05 python修行路 阅读(712) 评论(2) 编辑
摘要: 项目背景 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 当系统机器比较少时,登陆到服务器上查看即可满足 当系统机器规模巨大,登陆到机器上查看几乎不现实 当然即使是机器规模不大,一个系统通常也会涉及到多种语言的开发,拿我们公司来说,底层是通过c++开发的,而也业务应用层是通过Python开阅读全文
posted @ 2018-03-24 23:02 python修行路 阅读(1044) 评论(4) 编辑
摘要: 当我们的程序就一个线程的时候是不需要用到锁的,但是通常我们实际的代码不会是单个线程的,所有这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? 当我们多个线程在读相同的数据的时候则是需要加锁的 当我们的程序既有读又有写的时候更是需要加锁的 当我们有多个线程在写的时候同样也是需要加锁 互斥锁阅读全文
posted @ 2018-03-24 08:04 python修行路 阅读(317) 评论(0) 编辑
摘要: 正好通过这个小例子对之前了解的beego框架的基本内容进行一个简单的应用 实现的完整代码地址:https://github.com/pythonsite/go_simple_code/tree/master/beego_short_url 数据库没有什么变化,还是和之前一样,主要是把处理逻辑放到be阅读全文
posted @ 2018-03-23 00:23 python修行路 阅读(172) 评论(0) 编辑
摘要: Beego官网本身已经整理的非常详细了,但是作为一个学习者,我还是决定自己好好整理一下,这样在后面使用的时候自己对每部分才能非常熟悉,即使忘记了,也可以迅速定位自己要用的知识在哪里。当然也是对官网的一个精简整理,同时结合一些例子,更好的理解和学习Beego Beego官网地址:https://bee阅读全文
posted @ 2018-03-21 23:35 python修行路 阅读(491) 评论(1) 编辑
摘要: 说到配置文件热加载,这个功能在很多框架中都提供了,如beego,实现的效果就是当你修改文件后,会把你修改后的配置重新加载到配置文件中,而不用重启程序,这个功能在日常中还是非常实用的,毕竟很多时候,线上的配置文件不是想改就能改的。 这次就自己实现一个配置文件的热加载功能的包,并通过一个简单的例子对完成阅读全文
posted @ 2018-03-17 22:36 python修行路 阅读(1239) 评论(0) 编辑
摘要: 首先说一下这种业务的应用场景: 主要实现的功能分析: 这里实现的是一个api服务 数据库设计 数据库的设计其实也没有非常复杂,如图所示: 这里有个设置需要主要就是关于数据库表中id的设计,需要设置为自增的并且这里有个问题需要提前知道,我们的思路是根据id的值会转换为62进制关于进制转换的代码为: 所阅读全文
posted @ 2018-03-15 22:47 python修行路 阅读(522) 评论(6) 编辑
摘要: 其实自己不是很会看源码,但是学习优秀的源码是提升自己代码能力的一种方式,也可以对自己以后写代码有一个很好的影响,所以决定在之后的时间内,要有一个很好的习惯,阅读优秀的源码。刚开始自己会觉得看源码很痛苦,这个和我自己的方法有关系,刚开始自己总是想要知道源码的每一步操作,以及每个部分都是做什么,导致看着阅读全文
posted @ 2018-03-14 20:02 python修行路 阅读(220) 评论(0) 编辑
摘要: 事务是数据库的一个非常重要的特性,尤其对于银行,支付系统,等等。database/sql提供了事务处理的功能。通过Tx对象实现。db.Begin会创建tx对象,后者的Exec和Query执行事务的数据库操作,最后在tx的Commit和Rollback中完成数据库事务的提交和回滚,同时释放连接。 tx阅读全文
posted @ 2018-03-08 22:28 python修行路 阅读(307) 评论(0) 编辑
摘要: 在上一篇文章中主要整理了Golang连接mysql以及一些基本的操作,并进行了大概介绍,这篇文章对增删查改进行详细的整理 读取数据 在上一篇文章中整理查询数据的时候,使用了Query的方法查询,其实database/sql还提供了QueryRow方法查询数据,就像之前说的database/sql连阅读全文
posted @ 2018-03-05 21:40 python修行路 阅读(373) 评论(0) 编辑
摘要: 关于标准库database/sql database/sql是golang的标准库之一,它提供了一系列接口方法,用于访问关系数据库。它并不会提供数据库特有的方法,那些特有的方法交给数据库驱动去实现。 database/sql库提供了一些type。这些类型对掌握它的用法非常重要。 DB数据库对象。 s阅读全文
posted @ 2018-03-05 15:20 python修行路 阅读(444) 评论(0) 编辑
摘要: 一直对asyncio这个库比较感兴趣,毕竟这是官网也非常推荐的一个实现高并发的一个模块,python也是在python 3.4中引入了协程的概念。也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? 异步网络操作 并发 协程 python3.0时代,标准库里的异步网络模块:sele阅读全文
posted @ 2018-03-01 18:41 python修行路 阅读(1442) 评论(6) 编辑
摘要: 排序操作主要都在sort包中,导入就可以使用了import("sort") 常用的操作 sort.Ints:对整数进行排序sort.Strings:对字符串进行排序sort.Float64s:对浮点数进行排序 使用例子: 同样还有以下几个常用的查找操作 sort.SearchInts(a[]int,阅读全文
posted @ 2018-02-19 19:20 python修行路 阅读(124) 评论(0) 编辑
摘要: 《深入理解计算机系统》,这本书,我多次想要好好完整的读一遍,每次都是没有坚持下去,但是作为一个开发者,自己想要成为为数不多的大牛之一,所以打算这次把这本书完整的好好读一遍,并整理为相关的博客! 书的开头说了一句话:计算机系统是由硬件和系统软件组成,他们共同工作来运行应用程序。我们通常接触更多的是应用阅读全文
posted @ 2018-05-16 14:27 python修行路 阅读(367) 评论(0) 编辑
摘要: 先说一下,这里用到了很多关于反射类型的功能,可能刚开始看代码,如果对反射不熟悉的可能会不是非常清晰,但是同时也是为了更好的理解golang中的反射,同时如果后面想在代码中可以直接从我的git地址get:go get github.com/pythonsite/config_yaml直接上代码: 先写阅读全文
posted @ 2018-04-26 22:14 python修行路 阅读(234) 评论(0) 编辑
摘要: 到这一步,我的收集系统就已经完成很大一部分工作,我们重新看一下我们之前画的图: 我们已经完成前面的部分,剩下是要完成后半部分,将kafka中的数据扔到ElasticSearch,并且最终通过kibana展现出来 ElasticSearch 官网地址这里介绍了非常详细的安装方法:https://www阅读全文
posted @ 2018-04-26 00:44 python修行路 阅读(659) 评论(0) 编辑
摘要: 再次整理了一下这个日志收集系统的框,如下图 这次要实现的代码的整体逻辑为: 完整代码地址为: https://github.com/pythonsite/logagent etcd介绍 高可用的分布式key-value存储,可以用于配置共享和服务发现 类似的项目:zookeeper和consul 开阅读全文
posted @ 2018-04-22 23:21 python修行路 阅读(1260) 评论(0) 编辑
摘要: 在前两个文章中整理了关于BaseServer部分以及BaseRequestHandler,以及通过对TCP的处理的流程的整理,这次整理的是剩下的关于用于扩展的部分,这里通过对线程扩展进行整理 ThreadingMixIn ThreadingMixIn 类实现了多线程的方式,它只有两个方法,分别是pr阅读全文
posted @ 2018-04-20 21:44 python修行路 阅读(85) 评论(0) 编辑
摘要: SocketServer 中非常重要的两个基类就是:BaseServer 和 BaseRequestHandler在SocketServer 中也提供了对TCP以及UDP的高级封装,这次我们主要通过分析关于TCP的处理逻辑来对SocketServer模块进行一个很好的理解和学习 TCPServer 阅读全文
posted @ 2018-04-20 13:58 python修行路 阅读(346) 评论(1) 编辑
摘要: SocketServer其实是对socket更高级的封装正如官网上说的:The socketserver module simplifies the task of writing network servers. 我们可以先打开以下SocketServer的源码,看一下源码中整体的框架 从上图我们阅读全文
posted @ 2018-04-19 00:29 python修行路 阅读(435) 评论(0) 编辑
摘要: 一篇文章主要是关于整体架构以及用到的软件的一些介绍,这一篇文章是对各个软件的使用介绍,当然这里主要是关于架构中我们agent的实现用到的内容 关于zookeeper+kafka 我们需要先把两者启动,先启动zookeeper,再启动kafka启动ZooKeeper:./bin/zkServer.sh阅读全文
posted @ 2018-03-30 00:05 python修行路 阅读(712) 评论(2) 编辑
摘要: 项目背景 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 当系统机器比较少时,登陆到服务器上查看即可满足 当系统机器规模巨大,登陆到机器上查看几乎不现实 当然即使是机器规模不大,一个系统通常也会涉及到多种语言的开发,拿我们公司来说,底层是通过c++开发的,而也业务应用层是通过Python开阅读全文
posted @ 2018-03-24 23:02 python修行路 阅读(1044) 评论(4) 编辑
摘要: 当我们的程序就一个线程的时候是不需要用到锁的,但是通常我们实际的代码不会是单个线程的,所有这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? 当我们多个线程在读相同的数据的时候则是需要加锁的 当我们的程序既有读又有写的时候更是需要加锁的 当我们有多个线程在写的时候同样也是需要加锁 互斥锁阅读全文
posted @ 2018-03-24 08:04 python修行路 阅读(317) 评论(0) 编辑