自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (4)
  • 收藏
  • 关注

原创 在阿里云Centos7.6上面配置Mysql主从数据库(master/slave),实现读写分离

在数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器负载,如此多的数据库连接操作,数据库必然会崩溃,数据库如果宕机的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:redis,如果资金丰厚的话,必然会想到架设mysql服务集群,来分担主数据库的压力。今天总结一下利用MySQL主从配置,实现读写分离,减轻数据库压力。

2020-05-29 09:50:02 348 1

原创 全方位360度无死角谈谈如何优化前端性能的总结

如果在循环中需要访问非本作用域下的变量时请在遍历之前用局部变量缓存该变量,并在遍历结束后再重写那个变量,这一点对全局变量尤其重要,因为全局变量处于作用域链的最顶端,访问时的查找次数是最多的。那么,前端优化的目的是什么?当link标签的href属性为空、script标签的src属性为空的时候,浏览器渲染的时候会把当前页面的URL作为它们的属性值,从而把页面的内容加载进来作为它们的值。总之,说白了,恰当的优化不仅能够改善站点的用户体验并且能够节省相当的资源利用,就是又让用户用的爽,又省了钱。

2020-05-28 15:41:16 518 1

原创 在Centos7.3下使用Siege对Django服务进行压力测试

综上,单以性能论,Django的表现并非很好,但是你不能忽略它的学习成本低,简单并且容易上手的优势,鱼与熊掌不能兼得,如果要求高性能,可以试试tornado, 如果tornado依然无法满足,可以尝试使用golang,毕竟golang是以高并发著称的编译语言,而且基于它的web框架也很容易上手,性能很可观,例如Iris。Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试。

2020-05-27 10:46:37 578 1

原创 在Centos下对高并发web框架Tornado的性能进行测试

大部分Web应用都是阻塞性质的,也就是说当一个请求被处理时,这个进程就会被挂起直至请求完成,比如Django,而Tornado的思想是当我们在等待结果的时候不阻塞,转而我们给框架一个回调函数作为参数,让框架在收到结果的时候通过回调函数继续操作。你打电话问书店老板有没有《python开发》这本书,如果是同步通信机制,书店老板会说,你稍等,”我查一下",然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果)。逻辑很简单,从数据库中读取一条数据,通过接口返回,服务监听8000端口。

2020-05-22 11:13:41 577 1

原创 Python3的单元测试模块Mock与性能测试模块CProfile

顾名思义,只测试当前单元的程序或者代码,也可以理解当前模块的代码块,单元测试假设所有的内部或外部的依赖应该是稳定的, 已经在别处进行测试过的.使用mock 就可以对外部依赖组件实现进行模拟并且替换掉, 从而使得单元测试将焦点只放在当前的单元功能。但是,由于B模块的改变,导致了A模块返回结果的改变,从而使A模块的测试用例失败。至此,使用cprofile就可以很简单的看出你写的程序是否性能堪忧了,不过性能这个问题其实是典型的木桶理论的场景,系统的整体性能是由最差的一块决定的。其中的 -s 的意思是 sort。

2020-05-18 13:13:27 716 1

原创 使用Hexo建立一个轻量、简易、高逼格的博客

在之前的一篇文章中,介绍了如何使用Hugo在三分钟之内建立一个简单的个人博客系统,它是基于go lang的,其实,市面上还有一款类似的静态页生成器,就是Hexo 读音/hækso/ ,它是基于node.js的,和Hugo一样,Hexo 正常来说,不需要部署到我们的服务器上,我们的服务器上保存的,其实是基于在hexo通过markdown编写的文章,然后hexo帮我们生成静态的html页面,然后,将生成的html上传到我们的服务器。这样你的静态内容空间就已经创建好了,在浏览器输入你的。然后运行hexo服务。

2020-05-17 22:13:43 375 1

原创 彻底弄清楚session,cookie,sessionStorage,localStorage的区别及应用场景(面试向)

