uWSGI和Gunicorn的对比小结 Posted on 2021-06-23 由于uWGSI使用的是GPL2开源协议,Gunicorn使用的是MIT协议,商业使用为了规避相关法律风险,业务上有打算把uWSGI替换成Gunicorn,小结下两种组件的使用及区别。 简介相同点 perfork是一种服务端编程模型, Nginx, Gunicorn, uWSGI都是这种模型的实现, ... Read more »
jvm-运行时数据区 Posted on 2021-06-22 线程 线程是一个程序里的运行单元,JVM允许一个程序有多个线程并行的执行; 在HotSpot JVM,每个线程都与操作系统的本地线程直接映射。 当一个java线程准备好执行以后,此时一个操作系统的本地线程也同时创建。java线程执行终止后。本地线程也会回收。 操作系统负责所有线程的安排调度到任何一个 ... Read more »
开源协议概览 Posted on 2021-06-22 在申请专利的过程中,因为系统中涉及相关组件,其中组件使用的协议有可能会涉及商业开源问题,小结下开源协议的异同点如下。 世界上的开源许可证(Open Source License)大概有上百种,我们常用的开源软件协议大致有GPL、BSD、MIT、Mozilla、Apache和LGPL。 由宽松到严紧排 ... Read more »
jvm小结 Posted on 2021-06-19 jvm整体架构JVM(虚拟机):指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。jvm的整体架构如下 详细的jvm整体架构如下 在一个java进程中可能有很多正在运行的java线程,那么在每一个java线程中都会独立开辟本地方法栈,程序计算器, ... Read more »
网络中的AS自洽域 Posted on 2021-06-18 最近在看stix协议,其中在SCO中有 Autonomous System (AS) Object这么一个对象,主要描述了AS自洽域相关的资料信息,小结下AS自洽域相关内容如下。 什么是AS自治域? 全球的互联网被分成很多个AS 自治域,每个国家的运营商、机构、甚至公司等都可以申请AS号码,AS号码 ... Read more »
java线程池小结 Posted on 2021-06-17 什么是线程池? 一种线程管理模式。线程维护着多个线程,等待着分配可并发执行的任务。这避免了在处理短时间任务时创建和销毁线程的代价,进而影响影响缓存性能。线程池不仅不仅保证内核的充分利用,还能防止过分调度。 线程池的意义 循环利用线程资源,避免重复创建和销毁线程 线程池的任务是异步执行的,只要提交完成 ... Read more »
flask_session源代码阅读 Posted on 2021-06-16 最近在做客户需求,要求提高session的安全性,需要把session的长度从32位提高至64位。主要内容是分析flask_session源码,具体如下。 init文件 12345678910111213141516171819202122232425262728293031323334353637 ... Read more »
python文件操作 Posted on 2021-06-15 python和其它编程语言一样,Python 也具有操作文件(I/O)的能力,比如打开文件、读取和追加数据、插入和删除数据、关闭文件、删除文件等。 除了提供文件操作基本的函数之外,Python 还提供了很多模块,例如 fileinput 模块、pathlib 模块等,通过引入这些模块,我们可以获得大 ... Read more »
迭代器与生成器 Posted on 2021-06-11 生成器 生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。 对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。 而且记录了程序执行的上下文。 生成器不仅“记住”了它的数据状态,生成还记住了程序执行的位置。 迭代器 迭代器是一种支持next()操作的对象。它包含了一组元素 ... Read more »
CRIT Supervisor running as root问题排查 Posted on 2021-06-10 背景项目中遇到如下问题:1232021-06-10 17:58:59,776 CRIT Supervisor running as root (no user in config file)2021-06-10 17:58:59,777 WARN Included extra file " ... Read more »