- 博客(57)
- 收藏
- 关注
原创 python线程池提交任务
2. 方式提交 这种提交方式是一条一条地提交任务:1. 可以提交不同的任务函数;2. 线程池的线程在执行任务时出现异常,程序不会停止,而且也看不到对应的报错信息;3. 得到的结果是乱序的。3. 方式提交 这种提交方式可以分批次提交任务:
2024-01-07 18:19:40 923 1
原创 Centos安装Kafka(KRaft模式)
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。其核心组件包含Producer、Broker、Consumer,以及依赖的Zookeeper集群。其中Zookeeper集群是Kafka用来负责集群元数据的管理、控制器的选举等。由于重度依赖Zookeeper集群,当Zookeeper集群性能发生抖动时,Kafka的性能也会收到很大的影响。因此,在Kafka发展的过程当中,为了解决这个问题,提供KRaft模式,来取消Kafka对Zookeeper的依赖。
2023-12-30 11:10:35 848
原创 Django系列之Celery异步框架+RabbitMQ使用
在Django项目中,如何集成使用Celery框架来完成一些异步任务以及定时任务呢?
2023-12-11 23:06:26 1157 1
原创 Apache Sqoop使用
Apache Sqoop 是在 Hadoop 生态体系和 RDBMS 体系之间传送数据的一种工具。Sqoop 工作机制是将导入或导出命令翻译成 mapreduce 程序来实现。在翻译出的 mapreduce 中主要是对 inputformat 和 outputformat 进行定制。Hadoop 生态系统包括:HDFS、Hive、Hbase 等RDBMS 体系包括:MySQL、Oracle、DB2 等Sqoop 可以理解为:“SQL 到 Hadoop 和 Hadoop 到 SQL”。
2023-12-04 22:35:35 1030
原创 fabric构建自动部署服务
fabric 是python 的一个第三方库,同时它也是一个命令行工具。它提供了丰富的同 SSH 交互的接口,可以用来在本地或远程机器上自动化、流水化地执行 shell 命令。使用 fabric 提供的命令行工具,可以很方便地执行应用部署和系统管理等操作。因此它非常适合用来做应用的远程部署及系统维护。
2023-11-28 21:23:33 692 1
原创 Django系列之Serializer的source参数使用、自定义序列化方法
用于显示 choices 参数对应的文本信息。的 0 和 1 改成字符串形式再试试。使用默认的序列化器时,视图函数访问。还是没有显示出对应文本信息?当然,也可以在视图函数中,使用。来获取choices文本值。字段时,返回的数据只有。字段对应的文本信息。自定义序列化输出方法。
2023-11-05 12:02:44 846 1
原创 Django系列之DRF搜索和过滤
过滤器中常用的字段类型,这些类型要和模型中对应的字段类型兼容:CharFilter 字符串类型BooleanFilter 布尔类型DateTimeFilter 日期时间类型DateFilter 日期类型DateRangeFilter 日期范围TimeFilter 时间类型NumberFilter 数值类型,对应模型中IntegerField, FloatField, DecimalField字段内参数说明:field_name:过滤字段名,对应模型中的字段名。
2023-10-22 14:07:53 925
原创 CSRF Token为什么写在Cookie中?CSRF漏洞分析
CSRF或XSRF,跨站请求伪造。简单地说,就是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。这里最最关键的因素是令牌。用户在网站A登陆成功后,服务端颁发令牌并存储到浏览器中。
2023-10-21 13:50:15 929
原创 Django系列之Channels
Django 中的 HTTP 请求是建立在请求和响应的简单概念之上的。浏览器发出请求,Django服务调用相应的视图函数,并返回响应内容给浏览器渲染。但是没有办法做到。因此,WebSocket 就应运而生了。WebSocket 是一种基于 HTTP 基础上进行全双工通讯的协议。WebSocket允许服务端主动向客户端推送数据。在WebSocket协议中,浏览器和服务器只需要完成一次握手就可以创建持久性的连接,并在浏览器和服务器之间进行双向的数据传输。
2023-07-30 19:43:24 3406 2
原创 Django系列之DRF简单使用
models.pyserializers.pyapp01/views.pyproject/urls.pyapp01/urls.py使用 可以帮我们实现五个基础的 action 方法:{“get”: “list”, “post”: “create”, “get/id”: “retrieve”, “put”: “update”, “delete”: “`destroy”}如果需要增加一些其他自定义视图函数,则需要使用到 装饰器: 参数: or ,如果视图中需要用到pk值,那就让 。True
2023-07-30 12:45:57 1305
原创 Oracle绑定变量
变量绑定会使OLTP系统数据库中的SQL 执行速度飞快,内存效率极高;不使用绑定变量可能会使OLTP 数据库不堪重负,资源被SQL解析严重耗尽,系统运行缓慢。对OLTP和OLAP不了解的可以查看这篇文章:OLTP vs OLAP。首先理解一下为什么需要绑定变量?
2023-07-22 12:25:31 1120
原创 常见的设计模式
这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。用来定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都得到通知并自动更新。内容: 将一个类的接口转换成客户希望的另一个接口,即为了统一接口。优点:扩展性高,每个具体产品都对应一个具体工厂类,要增加一个产品,只要扩展一个具体工厂类就可以;隐藏了对象创建的实现细节;创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。使用场景: 1.需要生成的对象具有复杂的内部结构,2.需要生成的对象内部属性本身相互依赖。
2023-06-12 16:54:23 109
原创 面向对象设计原则
什么是接口:接口就是实现了若干抽象方法的集合。接口的作用:限制实现接口的类必须按照接口给定的调用方式实现这些方法;对高层模块隐藏了类的内部实现。Payment.pay() 就可以理解为是一个接口。像AliPay或者WechatPay这种上层应用,必须按照接口规定去实现这些方法。
2023-06-11 23:27:02 99
原创 mongodb聚合操作
聚合操作处理数据记录并返回计算结果(诸如统计平均值,求和等)。聚合操作组值来自多个文档,可以对分组数据执行各种操作以返回单个结果。聚合操作包含三类:单一作用聚合、聚合管道、MapReduce。
2023-06-11 13:29:06 2268
原创 mongodb集合文档操作
该操作会返回符合查询条件的文档数据,并完成对文档的修改,默认情况下,findAndModify 会返回修改前的“旧”数据。注意: remove、deleteMany等命令需要对查询范围内的文档逐个删除,如果希望删除整个集合,则使用drop命令会更加高效。默认情况下,update命令只在更新第一个文档之后返回,如果需要更新多个文档,则可以使用。upsert是一种特殊的更新,其表现为如果目标文档不存在,则执行插入命令。命令会删除匹配条件的全部文档,如果希望明确限定只删除一个文档,则需要指定。
2023-06-11 08:00:00 279
原创 docker数据卷和数据卷容器
这就产生了数据卷的概念,其实就是目录的挂载。将我们容器内的数据目录,挂载到linux宿主机上,相当于宿主机目录和容器内目录做一个映射,这样容器内产生的数据就会同步到宿主机,反之宿主机产生的数据也会同步到容器内目录。容器运行时,产生的应用数据都保存在该容器中,那么我们将容器删除,产生的应用数据岂不是都丢失了?匿名挂载对于数据卷的查询方式,没有具名挂载查的方便,所以大多数情况下推荐使用。一旦看到ro,就说明这个路径只能通过宿主机来操作,容器内是无法操作的。示例:给nginx的配置目录设置只读权限。
2023-06-01 12:02:01 904
原创 docker镜像原理
最大的好处,莫过于是资源共享了。比如有多个镜像都从相同的 Base 镜像构建而来,那么宿主机只需在磁盘上保留一份 base 镜像,同时内存中也只需要加载一份 base 镜像,这样就可以为所有的容器服务了,而且镜像的每一层都可以被共享。所有的 Docker 镜像都起始于一个基础镜像层,当进行修改或增加新的内容时,就会在当前镜像层之上,添加新的镜像层。镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
2023-06-01 10:22:06 291
原创 docker镜像容器操作指令
从docker hub(https://hub-stage.docker.com/)查找需要的镜像,然后根据需要拉取镜像。有坑:后台启动后,docker ps 找不到该容器,是因为没有前台进程使用这个容器,docker自动停止该容器。
2023-06-01 01:23:03 1156
原创 python协程实现
在协程中,只要和IO任务类似的、耗费时间的任务都需要使用yield from 来进行中断,达到异步功能。通过 async & await 来将一个函数分成多个段,而这些段都是协程里面调度的单位,粒度比进程、线程都要小。uvloop是asyncio事件循环的替代方案,在效率上uvloop事件循环 > python默认的asyncio事件循环。协程,也可以被称为微线程,是一种用户态内的上下文切换技术。进程和线程是内核级别的程序,而协程是函数级别的程序,是可以通过人为调用函数来实现的,核心机制就是。
2023-05-31 14:31:33 270
原创 celery异步任务队列
celery是一个强大的分布式任务队列的异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行。通常用来实现实时处理的异步任务队列,和定时任务调度。异步任务:将耗时任务提交给celery去异步执行,比如发送短信/邮件、消息推送、音视频处理等。定时任务:定时执行某件事情,比如每天数据统计。celery架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。
2023-05-30 19:47:49 683
原创 Supervisor进程管理
Supervisor是用Python开发的进程管理工具,可以很方便的用来启动、重启、关闭一个进程或者多个进程,而不仅仅是 Python 进程。supervisor监听到进程死后,可以很方便的让进程自动恢复,不再需要程序员或系统管理员自己编写代码来控制。
2023-05-29 11:15:48 171
原创 nginx+uWSGI+flask简单部署
flask和Django一样,它们内部都没有实现socket服务端,需要依赖wsgi,而werkzurg作为flask依赖的wsgi,本质上提供了socket服务端,用于接收用户请求。它有着性能块,内存占用低,详尽的日志功能,高度可定制等优点。不使用nginx服务也可以起来,为什么还需要使用nginx呢?192.168.3.40:nginx代理服务器。192.168.3.41:flask服务1。192.168.3.42:flask服务2。停止flask项目脚本:stop.sh。
2023-05-28 19:27:26 1056
原创 flask的异常处理
程序异常时,abort 错误码 即可抛出异常,app的错误处理装饰器会执行和错误码参数(500) 相一致的函数(handle_500_error)。
2023-05-24 22:31:50 148
原创 flask的生命周期和g对象
在flask的一次请求周期中,可以给g对象设置属性值,那么本次周期中的所有请求都可以读取该值,相当于是一次请求周期中的全局变量。3. 被before_request装饰的函数添加到函数列表中,被after_request装饰的函数添加到函数列表中。6. 执行所有的after_request函数,并将session加密放入到cookie中。首先了解flask一次请求的生命周期,分两个阶段,项目启动阶段和请求到来阶段。2. 创建app_ctx=AppContext对象,内部封装了App和g。
2023-05-24 16:24:45 344
原创 CentOS7 安装hive
因为Hive的运行依赖于Hadoop(HDFS,MapReduce,YARN都依赖),同时涉及到HDFS文件系统的访问,所以需要配置Hadoop的代理用户,即设置Hadoop用户允许代理其他用户。MySQL8.0.13 链接:https://pan.baidu.com/s/1JLzMDkF5Mxco9VLzXy-aQg 提取码: sql8。MySQL驱动jar包 链接:https://pan.baidu.com/s/1Nu1Q-5KyOv6I-d-kqyj_oA 提取码: jar8。
2023-05-17 16:31:21 338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人