自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

削土豆的人er的园子

《烈火战车》(Chariots of Fire)中埃里克的宣教士父亲劝告他说:“如果你可以漂亮的完成削马铃薯皮的工作,那么你就是在荣耀上帝。”

  • 博客(17)
  • 收藏
  • 关注

转载 python-线程安全简介

https://blog.csdn.net/weixin_43790276/article/details/91069959这篇文章记录了基本背景和解决方案,基本够用了。Python多线程是通过threading模块来实现的。一、多线程共享全局变量from threading import Threadlist_a = [1, 2, 3]def add_list():global list_alist_a.append(100)print(list_a)if name == ‘main’

2020-11-24 18:44:54 175

转载 Python-全局解释锁介绍

1. 全局解释锁是什么Global Interpreter Lock是计算机程序设计语言解释器用于同步线程的一种机制,它使得任何时刻仅有一个线程在执行。即使是在多核处理器上,使用GIL解释器也只允许同一时间执行一个线程。常用的使用GIL的解释器有CPython与Ruby MRI。可见,GIL并不是python独有的特性。2. Python解释器有哪些CPython是官方版本的解释器,用C语言编写的,最广泛的解释器,可以方便的和C/C++进行交互Jpython由java语言编写的python解

2020-11-24 16:43:25 222

原创 Postgresql explain查询小结

在项目中有一条简单的sql语句,使用子查询非常耗时。使用联合查询,非常快。查了点资料,大概总结下关键部分。关键技术文档参照:https://blog.csdn.net/kmblack1/article/details/80761647https://blog.csdn.net/weixin_39540651/article/details/105433144使用 explain ANALYZE查看方法是从后向前;actual time记录了实际运行的起始时间和结束时间;hash cond

2020-11-24 14:16:36 958 1

原创 Kafka生产消费数据丢失和优化小结

我们经常会遇到kafka数据丢失的问题,所以将遇到过的或有可能造成数据丢失的问题进行个小总结。其实在kafka处理数据的流程有很多,把这些流程梳理一遍,有助于分析数据丢失的情况,从这个图中可以看出数据流向,图中涉及的所以过程都可能造成数据的丢失。首先要确定是否有业务数据写入再明确数据是在kafka之前就已经丢失还是消费端丢失数据的?2.1 如果是在写入端丢失数据,那么每次结果应该完全一样(在写入端没有问题的前提下)。2.2 如果是在消费端丢失数据,那么换个消费group重新消费,多次消费结果完

2020-10-14 17:18:43 837 1

原创 Kafka-python & Pykafka对比使用参数大全

kafka-python和pykafka基本对比对比kafka-pythonpykafka出现时间更早稍晚语言实现纯pythonpython和连接 librdkafka C 库API风格更类似java客户端更类似python客户端kafka版本支持0.8以上0.8.2 以上zookeeper支持kafka0.9以上支持支持python版本支持2.7 3.4 3.5 3.6 3.72.7, 3.4, 3.5kafka-pyth

2020-09-17 15:04:24 3490 1

转载 网络IO小白的进阶之路6-select&epoll详细介绍

