Python异步Redis阻塞式连接池的使用 前言aioredis是Python里比较常用的一款异步Redis库,本文会介绍它提供的两种连接池 ConnectionPool12345678redis_pool = aioredis.ConnectionPool.from_url( "redis://:pwd@127.0.0.1/0", max_connections=10, dec 2022-08-31
用餐厅经营来讲解什么是微服务,K8S,消息队列 前言虽然之前就介绍过微服务,但当时自己也是似懂非懂的状态,缺乏实战经验。近期实战后对微服务相关的概念更加深刻,因此写下这篇文章,希望能够帮助到更多正在学习中的人。本文会提到微服务和k8s的相关概念,包括k8s中的pods,nodes,services等。 概念单线程佟掌柜开了一家同福客栈,经营着餐饮和住宿。刚开始,店铺里只有一个店员“吕秀才”,他的月薪是5k。当他接到一个外卖订单时,他立马跑到厨房 2022-07-16
浅谈我对前端框架的理解 一,初识框架有次参加公司的cloudbase活动,要求就是用相关的设施做一个项目。于是我和同事一拍即合,同事写前端,我写后端。当我去窥屏的时候,只看到了什么npm, install 这些难懂的东西。更让我匪夷所思的是,为什么前端还需要开一个server,难道不是直接index.html直接在浏览器打开就可以了吗。读了半本《head first html》的我,回到工位上,开始思考着前端。究竟是人性 2022-07-16
浅谈我对中台,中间件,微服务的认识 一,中间件拿脉脉的搜索功能举例子,搜索功能分为 找人,搜职位,搜内容。初学后端的人一般是这么设计这三个api的:写三个函数,对应三个不同的功能,每个函数执行时都会取出request里包含的session,拿这个session验证合法性,如果合法则继续执行后面的部分并返回,否则直接返回。由于验证session这部分重复率很高,我还把这部分写成一个函数,每个功能只要调用这个函数就可以验证了。随着时间的 2022-07-12
Python基于异步库实现Redis分布式锁 什么是分布式锁?分布式锁用于控制分布式系统中不同进程共用访问共享资源的一种锁实现。在同一进程中,可以很轻易的使用锁。但是在不同进程中,就需要利用到一些中间件比如Redis实现锁的机制,以防止干扰,保证一致性。 需要用到Redis哪些特征?分布式锁主要用到Redis的setnx以及expire。setnx用于设置一个key,如果该key不存在,则设置成功。反之亦然。expire用于给一个key添加一 2022-07-07
Apple M1安装Tensorflow 前言最近开始在m1上跑tensorflow,但是发现一旦导入’tensorflow’这个包,就会导致整个Python退出。这个Python是由Anaconda创建的虚拟环境,排查了一下才发现原来之前安装的一直是X86的Python. 在网上看到的教程,很多人都说需要安装miniconda,或者是Python3.7 . 但是经过测试,发现是可以安装在Anaconda的Python3.9的. 开始安装 2022-07-02
Python异步RabbitMQ库aio_pika无法连接的问题解析 前言在RabbitMQ创建了一个名为’/test’的Virtual Host. 在使用pika库进行连接的时候可以正常连接上,但当使用aio_pika库的时候,总是连不上。 代码12345678910credentials = pika.PlainCredentials('user', 'password')connection = pika.Bl 2022-06-10
Sanic的类视图函数应该如何写装饰器? 前言 为了更好的创建一个 web API,在编码时遵循“一次且仅一次”的原则很有必要的,而使用装饰器则是遵循这些原则的最好方式之一,您可以将特定的逻辑进行封装,灵活的在各种响应函数上复用。在Sanic的官方文档中,只提到了在普通视图函数上使用装饰器的方法。但在更多情况下,后端都是类视图函数的结构。本文将会介绍如何在类视图函数中使用装饰器。 开始12345678class AccessLog: 2022-05-21
在M1实现Python调用GO动态链接库 前言众所周知,Python作为一门解释性语言,在面对CPU密集型任务时的运行效率一直收到诟病。而Go语言在同样任务的情况下,效率甚至可以达到Python的几十倍。但Python的开发效率是比Go高的,那么有没有一种方法可以结合Python的开发效率和Go的运行效率呢?有,那就是用Python调用Go的动态链接库。 开始首先我们先编写Go的代码以斐波那契数列为例 123456789101112131 2022-05-19