kafka简介(一) 常见消息系统kafka的设计目标kafka框架使用虚拟机部署kafka直接看官网快速入门:如何使用docker部署kafkahttps://blog.csdn.net/a2267378/article/details/88545858
实用小程序:pip install import loggingimport subprocessdef pip_install(package=None, req=None, dest=None, src_dir=None): """ pip安装命令 :param package: pip包名称,或者wheel包名称 :param dest: 安装目的位置 :return: src_dir: 其他依赖包的来源 """ if package: cmd_list =
python class不再函数内定义变量有什么不同 总结:不会被所有的实例共享,每个实例均有一个,但可以通过类名访问作用:1. 可以看作类常量, 如A.a2. 可以作为python的描述器descriptorclass A: a = 1 def __init__(self): self.c = 'string'c = A()c.a = 4# a 本质只与实例进行绑定了b = A()print(b.a) # 打印1print(c.a) # 打印4print(c.__dict__)print(A.a
python菱形继承 class A: def set(self, a): print('A {}'.format(a))class B(A): def set(self, a): print('B {}'.format(a)) super(B, self).set(a)class C(A): def set(self, a): print('C {}'.format(a)) super(C, self).set(a)
python回调保留状态 使用类实现from multiprocessing import Pooldef add(x, y): return x + yclass ResultHandler: def __init__(self): self.sequence = 0 def handler(self, result): self.sequence += 1 print('[{}] Got:{}'.format(self.sequence, r
python定义函数接收json参数 直接上代码def func2(*args, **kwargs): if args and kwargs: raise TypeError("jsonify() behavior undefined when passed both args and kwargs") elif len(args) == 1: # single args are passed directly to dumps() data = args[0] else:
linux内核7-系统调用 文章目录1. 概念1.1 ABI与API1.2 系统调用与中断,异常比较1.3 调用流程1.4 调用流程优化2 实例-日志收集系统2.1 内核编译2.2 内核模块2.3 测试内核模块1. 概念1.1 ABI与API问题: 保持一个稳定的 ABI 和保持一个稳定的 API相比,谁更困难,为什么?ABI: ABI是一系列约定的集合,可以说调用惯例(calling convention)就是ABI。因此, ABI是和具体CPU架构和OS相关的。具体而言, ABI包含以下内容:1. 一个特定的处理器指令
linux内核6-定时器 文章目录一 概述1.1 运作机制1.2 时钟架构1.3 函数执行一 概述时钟中断: 周期信号,引发CPU中断行为,相关硬件实时时钟RTC: 长时间存放系统的时间设备,即使睡眠也会计数可编程间隔期 PIT: 周期性发送时钟中断信号,tick时间戳计数器TSC: 时钟信号到来,自动加1(64位)高精度计时器HPET:CPU本地定时器: 单次或周期性产生中断系统高精度定时器 hrtimer: 提供纳秒级及精度,精确时间迫切需求jiffies: 计数器,用例记录自系统启动以来的节拍总数x
linux内核5-中断 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录概念1.1 中断机制与策略分离1.2 中断子系统1.3 中断向量和描述符表中断处理机制2.1 中断描述表初始化2.2 中断处理过程2.3 中断请求队列2.4 IRQ数据结构从异常、中断,系统调用返回代码分析中断返回中断下半部分3.1 软件中断机制3.2 时钟中断tasklet的使用概念中断是CPU对系统发生某个时间做出的一种反应(`what`), 中断的引入是为了支持CPU和设备之间的并行操作(`why`),CPU在收到中断信
白帽子(6)- 造成文件上传漏洞原因有哪些? 服务器配置不当当服务器配置不当,在不需要上传页面的情况下便可导致任意文件上传,如开启HTTP PUT方法;开源编辑器上传漏洞…文本文件上传限制被绕过比如客户端做了限制,但服务器没有做,那只要修改数据包即可绕过过滤不严或绕过过滤一般采用黑后缀过滤, 如过滤php, 但上传php3后缀文件解析漏洞导致文件执行存在此漏洞时,及时合法的文件名,但文件名中的恶意代码也有可能被执行。比如read .txt文件,却执行了里面的脚本命令;文件路径截断如0x00,?, \0或超长..
白帽子(5)- 命令注入与代码注入区别 命令注入当应用程序需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数,如php中的system, exec, shell_exec等,当用户可以控制名利执行函数中的参数是,将可注入系统名利到正常名利中,造成命令注入攻击,如system(args), args= ‘cat /etc/passwd’;代码注入应用程序在刁永杰一些能够将字符串转为代码的函数(如php中的eval)时, 没有考虑用户是否可以控制这个字符串,将造成代码执行漏洞,如(eval(“args”)); args=‘.
白帽子(4)-csrf,ssrf, xss的区别 XSS攻击过程攻击者发现xss漏洞 → 构造代码 → 发送给受害人 → 受害者打开 → 攻击者获取受害人的cookie → 完成攻击攻击者:需要登录到后台完成攻击CSRF攻击过程攻击者发现xss漏洞 → 构造代码 → 发送给受害人 → 受害者打开 → 受害者执行代码 → 完成攻击总结: CSRF攻击者只负责构造代码,攻击由用户实现,CSRF少了cooke获取的步骤,为什么少了呢?因为受害人在执行恶意代码的时候就已经外成了攻击,而攻击者并没有参与进来...
mmap为什么更高效? mmap是一种内存映射文件的方法,它将一个文件映射到进程的地址空间,建立文件磁盘地址与虚拟内存的一种对应关系,如此,读写相应的虚拟地址而直接读写对应的文件内容了,这样映射的最大好处是进程可以直接读取内存,避免了频繁的使用read,write等系统调用。这里需要注意:mmap并不是直接分配内存,它所做的最重要的工作就是为进程映射区的虚拟地址建立页表项。从下图可以看出,应用程序虚拟地址空间有多个区域构成,mmap映射的虚拟内存再heap和栈之间的空余部分。...
内存1G malloc1.6G是否成功? 在物理内存为1G的计算机中,能否malloc(1.6G)的内存,为什么?编写程序,实际验证是可以申请成功的,也支持正常读写,原因:malloc的申请的内存只有在用到的时候才会通过请页机制放入内存中,且可以只存放部分内容。此外,如果写入后面的内容是否成功会触发交换机制,腾出一部分内存,继续进行;具体原理见:https://blog.csdn.net/CPriLuke/article/details/111026195#define SIZE (int)(1.6 * 1024 * 1024 * 1024)
linux内核4-内存管理 内存管理导读一、 进程空间1.1 进程空间布局1.2 进程空间数据结构1.2.1 mm_struct1.2.2 vm_area_struct二、用户空间管理1. 创建2. 虚存映射2.1 VMA新建方法2.2 虚拟区实例2.读入数据5 总结1 参考资料导读lscpu命令查看cpu结构, 就看到linux内核缓存,[root@localhost ~]# lscpuL1d cache: 32K //1级数据缓存L1i cache: 32K //1级
linux内核1-hlist pprev为什么是二次指针 理由:这样hash数组只用占一个指针 如果不是pprev, 插入头节点就需要强转下面给出示例#include <stdio.h>struct hlist_head { struct hlist_node *first; };struct hlist_node { struct hlist_node *next, *prev; };static void hlist_add_head(struct hlist_node *n, struct hlist
linux内核3-进程管理 进程概述状态转换#define TASK_RUNNING 0#define TASK_INTERRUPTIBLE 1#define TASK_UNINTERRUPTIBLE 2#define __TASK_STOPPED 4#define __TASK_TRACED 8...进程亲属关系树形结构体real_parent 创建当前进程的进程, parent相当于养父, 比如:父进程销毁,子进程归init进程管理;线程组: 一个进程创建多个线程, 线程才是内核的调度单位, 线程