select的缺点:1、单个进程能够监视的文件描述符的数量存在最大限制,通常是1024,当然可以更改数量,但由于select采用轮询的方式扫描文件描述符,文件描述符数量越多,性能越差;(在linux内核头文件中,有这样的定义:#define __FD_SETSIZE    1024)2、内核 / 用户空间内存拷贝问题,select每次都会改变内核中的句柄数据结构集,因而每次select调用时都需要从用户空间向内核空间复制所有的句柄数据结构,产生巨大的开销3、select返回的是含有

2020-09-01 20:21:15 143

转载 网络IO小白的进阶之路5-异步IO

4. 异步IO(Asynchronous I/O)Linux下的asynchronous IO其实用得不多,从内核2.6版本才开始引入。先看一下它的流程:用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面,从kernel的角度,当它受到一个asynchronous read之后,首先它会立刻返回,所以不会对用户进程产生任何block。然后,kernel会等待数据准备完成,然后将数据拷贝到用户内存,当这一切都完成之后,kernel会给用户进程发送一个signal,告诉它read操作完成

2020-08-24 21:03:41 142

转载 网络IO小白的进阶之路4-IO多路复用

上篇文章 https://blog.csdn.net/qq_38110368/article/details/108207016中提到,非阻塞IO的方式,需要用户态不断主动询问kernel数据准备好了没有,并且每次只能检测一个连接。实际操作系统提供了更为高效的检测“操作是否完成“作用的接口。3. 多路复用IO(IO multiplexing)IO multiplexing这个词可能有点陌生,但是如果说select/epoll,大概就都能明白了。有些地方也称这种IO方式为事件驱动IO(event driv

2020-08-24 20:54:22 110

转载 网络IO小白的进阶之路3-非阻塞IO

上篇文章 https://blog.csdn.net/qq_38110368/article/details/108206010 提到,单线程阻塞IO 是在等待数据和拷贝数据两个阶段都是阻塞状态,而进程/线程池的方案能处理的连接数,缓解的调用IO也很有限。因此出现非阻塞IO(non-blocking IO)2. 非阻塞IO2.1 实现原理Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blocking socket执行读操作时,流程是这个样子:图4 非阻塞IO

2020-08-24 20:10:19 98

转载 网络IO小白的进阶之路2-阻塞IO

本人这些年看了无数介绍网络IO的技术文章,讲实话,没有一篇完全看懂的,无数次放弃学习,有无数次咬牙坚持学,直到今天看了这篇文章 https://www.cnblogs.com/findumars/p/6361627.html,茅塞顿开,原来网络IO基础并没有很难,所以想在此,和大家分享学习内容,供自己和大家学习。Richard Stevens的“UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking ”,6.2节“

2020-08-24 19:52:09 140

原创 WSGI你不知道的事

wsgi是什么?是一个协议,定义了一套接口,实现服务器端和应用端的通信的规范化,使web底层和application解耦。就如下图:wsgi主要有两个工作:1.和服务端的交互:从底层解析http协议,然后调用应用程序提供的环境信息(host、post、进程模式等)和回调函数(这个回调函数就是将app设置的http header、status等信息传递给服务端)。2.和app的交互:即上面的回调函数所做的内容,将app设置的http header、status等信息生成返回的header、body、

2020-08-24 16:08:35 199

原创 网络IO小白的进阶之路1

影响的都是收消息方式:1.简单的一问一答式client的一个线程收,一个线程发;server的一个线程收,一个线程发。消息是阻塞同步的,一直阻塞在那里,只有内核态收完了,才会拷贝到用户态。这种机制会让程序一直挂在内核态,不占用cpu资源。只有数据拷贝到用户态之后,才会唤醒。2.多个client+server1.)多进程/线程的阻塞同步,即10个client,启10个线程,每个线程都用阻塞的方式处理。2.)单线程/进程+非阻塞同步方式。所有的fd都放在一个队列里,一直在轮训轮训,立刻返回???

2020-08-24 16:06:41 99

转载 linux内存故障排查

上周五,在测试的一台服务器上频繁出现系统内存不够,进程被kill的现象。原以为是开源软件或自研软件内存泄漏导致的,可查看内存信息发现很奇怪,一台16GB的机器,进程总共就占了不到6GB,但memfree的内存只有160MB,cache也没有多少。翻了很多资料,直到 https://www.cnblogs.com/tcicy/p/8299712.html里面的这段话解答了我们的疑惑:在VMware guest上有一个常见问题,就是VMWare ESX宿主机会通过guest上的Balloon drive

2020-08-23 17:32:52 2473

转载 HTTP/1.0 HTTP/1.1 HTTP/2 区别介绍

影响一个 HTTP 网络请求的因素主要有两个:带宽和延迟。带宽:如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响请求的问题,但是现在网络基础建设已经使得带宽得到极大的提升,我们不再会担心由带宽而影响网速,那么就只剩下延迟了。延迟:浏览器阻塞(HOL blocking):浏览器会因为一些原因阻塞请求。浏览器对于同一个域名,同时只能有 4 个连接(这个根据浏览器内核不同可能会有所差异),超过浏览器最大连接数限制,后续请求就会被阻塞。DNS 查询(DNS Lookup):浏

2020-08-16 19:56:54 567

原创 Kafka HA机制

当多个Broker启用后,Kafka如何工作呢,数据又是如何存储,以保证Kafka集群的稳定性和可恢复性呢。这就是这篇文章所要探讨的内容了。

2019-07-01 14:35:39 275

原创 Kafka 设计基础原理

对于一个被广泛使用的分布式消息系统,大名鼎鼎的kafka有诸多优点,可具体又有什么的?Kafka又是如何设计保证它的优点呢,此文向大家一一揭晓

2019-07-01 12:20:53 101

原创 PostgreSQL备份&恢复方案

PostgreSQL支持三种备份方案,分别是SQL快照方案、文件快照方案和持续存档方案。而每个方案都有优缺点,需要根据项目需要选择最适合的备份和恢复方案

2019-06-05 19:12:12 1063

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除