自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(144)
  • 收藏
  • 关注

原创 后端存储实战-极客时间

电商系统是如何设计的不要一上来就设计功能这个系统是给谁用的?这些人用来该系统解决什么问题?电商:用户、运营、报表购物流程:浏览商品-----加购------下单-------支付-------发货-------收货复杂的促销模块要封装起来一般来说,解决超卖问题的方法都是在下单的时候锁定库存,如果订单取消再释放库存。01 | 创建和更新订单时,如何保证...

2020-04-12 22:01:15 5402 1

原创 网络编程实战-极客时间

03丨套接字和地址:像电话和电话号码一样理解它们accept和connect进行握手收到数据从内核读取到进程半关闭状态下可以支持一方数据的传输Http是应用层协议,是基于Tcp socket的实现,websocket是http的增强,利用了Tcp双向的特性,增强了服务器端到客户端的传输能力04 | TCP三次握手:怎么使用套接字格式建立连接?SOCK_STREAM: 表示的是字节...

2020-04-06 21:52:34 3921

原创 消息队列-极客时间

04 | 如何利用事务消息实现分布式事务?消息队列也有事务,事务主要是解决消息生产者和消费者数据一致性的问题比如电商场景中或者是一些在线视频网站等不是重点的业务场景的东西,比如评论数+1,这种都是可以异步完成的单体的关系型数据库实现事务可以,但是在分布式系统中同时实现ACID四种特性非常困难了,所以出现了残血版的一致性:顺序一致性,最终一致性在不同的场景中做一些妥协在实际业务中常见的分...

2020-04-01 11:20:30 732

原创 kubernetes-极客时间

01-预习篇·小鲸鱼大事记(一):初出茅庐本质都是使用cgroups和namespace技术docker好用的就是在于镜像提供了便利的打包机制,因为操作系统也在里面02-预习篇·小鲸鱼大事记(二):崭露头角docker给了打包的完美解决方案03-预习篇·小鲸鱼大事记(三):群雄并起后来该名成Docker公司,推出了swarmdocker收购了fig成为现在的compose...

2020-03-30 22:40:07 432

原创 后端技术面试38讲

内容来自极客时间专栏课01-程序运行原理:程序是如何运行又是如何崩溃的?存在磁盘上的代码没有价值, 运行起来才有价值先要编译堆是无序的内存空间执行上下文信息因为CPU的分时共享技术, 可以分时处理进程的信息, 多核架构也可以实现并发.CPU有运行, 就绪, 阻塞状态当进程在CPU上运行就处于运行状态当进程获得了除了CPU以外的资源就是CPU就绪状态, 就等他了服务为什么会变...

2020-02-20 17:37:54 1371

原创 浏览器工作原理与实践

07 | 变量提升:JavaScript代码是按顺序执行的吗?变量提升, 有个执行上下文的对象定义函数存储在堆中当函数被调用时, 会在变量对象中查找该函数编译过程是非常复杂的, 包括词法分析, 语法分析, 代码优化, 代码生成等下面代码会输出什么function showName() { console.log('极客邦');}showName();...

2020-02-19 12:31:06 2458

原创 极客时间专栏:透视HTTP

01 | 时势与英雄:HTTP的前世今生目前全球有16亿个网站、2亿多个域名超文本标记语言,超文本传输协议0.9版本只包含GET获取HTML1995年发明Apache、1992年发明JPEG、1995年发明MP3音乐格式1.0增加了HEAD、POST等方法、增加了响应状态码标记了错误的原因、引入了协议版本号概念、引入了HTTP Header,让HTTP处理请求更加灵活、传输的数据不再仅...

2019-12-08 21:50:49 1105

原创 极客时间专栏:全栈工程师修炼指南

第23讲:知其然,知其所以然:数据的持久化和一致性服务高可用就要部署多个节点,数据为了高可用就要存放多个备份读写服务是不同的,有了数据副本,一致性就成了课题强一致性:读取的操作总是能获取最近一次写入的数据,Oracle、Mysql都符合强一致性弱一致性:读操作并不能保证可以取得最新一次写入的数据弱一致性常被用于缓存,不需要一定是最新的,即使更新了服务端也不会通知你最终一致性:最常见的...

2019-11-25 14:14:28 785

