Web
文章平均质量分 67
Heavbird
这个作者很懒,什么都没留下…
展开
-
互联网分层架构系列之四:前后端为什么要分离
通用业务服务化之后,系统的典型后端结构如上:web-server通过RPC接口,从通用业务服务获取数据biz-service通过RPC接口,从多个基础数据service获取数据基础数据service通过DAO,从独立db/cache获取数据db/cache存储数据 随着时间的推移,系统架构并不会一成不变,业务越来越复杂,改版越来越多,此时web-server层虽然使用了MVC架构,但以下诸多痛点是...转载 2018-04-12 19:28:44 · 1461 阅读 · 0 评论 -
PHP中9大缓存技术总结
1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*****Ob转载 2017-07-10 16:58:02 · 282 阅读 · 0 评论 -
FastCGI和PHP-FPM的关系
首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要转载 2017-07-04 09:30:57 · 202 阅读 · 0 评论 -
一张图读懂PHP YII应用的工作流程
Yii 是一个基于组件的高性能 、纯 OOP 的PHP 框架,用于快速开发大型 Web 应用。它使Web开发中的 可复用度最大化,可以显著提高Web应用开发速度。可以用于开发几乎所有的 Web 应用。由于它是轻量级的 且具备了成熟的缓存解决方案,它特别适用于开发高流量的应用,例如门户,论坛,内容管理系 统(CMS),电子商务系统等等。和多数PHP框架类似,Yii 是一个 MVC转载 2017-07-03 10:05:17 · 447 阅读 · 0 评论 -
一个比较好的Web框架概括(备用,只是框架这个词,没有技术内容)
致力于解决 Web 开发领域的一般性问题而专门提供的开发组件集合,就可以称为是 Web 开发框架了。框架,在语言的上层提供了更加高级的抽象元素,帮助程序员更快速度构建一个完整的业务;框架,固化了很多工程实践领域的最佳实践方案,帮助程序员少走弯路,直接构建出品质上乘的应用;框架,提供了一整套的约定俗成,帮助互相协作的程序员快速理解团队每一个成员的编码意图,从而能够更高效率的协同开发和维护转载 2017-06-29 19:59:11 · 693 阅读 · 0 评论 -
分享一个运维同学常用的站点监测和测速网站17ce.com, 备用
https://www.17ce.com/功能挺多,记录下备用:监测:Get, Ping, MTR, TraceRoute, Dns, Cdn, LDns可以提供:趋势、区域、ISP、错误等分析报告居然还有“赚钱路由器”,和前几年我们做的利用路由器分发app类似,利用用户路由器闲时资源协助17.ce作测速,给用户返现。 https://www.17ce.com/site/alliance ...原创 2018-04-25 14:48:47 · 9005 阅读 · 2 评论 -
容量规划+单点优化+配置优化,架构师必须掌握的技能
本文将体系化总结互联网架构师需要具备的架构技术。一、容量规划能力文章:《互联网架构,如何进行容量规划》内容:机器到底要加多少台容量评估的方法与步骤二、单点优化能力文章:《单点系统,架构优化方向》内容:系统中会存在单点单点系统性能优化方向单点系统高可用优化方转载 2018-04-27 14:04:19 · 487 阅读 · 0 评论 -
无限容量数据库架构设计
前言和荐言:文中提及的每种实践都值得仔细阅读和体会,尤其一对多中提及的“基因分库法”,结合‘一’和‘多’中的元素巧妙地组合成新ID,很好地达到了按‘一’ 和‘多’入同库和高效查询的目的。回想先前项目中的实践,也不自觉地使用过这个技巧。真是“良好的技巧和实践”都是相似的。--------------------------正文------------------------------转载 2018-04-27 15:52:49 · 558 阅读 · 0 评论 -
看似简单也不简单的分布式ID生成器
一、需求缘起几乎所有的业务系统,都有生成一个唯一记录标识的需求,例如:消息标识:message-id订单标识:order-id帖子标识:tiezi-id这个记录标识往往就是数据库中的主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。 这个记录标识上的查询,往往又有分页转载 2018-04-27 16:30:10 · 2242 阅读 · 1 评论 -
单点登录SSO的实现原理
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞转载 2017-07-10 17:02:45 · 242 阅读 · 0 评论 -
如何选择合适的开源消息中间件
我们要引入消息中间件,势必要考虑成本收益问题,怎样达到最高的性价比。很多公司的研发团队还没有专门的资源投入到基础设施的研发中,使用开源产品,扬长避短无疑是最好的方式。业界消息中间件的种类繁多,各有侧重点,看着网上的一些选型推荐,你会觉得无所适从。但我可以告诉你的是,能用的真的不多:)。 对于一般的电子商务而言,不会为了性能降低可靠性,因为一个消息的丢失,可能意味着有一笔订单无法及时处理。追转载 2017-07-10 18:38:57 · 329 阅读 · 0 评论 -
Session共享的几种不同实现方案
1.背景随着互联网的日益壮大,网站的pv和uv成线性或者指数倍的增加.单服务器单数据库早已经不能满足实际需求。目前大多数大型网站的服务器都采用了分布式服务集群的部署方式,所谓集群,就是让一组计算机服务器协同工作,解决大并发,大数据量瓶颈问题。但是在服务集群中,session共享往往是一个比较头疼的问题。因为session是在服务器端保存的,如果用户跳转到其他服务器的话,session就转载 2017-07-10 19:14:11 · 4791 阅读 · 1 评论 -
互联网分层架构系列之三:通用业务服务分层即业务层服务化
《互联网分层架构的本质》简述了两个观点:互联网分层架构的本质,是数据的移动互联网分层架构演进的核心原则:是让上游更高效的获取与处理数据,让下游能屏蔽数据的获取细节 《分层架构:什么时候抽象DAO层,什么时候抽象数据服务层》中的观点是:当手写代码从DB中获取数据,成为通用痛点的时候,就应该抽象出DAO层,简化数据获取过程,提高数据获取效转载 2018-04-12 19:16:58 · 2408 阅读 · 0 评论 -
互联网分层架构系列之二:基础数据服务分层即DAO与服务化
互联网分层架构的本质,是数据的移动。 互联网分层架构演进的核心原则:让上游更高效的获取与处理数据,复用让下游能屏蔽数据的获取细节,封装 这些在上一篇《互联网分层架构的本质》中有详尽的描述,在实际系统架构演进过程中,如何利用这两个原则,对系统逐步进行分层抽象呢?咱们先从后端系统开始讲解。 本文主要解答两个问题:转载 2018-04-12 19:10:18 · 1589 阅读 · 0 评论 -
互联网分层架构系列之一: 分层的本质
上图是一个典型的互联网分层架构:客户端层:典型调用方是browser或者APP站点应用层:实现核心业务逻辑,从下游获取数据,对上游返回html或者json数据-缓存层:加速访问存储数据-数据库层:固化数据存储 如果实施了服务化,这个分层架构图可能是这样:中间多了一个服务层。 同一个层次的内部,例如端上的APP,以及web-server,也都有进行MVC分层:view层:展现control层:逻辑m...转载 2018-04-12 19:04:42 · 1592 阅读 · 0 评论 -
Kafka要点总结及实践
问题导读1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic、发送消息、消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件?6.producer是否直接将数据发送到broker的leader(主节点)?7.Kafa consumer是否可以消费指定分区消息?8.Kafka消息是采用Pull模式,还是Push模式?...转载 2018-01-31 16:35:45 · 716 阅读 · 0 评论 -
分布式消息队列RabbitMQ之一:基本概念理解
许多新手在刚接触RabbitMQ的时候,会被各种名词弄晕,包括ConnectionFactory 、Connection 、Channel、Exchange、Queue、RoutingKey、BindingKey等等,现在我言简意赅的描绘一下这些名词到底是啥概念首先我们肯定知道RabbitMQ就是消息队列的一种实现,那么围绕这个,我们就可以思考一个消息队列到底需要什么,当然是需原创 2017-12-22 10:06:01 · 655 阅读 · 1 评论 -
分布式消息队列RabbitMQ之二: exchange、route、queue关系
从AMQP协议可以看出,MessageQueue、Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件 从应用使用的角度全面的介绍如何利用Rabbit MQ构建消息队列以及使用过程中的注意事项。 1. 声明MessageQueue 在Rabbit MQ中,无论是生产者发送消息转载 2017-12-22 10:29:43 · 1686 阅读 · 0 评论 -
分布式消息队列RabbitMQ之三:四种典型使用场景和代码示例
RabbitMQ主页:https://www.rabbitmq.com/AMQPAMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现。它主要包括以下组件:1.Server(broker): 接受客户端连接,实现AMQP消息队列和路由功能的进程。2.Virtual Host:其实是一个虚拟概念,类似于权限控制组,一个Virtual H转载 2017-12-22 10:32:30 · 2901 阅读 · 0 评论 -
从AWS S3换成阿里云OSS存储所踩的坑
因业务需要,AWS S3 不能使用了,要换成阿里云OSS存储和下载。简单作以记录,以作备忘。1.参照https://help.aliyun.com/product/31815.html?spm=5176.2020520105.146.d500.30285e77DhksTQ 开通OSS服务并创建存储空间,得到访问的域名endpoint、AccessKeyID和AccessKeySecret;原创 2017-12-22 11:21:47 · 16468 阅读 · 0 评论 -
解决coursera视频无法播放问题
hosts binding like below: 52.84.246.90 d3c33hcgiwev3.cloudfront.net52.84.246.252 d3c33hcgiwev3.cloudfront.net52.84.246.144 d3c33hcgiwev3.cloudfront.net52.84.246.72 d3c33hcgiwev3.cloudfront...转载 2018-06-15 17:00:21 · 2006 阅读 · 0 评论