Cookie机制:如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称会话cookie。如果在浏览器中设置了cookie的过期时间,cookie被保存在硬盘中,关闭浏览器后,cookie数据仍然存在,直到过期时间结束才消失。(2)节省网络流量:WebStorage不会传送到服务器,存储在本地的数据可以直接获取,也不会像cookie一样美词请求都会传送到服务器,所以减少了客户端和服务器端的交互,节省了网络流量;session的安全性大于cookie。

2020-05-15 09:48:00 1222 1

原创 搞清楚系统到底怎样支撑高并发以及架构图的绘制(面试向)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_95大多数人面试的时候经常会被问到:你简历上有高负载高并发的经验,那到底你的系统是怎样设计的?如果没有过相关的项目经验,大多数同学被问到这个问题压根儿没什么思路去回答,不知道从什么地方说起,其实,就算没有相关的经验,只要事先编好话术,搞清楚架构图,回答此类问题也还是可以滴水不漏的。首先,在脑子里虚拟一个大用户量背景下的场景,如果我们手头有几台4核8g的服务器,假设一个平台用户量是500万。此时日活用户是50万,日访问量在600-700

2020-05-14 12:38:14 460

原创 使用Python3将word文档和pdf电子书进行格式互转(兼容Windows/Linux)

安装windows字体(不装,会有乱码)将windows的字体复制到linux上C:WindowsFonts* windows上所有的字体(尝试过只复制部分,还是有乱码,全部字体就不会乱码了),上传到linux的/usr/share/fonts/chinese('chinese’目录是我自己建的,mkdir chinese)一些重要文档格式之间的互转在目前显得尤为重要,pdf作为通用格式在现在各个平台上兼容性是最好的,所以写python脚本将这些word文档批量转换pdf是最好的解决方案。

2020-05-13 12:25:10 1570 1

原创 Python花式读取大文件(10g/50g/1t)遇到的性能问题(面试向)

当我们使用 iter(callable, sentinel) 的方式调用它时,会返回一个特殊的对象,迭代它将不断产生可调用对象 callable 的调用结果,直到结果为 setinel 时,迭代终止。那么可以说上面的代码已经很好了。最后只需要两行代码,就构造出了一个可复用的分块读取方法,和一开始的”标准流程“按行读取 2GB 内存/耗时 65 秒 相比,使用生成器的版本只需要 7MB 内存 / 12 秒就能完成计算。如果被读取的文件里,根本就没有任何换行符,那么上面的第二个好处就不成立了。

2020-05-12 08:47:38 1192 1

原创 用户认证(Authentication)进化之路:由Basic Auth到Oauth2再到jwt

虽然基本认证非常容易实现,但该方案创建在以下的假设的基础上,即:客户端和服务器主机之间的连接是安全可信的。所以,如果有人对头部以及载荷的内容解码之后进行修改,再进行编码的话,那么新的头部和载荷的签名和之前的签名就将是不一样的。而且,如果不知道服务器加密的时候用的密钥的话,得出来的签名也一定会是不一样的。它自身(在 payload 中)就包含了所有与用户相关的验证消息,如用户可访问路由、访问有效期等信息,服务器无需再去连接数据库验证信息的有效性,并且 payload 支持为你的应用而定制化。

2020-05-11 11:06:52 2357 1

原创 Python3.7+Tornado5.1.1+Celery3.1+Rabbitmq3.7.16实现异步队列任务

在之前的一篇文章中提到了用Django+Celery+Redis实现了异步任务队列,只不过消息中间件使用了redis,redis作为消息中间件可谓是差强人意,功能和性能上都不如Rabbitmq,所以本次使用tornado框架结合celery,同时消息中间件使用Rabbitmq来实现异步发邮件,并且使用flower来监控任务队列。2、下载 RabbitMQ,(地址:http://www.rabbitmq.com/download.html )(注意:安装目录请选择默认目录)至此,整个流程就走完了。

2020-05-09 11:27:10 868 1

原创 利用基于Python的Pelican打造一个自己的个人纯静态网站

其实呢这么多年以来我一直建议每个有技术追求的开发者都要有写技术博客记笔记的良好习惯,一来可以积累知识,二来可以帮助别人,三来可以把开发中遇到的问题记录用来自省,第四可以通过交换友链来结识更多的技术领域的同仁。,这一次带来一款基于python的静态网页生成器Pelican,它是一位法国开发者开发的,非常好用,它的每一篇文章会事先渲染成HTML静态文件,访问速度非常快。安装过程过,会有很多需要你输入的配置项,如果不知道怎么填就直接忽略或者选择n,因为这些配置项在后面可以自己手动再添加的。

2020-05-08 12:04:28 707

原创 在centos7.6上部署前后端分离项目Nginx反向代理vue.js2.6+Tornado5.1.1,使用supervisor统一管理服务

这一次使用vue.js+tornado的组合来部署前后端分离的web项目,vue.js不用说了,前端当红炸子鸡,泛用性非常广,无论是单页应用,还是混合式开发app,亦或是微信小程序开发,样样得心应手,tornado最近的风头有点被新锐框架sanic抢走了,但是作为老牌的异步非阻塞框架,其内置了支持epoll/kqueue 等高效网络库,而具备了处理高并发的能力并且开发效率也不低,这一次tornado作为承载后端压力的角色。服务器需要暴露80端口,此时,测试一下,看看能否显示欢迎页。

2020-05-07 11:46:27 570 1

原创 流量如何才能变现?实际测试谷歌广告联盟(Google Adsense)的广告效果以及如何优化相关代码

2010年,谷歌正式退出中国市场,无数人扼腕叹息,如今十年过去了,谷歌还有两条重要的业务线并没有完全退出,一个是页面统计业务(Google Analytics),另外一个则是谷歌广告联盟(Google Adsense),说起广告联盟,玩儿过网站的朋友应该并不陌生,对于中小型站长、博主来说,要想通过网站的流量取得一些收入,除了和一些线下线上厂商谈包月广告位,更多的可能就是投放广告联盟广告了。但此类广告也不太科学,广告虽然没被点击,但是却被浏览者实实在在的浏览了,广告价值已经产生,但却没有给我们网站主收入。

2020-05-06 10:54:12 3206

原创 基于mpvue的框架开发微信小程序(搭建环境)

美团很早就开源了mpvue这个项目,如此看来,美团可不仅仅是一家团购网站,真正的技术驱动型企业,使得我们多了一种用来开发微信小程序的框架选项。由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一致的(某些功能由于受限于小程序环境本身的原因而不能使用,但是瑕不掩瑜),这给使用过Vue开发Web应用的前端开发者提供了极低的门槛来开发小程序。可以看到,和传统的vue项目没有任何差别,简直太友好了。之后,运行命令,创建一个mpvue的工程。

2020-05-05 08:37:16 706 1

原创 0202年,您真的需要Thrift这样一个RPC微服务框架来拯救一下传统HTTP接口(api)了

但毋庸置疑,HTTP接口由于受限于HTTP协议,需要带HTTP请求头,导致传输起来效率或者说安全性不如RPC,目前市面上流行的rpc框架有dubbo/hessian Thrift,阿里开源的dubbo固然还不错,但是本人更倾向于facebook开源的Thrift框架,这款框架在github上好评如潮,这一次我们使用的就是基于Thrift的thriftpy2框架。第三个来说就是安全性。服务端首先读取通信文件,然后建立起一个服务,监听6000端口,等待客户端请求,实际上服务端的方法也是主要业务逻辑编写的地方。

2020-05-04 07:57:19 734 1

原创 使用Python3.7结合Redisearch代替ElasticSearch实现的全文检索功能服务

检索”是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海量数据和高并发的时候,业界常用 elasticsearch 和 lucene 等方案,但是elasticsearch对运行时内存有着最低限额,其运行时大小推荐 2G 以上的内存空间,并且需要额外的磁盘空间做持久化存储。Redisearch 是一个高效,功能完备的内存存储的高性能全文检索组件, 十分适合应用在数据量适中, 内存和存储空间有限的环境。基于 snowball 的词干分析,多语言支持。

2020-05-03 21:41:30 1839 1

原创 关于Tornado5.1:到底是真实的异步和还是虚假的异步

Tornado的异步原理: 单线程的torndo打开一个IO事件循环, 当碰到IO请求(新链接进来 或者 调用api获取数据),由于这些IO请求都是非阻塞的IO,都会把这些非阻塞的IO socket 扔到一个socket管理器,所以,这里单线程的CPU只要发起一个网络IO请求,就不用挂起线程等待IO结果,这个单线程的事件继续循环,接受其他请求或者IO操作,如此循环。2)select 所维护的存储大量文件描述符的数据结构,随着文件描述符数量的增大,其复制的开销也线性增长。显然这种方式在单进程情况下不现实。

2020-05-01 20:42:53 645 1

原创 Docker容器保姆:在centos7.6上利用docker-compose统一管理容器和服务

可以发现,docker-compose将docker run命令整合到了一个docker-compose.yml配置文件中,对于大型Docker集群的管理是很方便的,例可以将多个service组合成更复杂的service组,为每个service指定不同的Dockerfile,然后把它们link在一起。众所周知,一个大型的Docker容器组成的微服务应用中,容器的数量是非常巨大的,如果依赖传统的人工配置方式进行维护,对于开发和运维来说简直就是噩梦。到此,我们已经完成了新建项目,编码,添加依赖等工作。

2020-05-01 11:16:31 602 1

人工智能深度学习,语音克隆项目 Bert-vits2项目, 模型:星之守护者阿狸 语言:中文,训练步数:6000 版本号:2.3

人工智能深度学习,语音克隆项目 Bert-vits2项目,目前效果最完美的开源TTS项目 版本号:2.3 文件包括,模型本体G_6000.pth 配置文件config.json 星之守护者阿狸 语音模型,语言:中文,训练步数:6000 语气韵律完美,抑扬顿挫,语笑嫣然,自然流畅,适合作为小说阅读、口播、口替等功能领域。 请勿用于非法用途,也不得用作商业领域。

2023-12-28

人工只能深度学习,语音克隆项目 Bert-vits2项目 版本号:2.3 天童爱丽丝语音模型,语言:日语,训练步数:6000

人工智能深度学习,语音克隆项目 Bert-vits2项目,目前效果最完美的开源TTS项目 版本号:2.3 文件包括,模型本体G_6000.pth 配置文件config.json 天童爱丽丝语音模型,语言:日语,训练步数:6000 语气韵律完美,抑扬顿挫,语笑嫣然,自然流畅,适合作为小说阅读、口播、口替等功能领域。 请勿用于非法用途,也不得用作商业领域。

2023-12-28

微软MCP中级认证原题

微软国际认证原题,中级测试,一共160道,考过的人都知道,大约抽其中的60道

2009-03-21

基于PHP的影视商城网络平台

逛了csdn很久,好像很少有人把自己的PHP工程放上来和大家分享,本人从来就崇尚开源节流,所以把自己做的一个购物类网站放上来,本网站后台是按照oop编程模式制作的,前台的设计,Flash动画的制作都是本人独立完成的。使用的是Mysql数据库,脚本放在工程根目录的db包下,购物车使用较流行的session存储方式,希望能给广大初学者以帮助!有问题和我联系qq164850527

2009-03-03

基于JAVA开发的证交所管理系统 B/S版

包括开发设计文档,数据库脚本,以及源代码,运用了几乎所有的J2se的基本技术,数据库之所以选择了微软的sql-server是因为考虑到现实环境下的应用,从而舍弃了相对简单方便的my-sql

2008-10-29

用C#写的小游戏:俄罗斯方块

用C#写的小游戏,俄罗斯方块,直接调试运行即可

2008-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除