搞清楚系统到底怎样支撑高并发以及架构图的绘制(面试向) by Liu Yue/2019-07-02 大多数人面试的时候经常会被问到:你简历上有高负载高并发的经验,那到底你的系统是怎样设计的? 如果没有过相关的项目经验,大多数同学被问到这个问题压根儿没什么思路去回答,不知道从什么地方说起,其实,就算没有相关的经验,只要事先编好话术,搞清楚架构图,回答此类问题也还是可以滴水不漏的。 首先,在脑子里虚拟一个大用户量背景下的场景,如果我们手...... 了解更多
使用Hexo建立一个轻量、简易、高逼格的博客 by Liu Yue/2019-06-25 在之前的一篇文章中,介绍了如何使用Hugo在三分钟之内建立一个简单的个人博客系统,它是基于go lang的,其实,市面上还有一款类似的静态页生成器,就是Hexo 读音/hækso/ ,它是基于node.js的,和Hugo一样,Hexo 正常来说,不需要部署到我们的服务器上,我们的服务器上保存的,其实是基于在hexo通过markdown编写的文章,然后hexo帮我们生成静态的html页面,然后,将生成的html上传到我们的服务器。简而言之:hexo是个静态页面生成...... 了解更多
python3的单元测试模块mock与性能测试模块cProfile by Liu Yue/2019-06-14 我们知道写完了代码需要自己跑一跑进行测试,一个写好的程序如果连测试都没有就上到生产环境是不敢想象的,这么做的人不是太自信就是太无知。 传统测试无非就是自己运行一下程序查看结果,或者前后端服务进行联调,这里要说的是走正规流程的单元测试,那到底什么是单元测试呢?顾名思义,只测试当前单元的程序或者代码,也可以理解当前模块的代码块,单元测试假设所有的内部或外部的依赖应该是稳定的, 已经在别处进行测试过的.使用mock 就可以对外部...... 了解更多
关于mysql联合索引的最左前缀原则以及b+tree by Liu Yue/2019-06-10 软件版本mysql5.7 根据官网的文档 https://dev.mysql.com/doc/refman/5.7/en/multiple-column-indexes.html 查询条件要符合最左原则才能使用到索引 首先说说联合索引的好处: ...... 了解更多
在Mac下使用MindMaster画思维导图(脑图) by Liu Yue/2019-06-06 众所周知,老牌的脑图软件是xmind,这里我们使用MindMaster,二者有什么异同呢? 相同点:都是国产软件,都分为国内版和国外版本,都有免费版和付费版。在功能方面相同点较多,比如插入节点、关系线、标注。拖拽操作、内置图标、备注、幻灯片演示、甘特图、自动排版、云存储等功能。并且同样支持Windows、mac和Linux系统。  ...... 了解更多
在Centos下对Tornado的性能进行测试 by Liu Yue/2019-06-04 在之前的一篇文章中,我们在1g1核的惨淡硬件环境下,对 uwsgi + django 和 gunicorn+ django 的后端服务进行性能测试,得出结论单台django在简单读库操作下只能抗住大约200左右的并发:在Centos下使用Siege对Django服务进行压力测试 这一次,我们在相同的背景下,对三大框架中,以性能著称于世的Tornado进行并发测试,看看它的性能到底有多高。 &nb...... 了解更多
在Mac os 下配置Go lang 开发环境 by Liu Yue/2019-06-02 首先,下载安装包,国内可以在这上面下载https://studygolang.com/dl 目前的稳定版是go1.12.5.darwin-amd64.pkg 下载安装后,配置环境变量 vim ~/.bash_profile 在文件内最后加入# Enable the go modules feature...... 了解更多
在Centos下使用Siege对Django服务进行压力测试 by Liu Yue/2019-05-31 Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试。今天我们就使用Siege来对Django进行一次压力测试,看看单台Django服务到底能抗住多少的并发数。 首先安装Siege wget http://download.joedog.org/si...... 了解更多
具体谈谈如何优化前端性能的总结 by Liu Yue/2019-05-30 前端是庞杂的,包括 HTML、 CSS、 Javascript、Image 、Video等等各种各样的资源。前端优化是复杂的,针对方方面面的资源都有不同的方式。那么,前端优化的目的是什么 ? 从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。 从服务商角...... 了解更多
在阿里云Centos7.6上面配置Mysql主从数据库(master/slave),实现读写分离 by Liu Yue/2019-05-29 在之前的一篇文章中,阐述了如何在高并发高负载的场景下使用nginx做后台服务的负载均衡:在阿里云Centos上配置nginx+uwsgi+负载均衡配置,但是不要以为这样做了就是一劳永逸的,到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器负载,如此多的数据库连接操作,数据库必然会崩溃,数据库如果宕机的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:redi...... 了解更多
在阿里云Centos7.6上利用docker搭建Jenkins来自动化部署Django项目 by Liu Yue/2019-05-28 一般情况下,将一个项目部署到生产环境的流程如下: 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚。 整个过程相当复杂而漫长,其中还需要输入不少的命令,比如上传代码,git的拉取或者合并分支等等。 &nb...... 了解更多
在阿里云Centos7.6上面部署基于redis的分布式爬虫scrapy-redis by Liu Yue/2019-05-27 Scrapy是一个比较好用的Python爬虫框架,你只需要编写几个组件就可以实现网页数据的爬取。但是当我们要爬取的页面非常多的时候,单个服务器的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来。 而Scrapy-Redis则是一个基于Redis的Scrapy分布式组件。它利用Redis对用于爬取的请求(Requests)进行存储和调度(...... 了解更多
使用基于Vue.js和Hbuilder的混合模式移动开发打造属于自己的移动app by Liu Yue/2019-05-26 近几年,混合模式移动应用的概念甚嚣尘上,受到了一些中小型企业的青睐,究其原因,混合模式开发可以比传统移动开发节约大量的开发成本和人力成本。 Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。 说白了,如果走传统移动开发路线,...... 了解更多
利用基于Go Lang的Hugo配合nginx来打造属于自己的纯静态博客系统 by Liu Yue/2019-05-23 Go lang无疑是目前的当红炸子鸡,极大地提高了后端编程的效率,同时有着极高的性能。借助Go语言我们 可以用同步的方式写出高并发的服务端软件,同时,Go语言也是云原生第一语言,Docker,Kubernetes等等著名的项目都是使用Go语言实现的。 Hugo 是基于 Go 语言的静态网站生成器。 什么是静态网站生成器?顾名思义,就是以最快的...... 了解更多
在阿里云服务器上使用Nginx部署https协议的网站 by Liu Yue/2019-05-21 之前写过一篇文章是在阿里云服务器上用Apache切换https协议:将博客迁移阿里云并且切换成https解析的过程 这一次,换成使用Nginx来部署,相比之下,比Apache的配置要简单一些 如何申请SSL证书就按下不表了,非常简单,目前阿里云和腾讯云都免费提供一年的证书服务,区别就是腾讯云不需要域名在腾讯,而阿里云只有域名在阿里旗下才提供。 ...... 了解更多
python3.7.3操作FastDfs来进行文件操作 by Liu Yue/2019-05-20 在之前的一篇文章中:利用Docker来搭建分布式文件系统FastDfs,我们已经搭建好了FastDfs分布式文件系统,并且已经可以通过命令进行上传操作,那么如何使用python来上传文件呢? 很简单,还是利用docker的特性,我们知道docker 的 -v 参数,可以自动挂载宿主机的文件件到容器中去,这样宿主和容器就可以进行无障碍的文件共享,我们通过-v参数,把宿主机的root目录自动挂载到docker容器...... 了解更多
利用Docker来搭建分布式文件系统FastDfs by Liu Yue/2019-05-19 对于文件存储来说,一般情况下简单的处理就是在Django配置文件中配置存储目录,按照规则对文件进行上传或者下载。 实际上,当文件较少的时候,Django是可以应付的过来的。但当文件以海量形式出现的时候,Django就并不是那么好用了,于是Fast DFS应运而出。 FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括...... 了解更多
在阿里云Centos7.6上部署Supervisor来监控和操作各类服务 by Liu Yue/2019-05-17 Supervisor 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。 &n...... 了解更多
在阿里云Centos上配置nginx+uwsgi+负载均衡配置 by Liu Yue/2019-05-17 负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理后端,Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers, 后面简称backend)来做复杂的计算、处理和响应,并且在业务量增加的时候可以方便地扩容后台服务器。 说白了就是,随着业务和用户规模的增长,仅仅一台服务器...... 了解更多
利用Docker挂载Nginx-rtmp(服务器直播流分发)+FFmpeg(推流)+Vue.js结合Video.js(播放器流播放)来实现实时网络直播 by Liu Yue/2019-05-16 众所周知,在视频直播领域,有不同的商家提供各种的商业解决方案,其中比较靠谱的服务商有阿里云直播,腾讯云直播,以及又拍云和网易云的有偿直播服务,服务包括软硬件设备,摄像机,编码器,流媒体服务器等。但是其高昂的费用以及较高的准入门槛让许多个人和小型企业望而却步,本文要讲解的是如何使用nginx-rtmp搭建直播服务器,配合FFmpeg推流,在网页端vue.js作为载体利用video.js作为流播放器,打造一套可用的在线视频直播方案。 ...... 了解更多