随笔
文章平均质量分 73
随便写写
每 天 早 睡
不积跬步,无以至千里;不积小流,无以成江海
展开
-
Kubernetes(k8s)架构原理
比如在服务器上部署一个博客应用服务,但是太过受欢迎,访问量太大,应用服务经常会挂,使用自动重启工具,并且将应用服务部署在了好几个服务器上,总算抗住了。后来又上线了商城应用服务和语言应用服务,随着应用服务变多,需求也千奇百怪,有的应用服务不希望被外网访问,有的应用服务要求内存大于多少g才能跑,所以每次都要登录到各个服务器上执行手动操作更新,不仅容易出错,还浪费时间,那么问题来了,有没有办法能解决这个问题?当然有,就是在服务器和应用服务之间加一个中间层,这次我们加的中间层叫kubernetes。原创 2024-03-31 19:17:32 · 1505 阅读 · 2 评论 -
Linux(Ubuntu)环境下安装卸载Python3(避免踩坑)
注:windows下,直接在C:\Users\XXX\AppData\Roaming\pip目录中找到一个pip目录(没有就新建),找到文件pip.ini(没有就新建)进入/usr/local/目录,下载Python3,这里我下载的是python 3.8.10,如果要下载其他版本改下链接中的版本号,需与官网版本号对应。配置下安装目录,安装到之前创建的目录/usr/local/python3,目的是下次想卸载python直接卸载该目录下的即可。pip版本需要和python版本对应,升级下最新版本解决。原创 2024-02-08 00:52:05 · 2911 阅读 · 2 评论 -
算法、语言混编、分布式锁与分布式ID、IO模型
信息安全:如果ID是连续的,恶意用户的扒取工作就非常容易做了,直接按照顺序下载指定URL即可;对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源(空间复杂度)和时间(时间复杂度)却会有很大的区别。数据结构和算法是程序的基石。我们使用的所有数据类型就是一种数据结构(数据的组织形式),写的程序逻辑就是算法。在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式锁,那具体什么是分布式锁?全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求。原创 2023-10-23 00:44:54 · 706 阅读 · 0 评论 -
SQLAlchemy快速使用
sqlalchemy是一个基于python实现的orm框架,跟web框架无关,独立的。同步orm框架:django的orm(3.0以后支持异步)、sqlalchemy(大而重)、peewee(小而轻、同步和异步)异步orm框架:GINO(国内)补充:1.微服务框架有哪些?python:nameko(python界没有一个特别好的微服务框架)java:dubbo(阿里开源)、springcloud2.django的orm原生sql怎么写?原创 2023-08-07 00:32:21 · 438 阅读 · 0 评论 -
python--local对象、flask上下文源码分析
背景:多线成并发操作一个变量,会导致数据错乱,可以使用互斥锁加锁处理数据不安全的情况 (临界区)解决:使用local对象处理,多个线程操作的变量是local对象,就不会有并发安全的问题。因为它处理了并发安全的问题---->请求统一放在一个大字典中,key值是线程id号,value是个字典。1.基本使用不使用local,多线程并发操作,数据错乱使用local2.自己写一个local类,线程和协程并发安全通过字典自定义threading.local(函数):使用面向对象:通过__setattr_原创 2023-08-02 02:06:32 · 729 阅读 · 0 评论 -
python--pipreqs的使用、函数与方法、偏函数
方法,你得看谁来调用,如果类调用对象的方法,它就变成了普通函数,就不是方法了。咱们写项目,项目的依赖:requirements.txt文件。方法是函数,但是它会自动传值,面向对象中概念。函数就是普通函数,不会自动传值。原创 2023-08-02 01:19:20 · 1451 阅读 · 0 评论 -
快速上手分布式异步任务框架Celery
Celery:芹菜?(跟翻译没有任何关系),分布式异步任务框架(跟其他web框架无关)Celery is a project with minimal funding, so we don’t support Microsoft Windows. Please don’t open any issues related to that platform.(不支持windows)celery服务为其他项目服务提供异步解决任务需求的。架构分为三部分。原创 2023-05-07 22:44:42 · 927 阅读 · 2 评论 -
快速上手非关系型数据库Redis
1.非关系型数据库,纯内存操作,key-value存储,性能很高,可持久化(内存---->保存到硬盘上)2.缓存,计数器,验证码,geo地理位置信息,发布订阅,独立用户统计字符串,列表,hash,集合,有序集合4.6.x之前版本是单线程、单进程qps(每秒查询量):10w并发,实际6w并发为什么这么快?纯内存操作使用了io多路复用的模型避免了线程间切换的浪费5.安装官方提供了源码(C语言),编译安装编译型语言,如果要执行,需要在不同平台编译成不同平台的可执行文件linux版本安装。原创 2023-05-01 14:40:40 · 776 阅读 · 0 评论 -
python--面向对象进阶
方法,就是魔法方法,特定情况就会出发它的执行,不需要你调用。:动态的通过字符串获取对象的属性或方法,动态的设置对象的属性或方法。:判断一个对象是不是一个类的对象(包含父类):绑定给对象,在类内部,叫 _:判断第一个类是不是第二个类的子类。:查看一个对象是哪个类的对象。原创 2023-05-01 15:09:31 · 140 阅读 · 0 评论 -
轻松上手git代码版本管理工具--协同开发-冲突解决、线上分支合并以及使用pycharm操作git
---------------------------------------------以上操作可能是你领导做好了----------------------------------------------在线上完成dev合并到master---->提交一个pull request(pr)忽然发现有bug---->新建一个bug分支(基于master分支建立bug分支)新功能开发完了---->要合并到master分支---->v1.2。4.测试,领导要审查代码---->代码review。原创 2023-04-09 16:59:03 · 588 阅读 · 0 评论 -
轻松上手git代码版本管理工具--远程仓库、git命令、分支介绍
注意:增加了远程仓库,最开始只需要新增一个远程仓库,以后只需要pull拉取代码,和push推送本地代码到远程。/b/a.txt 项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤。工作区修改的内容(删除,新增,修改)---->提交到暂存区---->提交到版本库。注意:空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)/a.txt 项目中只有根目录下a.txt文件和文件夹会被过滤。a.txt 项目中所有a.txt文件和文件夹都会被过滤。原创 2023-04-09 01:18:33 · 577 阅读 · 0 评论 -
python--typing模块
对于如list列表等,还可以规定得更加具体一些,如:“-> List[str]”,规定返回的是列表,并且元素是字符串。在调用的时候如果参数的类型不正确pycharm会有提醒,但不会影响程序的运行。列表、元组、字典、集合:List,Tuple,Dict,Set。可迭代类型、迭代器类型:Iterable,Iterator。在传入参数时通过“参数名:类型”的形式声明参数的类型。返回结果通过"-> 结果类型"的形式声明结果的类型。整型,长整形,浮点型:int,long,float。Generator:生成器类型。原创 2023-04-06 01:08:14 · 272 阅读 · 0 评论 -
python--虚拟环境搭建(使用命令安装)
注意:如果你的操作系统安装两个或以上的python版本,输入python,系统会优先寻找到环境变量配置第一个python.exe路径。1.使用pycharm创建虚拟环境(之前的文章已经介绍过,不再赘述)2.环境升级不影响其他应用,也不会影响全局的python环境。----删除虚拟环境(删除当前虚拟环境要先退出)----进入、退出该虚拟环境的Python环境。----最后在pycharm中使用。----查看已有的虚拟环境。----为虚拟环境安装模块。----使用某个虚拟环境。----退出当前虚拟环境。原创 2023-04-05 16:12:39 · 1014 阅读 · 0 评论 -
python--pip换源以及第三方模块安装
敲回车,进入‘C:\Users\xxxx\AppData\Roaming’目录。4 在命令行输入pip install 模块名,优先从豆瓣源下载。1 去‘C:\Users\xxxx\’路径,在地址栏输入。2 新建 pip 文件夹并在文件夹新建pip.ini文件。3 新增 pip.ini 配置文件内容,并保存。统一修改,以后都走豆瓣源。可能自己写了模块(包),想传到。原创 2023-04-05 15:46:19 · 641 阅读 · 0 评论 -
python--模块导入的问题
包如果使用绝对导入,包路径改变了导入会有问题,比如script目录不是根目录,上面还有个X目录。如果导入飘红,并不一定是代码有问题,只需要把加到环境变量的路径,设为source root即可。不在这注册的,本意是只给包内部用,如果外部想用,使用完整路径导入使用。3 也可使用相对导入(使用相对导入的py文件,不能作为脚本运行)把包内部,很深的一些类,函数,给外部使用,需要在这注册一下。1 导入模块的路径,需要从环境变量下开始导入。注意:导入如果爆红,只是编辑器爆红。导入文件,使用最短路径导入。原创 2023-03-14 22:44:08 · 171 阅读 · 0 评论 -
python--环境变量与虚拟环境
如果装了不同版本的python解释器,在命令行执行python命令,怎么知道你执行了哪个版本的python解释器?出现如下页面,可以查看安装好的哪些可用或者不可用的环境,然后点击“+”号,进入配置虚拟环境页面;python安装路径的script路径:pip ,djangoadmin,第三方的可执行文件。选择File,选择Settings,进入以下页面,然后依次点击;命令安装库的时候,如果存在多个环境,也应该确认执行的是哪个。在命令行下,使用可执行文件,需要来到可执行文件的路径下执行。原创 2023-02-17 01:27:30 · 1625 阅读 · 0 评论