1.odoo
Odoo(先前曾名为OpenERP,更早之前则为TinyERP),是一套企业资源规划(ERP)及客户关系管理(CRM)系统。以Python语言开发,数据库采用开源的PostgreSQL,系统以GNU GPL开源协议发布。
系统提供较灵活的模块架构,常用模块包括:采购管理、销售管理、库存管理、财务管理、货品管理、营销管理、客户关系管理、生产管理、人事管理及服务支持等等。用户可以直接从模块库中选择安装适用模块,或进行模块卸载、升级的管理操作。
2.sanic框架
Sanic是一个支持 async/await
语法的异步无阻塞框架,这意味着我们可以依靠其处理异步请求的新特性来提升服务性能,如果你有Flask
框架的使用经验,那么你可以迅速地使用Sanic
来构建出心中想要的应用,并且性能会提升不少,我将同一服务分别用Flask和Sanic编写,再将压测的结果进行对比,发现Sanic编写的服务大概是Falsk
的1.5倍。
3.图片防盗链
- 通过refer控制
- nginx处理
原理:在 http 协议中,如果从一个页面跳到另一个页面,header字段里面会带个 Referer。图片服务器通过检测 Referer 是否来自规定域名,来进行防盗链。
具体看这篇博客:https://juejin.im/post/5cb6eaf951882532a376875e
4.如何提高网站的并发量
QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
- 使用cdn(CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。):接收到的前端网页静态资源放到cdn上
- 采用精灵图
- 页面本地缓存:
控制图片的缓存事件(HTTP响应中max-age)
nginx做负载均衡,后台服务做集群化的部署
后台缓存(django中的缓存)
数据库的主从同步,读写分离:一个数据库读,一个数据库写,两个服务器做好数据同步
异步处理(celery:分布式的异步任务框架)
5. 什么是正向代理,什么是反向代理?
正向代理的本质是隐藏了客户端:正向代理中,proxy和client同属一个LAN,对server透明;
正向代理的用途:
(1)访问原来无法访问的资源,如google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理的本质是隐藏了服务端:反向代理中,proxy和server同属一个LAN,对client透明。
反向代理的作用:
(1)保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载
6.集群和分布式
分布式是指将不同的业务分布在不同的地方;而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
7.负载均衡
8.同步和异步
同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。
异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。
9.轮询
具体看这儿:https://www.cnblogs.com/huchong/p/8595644.html