原创 极客时间专栏:设计模式

05:封装、抽象、继承、多态分别可以解决哪些编程问题?import java.math.BigDecimal;/** * Author : CHR_崔贺然 * Time : 2019 11.18 * Description : 极客时间专栏:设计模式之美 05,封装继承多态 * 封装:其中一个核心的概念就是访问权限控制Java中用public和private进行访问权限控...

2019-11-06 16:10:09 1572

原创 极客时间专栏:kafka核心技术与实战

kafka是消息引擎也是流处理平台streams更好的实现端到端kafka connect组件apache kafka是基础CDH/HDP Kafka,大数据云公司提供的Kafka,内嵌Apache Kafka。优势在于操作简单,节省运维成本;缺陷在于把控度低,演进速度较慢。grafana+prometheus+kafka Exporter...

2019-11-02 21:56:58 3116

原创 数据结构与算法

数据结构与算法(Python)学习内容来自极客时间覃超(前facebook工程师,卡内基梅隆大学计算机硕士)专栏及文章等常见数据结构的时间复杂度O(n !)>O(2 ^ n)>O(n ²)>O(log n)>O(n)1.堆栈和队列(Stack、Queue)栈的数据结构经常用到:表达式的运算,花括号的匹配,浏览器的前进后退等栈的基本知识什么是...

2019-10-21 15:26:26 456

原创 极客时间专栏:数据结构与算法之美

数组用堆栈来存,自下而上,插入删除的时间复杂度为O(n),查找为O(1)链表引入指针的概念,插入和删除为O(1),但是查找为O(n)比特币的指针是指向前一个节点,但本质也是个链表,so,查找慢,但是为了安全,so引入了分片技术双向链表有头有尾反转链表 https://segmentfault.com/q/1010000015907927/a-1020000015912468...

2019-10-16 21:51:33 3121 2

原创 tornado异步服务的思考

背景近期遇到个问题是tornado服务有个接口是计算密集型程序(计算文本相似度),因为tornado是单线程当并发请求接口时会造成生死检查接口无法ping通。预解决方案于是准备用torando-celery将任务放在celery进程中去跑提交celery任务会返回任务id,通过torando的事件循环机制去轮询结果,如果查到就返回给前端,没查到则继续添加callback到ioloop中代码大概长这个样子from tornado.concurrent import Futurefrom

2021-03-12 18:11:30 382

原创 Python服务性能分析

Python性能分析import cProfile, pstats, iopr = cProfile.Profile()pr.enable()import requests# 业务逻辑for i in range(100): res = requests.get("http://www.baidu.com") print(len(res.text))pr.disable()s = io.StringIO()sortBy = "cumtime"ps = pst.

2021-02-26 16:42:16 361

原创 记录一次ubuntu的误操作

因为手欠删除了ubuntu自带的python3.8导致terminal打不开,文件夹打不开然后sudo apt remove python3导致ubunt桌面都显示不了,最后重新安装ubuntu-desktop有了界面terminal还是不行,于是找到了另一台电脑复制了/usr/bin/python3.8的文件,终于可以了文件夹还是打不开于是google sudo /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/就好了总结:千万.

2020-12-06 15:22:55 273

原创 ubuntu VirtualBox安装Windows虚拟机

https://blog.csdn.net/a805607966/article/details/105877055

2020-08-31 16:19:02 317

原创 即时消息系统-极客时间

开篇词 | 搞懂“实时交互”的IM技术,将会有什么新机遇?2014 年 Facebook 以 190 亿美元的价格,收购了当时火爆的即时通信工具 WhatsApp,而此时 WhatsApp 仅有 50 名员工。也就是说这 50 名员工人均创造了 3.8 亿美元的价值。这里,我们不去讨论当时谷歌和 Facebook 为争抢 WhatsApp 发起的价格战,从而推动这笔交易水涨船高的合理性,从...

2020-04-19 14:27:41 548

原创 大数据

HadoopNameNode和DataNode,在存储数据的时候会将数据进行切块,为了防止产生数据丢失,会将数据进行备份,称为副本-replication在Hadoop中默认的副本数为3在存储数据过程中会将数据进行切块(分片)每一个块称之为BlockBlock是HDFS的基本存储单位可以修改块的大小,在HDFS中会对Block进行编号将数据切块的意义:便于存储超大的文件、便于进行快速备...

2020-04-18 12:48:07 209

原创 Redis深度历险:核心原理与应用实践

基础和应用篇redis:远程字典服务json.dumps之后的数据类型是str可以将数据序列化之后存入redis用户获取信息只需要进行反序列化redis的字符串是动态字符串,可以修改,就是go中的切片,通过分配冗余空间来减少内存分配过期时间设置命令:expire name xredis的列表是链表不是数组,所以插入和删除非常快,但是索引定位很慢redis的...

2020-04-16 20:14:16 263

原创 Python的描述符

######################################################################################## Author : CHR_崔贺然# Time : 20200412# TODO : description描述符,需求做一个成绩管理系统,在property、staticmethod、classmethod中都有使用...

2020-04-12 12:45:50 112

原创 CSAPP读书笔记

第一章:计算机系统漫游每个字节表示程序中的某些文本字符(大部分计算机系统用ASCII标准来表示文本字符)gcc编译hello.c程序分为四个阶段:预处理、编译器、汇编器、连接器计算机硬件组成:总线、IO设备、主存、处理器从磁盘加载到主存可以不经过CPU利用DMA技术文件加载到主存处理器就开始执行程序,将字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备最终显示到屏幕上...

2020-04-09 12:40:42 342

原创 分布式系统:概念与设计读书笔记

分布式系统的特征分布式系统的例子:多人在线游戏,金融交易系统分布式系统的挑战是处理其组件的异构性、开放性、安全性、可伸缩性、故障处理、组件的并发、服务的高可用性分布式系统组件之间通过消息进行传递,rpc或者消息队列异步传递消息分布式系统的特征:并发、全局时钟、故障,构造分布式系统主要的动力来源于对共享资源的期望,资源这一个词非常抽象,从硬件到软件数据向计算移动:将数据都采集上来集中处...

2020-04-08 22:08:27 398

原创 20200401

TCP为什么是三次握手?tcp是可靠性的协议,我发送了必须要等对方收,如果 不回话就会重发。为什么要有序列号呢?因为tcp是全双工的,http是半双工,所以收发必须要有一个编号,来回复我收到了哪一条消息,是第一个还是第二个,在通信之前要同步序列化,最大的报文长度等等,但为什么不是4次握手呢?因为连接不允许在半打开的状态发送包HTTP协议中缓存的处理流程?过期的共享缓存输入...

2020-04-01 22:01:59 145

原创 Leetcode最长子串问题

动态规划局部练习def findMax(target: str): ''' type target: "aksfkjsdghguiqebgbrbgipqge" rtype : 最长的个数 ''' tmp_con = "" last_num = target[-1] l = len(target) while l: ...

2020-03-29 14:44:41 223

原创 链表模板

class ListNode: def __init__(self, val): self.val = val self.next = None # self.prev = Noneclass Solution: def reverseLinkedList(self, head: ListNode): prev,...

2020-03-29 14:39:15 124

原创 树的DFS遍历

from functools import lru_cacheclass TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None# 二叉树visited = set()@lru_cachedef DFS(node: TreeNod...

2020-03-29 14:38:33 399

原创 DFS电话号码问题,及通用解题模板

# 1.终止条件 2.当前层处理 3.递归下一层map = { 2: "abc", 3: "def", 4: "ghi", 5: "jkl", 6: "mno", 7: "pqrs", 8: "tuv", 9: "wxyz"}res = []def phone_num(target: str, depth: int, ...

2020-03-29 14:36:57 158

原创 Python中的lru_cache+genarator

from functools import lru_cacheimport time@lru_cache(maxsize=128)def fib(n: int): if n == 0: return 0 elif n == 1: return 1 return fib(n-1) + fib(n - 2)def run(): ...

2020-03-27 22:00:10 162

原创 读书笔记、思维导图

https://www.processon.com/view/link/5e7db46de4b092510f7b42cb

2020-03-27 16:10:39 141

原创 Python面试题

看完面经和最近的面试我自闭了,想进大厂不是那么容易的,需要扎实的基础本来以为Python学的不错但是和企业真正的大牛还差的很远,从今天开始刷遍全网Python面试题计划迭代器生成器是如何实现迭代的?首先生成器是特殊的迭代器,迭代器必须实现__iter__和__next__方法,每次通过next()不断循环迭代,生成器通过yield关键字来实现,返回一个生成器,cpu会进行一个挂起...

2020-03-25 22:01:50 269

原创 2020.3.25

Redis的RDB和AOFRDB是定时备份会定时fork一个子进程备份这段时间的数据,生成一个二进制的rdb文件AOF会记录所有的写操作记录到appendonly上保证数据的一致性但是rdb会越来越大,大到一定程度会影响性能,rdb还会有一定程度的数据丢失AOF会进行一个数据整合的操作,不过AOF是一个同步的操作,对性能会有影响redis的哨兵机制,哨兵进程会定期检测master服务是...

2020-03-25 14:40:38 105

原创 2020.3.23

用户访问www.baidu.com先会找本机host文件,再找本地设置的DNS服务器,如果没有就去找跟服务器,根据跟服务器返回的结果,没有找一级域名、二级域名、三级域名找到后返回给发请求的服务器保存一份后发送给客户端消息中间件是在消息的传递过程中保存消息的容器Nginx工作在网络的7层,可以针对http应用做一些分流策略,比如对域名、目录结构LVS对网络稳定性的依赖较高通过hash表来索...

2020-03-24 11:38:14 127

原创 大总结

LVS添加VIP虚拟IP添加的虚拟IP要和本机IP在一个网段,并且没有人使用,介意ping一下有人向这个虚拟ip发送请求就会转发到指定的网卡服务器不是路由器一般会关闭重定向的功能脏读:事务A读到了事务B未提交的部分不可重复读:两次读到的结果不一样,因为另一个事务下此过程中进行了提交幻读:因为别人执行了更新了操作,自己提交的时候发现id和上一个不连续了默认可重复读,幻度的情况可以在业...

2020-03-19 00:18:33 115

原创 数据结构与算法训练营

学习内容来自极客时间:极客大学—覃超第一节:概述学习过程打散知识点刻意练习反馈职业选手和业余选手的区别,一定要分解训练和反复练习不要一直待在舒适区反复练习苦练基本功反馈:GitHub、LeetCode多看别人的高质量代码CodeReview:别人给你反馈四步思考问题的方式:Cliarifation:确定题目Possible solutions:尽可能的多思考解题方...

2020-03-17 20:56:08 637

原创 Python中threading模块通过类来启动的,queue的生产者消费者模型

######################################################################################## Param Data @# Return @# TODO @ 使用队列进行线程之间通信# *# !# ?####################################################...

2020-03-10 23:12:48 115

原创 Python中的Lock()线程安全访问共享资源

import threading# 共享资源l = 0# 加锁lock = threading.Lock()def task_add1(): global l # 改成100w线程不安全的效果出来了 for i in range(1000000): # lock.acquire() l += 1 # lock....

2020-03-10 19:27:03 117

原创 Golang文章

golang的并发限制, 常见的做法就是channel缓冲机制element默认的padding:20pxz-index不生效和position有关合理的创建数据结构可以有效的利用v-for循环, 可以将图标的值设置成变量...

2020-03-08 23:45:02 115

原创 FastAPI准备之pydantic类型检查工具

pip install pydanticfrom typing import Listfrom datetime import datetimefrom pydantic import BaseModel, ValidationErrorclass User(BaseModel): id: int name = "chr" signUp_ts: dateti...

2020-03-06 12:38:10 5093 1

原创 Python 树的DFS

算法太NM难了######################################################################################## Author : CHR_崔贺然# Time : 2020# TODO : Python算法DFS思路: 1.终止条件 2.循环 3.筛选# * : 当问题可以抽象成不放回的格子问题就是n!问题可...

2020-03-03 15:57:58 577

原创 从metaclass到__init__, __new__, __call__到单例模式. 到threading中的with到__enter__, __exit__

从metaclass到__init__, new, __call__到单例模式到threading中的with到__enter__, exit到字典hashmap原理的__hash__, eq到Flask的配置文件__dir__的一些类信息__add__的原理获取传入参数的kwargs的技巧, 框架中使用class Foo(object): def __new__(cls, ...

2020-03-03 00:17:43 103

空空如也

空空如也

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

TA关注的人

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