主页

go语言实现视频上传下载

用go语言实现视频的上传和下载 项目结构 main.go package main import ( "github.com/julienschmidt/httprouter" "log" "net/http" ) type MiddlewareHandler struct { r *httprouter.Router l *ConnLimiter } func NewMiddlewareHandler(r *httprouter.Router, concurentLimit int) http.Handler { h := MiddlewareHandler{r: r, l: NewConnLimiter(concurentLimit)} return ...

阅读更多

nginx常用配置

最简洁配置 user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { # Basic Settings # 做了最简单的一个静态代理 server { listen 80; server_name www.azhangbaobao.cn; location / { root /home/ubuntu/课件/爬虫课件; index index.html; } } sendfile on; tcp_nop...

阅读更多

ssh端口转发

为什么写这篇文章 一般公司会把服务器放在内网中, 比如数据库只能通过跳板机来访问, 这就导致一些很好用的工具, 比如navicat,studio 3T, adminMongo这样的图形界面工具与生产数据库无缘了, 程序员只能带着命令行里玩泥巴. 好一点的给你的TUI(终端图形界面), 或者有个自动提示, 比如mycli, postcli依靠可怜的tab提示自娱自乐.对于效率来说, 阿章觉得这还是在玩泥巴. 然后呢? 公司会给你个VPN, 在公司可以拨通VPN然后再被限定了端口范围里面, 可以直接本机连. 在家还要拨通VPN去连公司的数据库, 阿章觉得这样不好玩. 下面的部分参考了阮一峰的博客 SSH原理与运用(二):远程操作与端口转发, 但是做了修改.大神的介绍深入浅出, 而且...

阅读更多

docker从入门到日常

安装 安装 centos: sudo yum -y install docker-io Ubuntu: sudo wget -qO- https://get.docker.com/ | sh 如果是ubuntu14.04安装最新版本需要升级内核之后重启 执行 sudo apt-get install --install-recommends linux-generic-lts-xenial 然后reboot. 如果为了不重启可以按照低版本docker sudo apt-get -y install --force-yes dock...

阅读更多

周末大放送:自制麻辣小龙虾

先上图 食材 小龙虾 葱 蒜 香菜 芹菜 朝天椒 小龙虾底料 盐 油 生抽 料酒 操作步骤 首先准备活的小龙虾, 最好是能动的那种, 我传了一个视频见证一下(视频只有3s, 不费流量) 将小龙虾放入煮锅当中, 放入一些醋, 把小龙虾煮死😆 小龙虾捞出来, 控水 清洗小龙虾, 用剪刀剪掉虾头, 小龙虾的尾巴有三片,把中间那一片抽出来, 会连带着抽出虾肠. 把绒毛状的腮剪掉. 用牙刷把腹部, 侧面的脏东西都刷干净. 我买了20只, 弄了好大一会儿, 不过以后就熟练了, 就快了. 准备其他东西. 小葱切段, 大...

阅读更多

mongodb所有问题汇总

安装mongodb centos7安装mongodb 创建/etc/yum.repos.d/mongodb-org-4.0.repo文件,编辑内容如下: name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc 运行以下命令安装最新版的mongodb: sudo yum **install** -y mongodb-org 配置mongod.conf允许远程连接: v...

阅读更多

python在多个线程当中,开启多个事件循环

参考链接 深入理解asyncio(三) 我自己写的总结 背景 我一直在想, 虽然异步代码切换很快, 比多线程多进程能创建更多的协程来支持并发. 但是事件循环只能在单进程单线程当中进行并发. 有没有可能在多线程中, 每个线程再开启一个事件循环呢? 研读了董伟明的公众号之后, 发现原来可以😺. 但是多进程不可以. 因为EventLoop对象不能被管道传递, 而python多进程的本质是底层通过管道来发送消息进行通信. 逻辑要点 在主线程当中通过asyncio.new_event_loop创建三个事件循环. 然后开启三个线程, 分别将对应的事件循环跑起来. 通过asyncio.run_coroutine_threadsafe(coroutine_object, loop_obj...

阅读更多

总结epoll

参考链接 epoll 的本质是什么? 总结 epoll本质的第一步 是知道网卡把从网线接收到的数据写进内存,第二步如何知道接收到了数据,是网卡写完以后给cpu发送一个中断信号,然后操作系统知道了再去执行网卡中断程序,第三步为什么recv或者accept这样的阻塞方法不占用cpu资源呢?可以从操作系统进程管理的角度来理解,假设有三个进程A B C同时运行着,那么他们都在工作队列里面,被cpu分时执行,这时候进程A创建了一个socket对象,对象包含发送缓冲区 接受缓冲区和等待队列,执行recv的时候操作系统会把进程A的引用从工作队列移入到等待队列,这样就不占用cpu资源了,等到socket接收到数据之后,操作系统再把进程A从等待队列移入工作队列,也就是唤醒进程A,此时接收缓冲区已经...

阅读更多