访问量

知名网站的技术发展历程

非 Y 不嫁゛ 提交于 2020-03-28 10:03:35
互联网已经发展多年,其中不乏脱颖而出者,这些网站多数都已存在了接近 10 年或 10 年以上,在如此长时间的发展过程中,除了业务上面临的挑战,在技术上也面临了很多的挑战。 我挑选了一些 Alexa 排名较前的网站 ( 排名截止到 2012 年 4 月 21 日),看看它们在技术上是如何应对业务发展过程中的挑战的。 Google 目前 Alexa 排名第 1 。它诞生于 1997 年,当时是一个研究性项目,每个月 build 一次索引, build 出来的索引通过 sharding ( shard by doc )的方式分散到多台服务器( Index Server )上,具体的网页数据同样通过 sharding 的方式分散到多台服务器( Doc Server )上,当用户提交请求时,通过前端的一台服务器将请求提交给 Index Server 获得打了分的倒排索引,然后从 Doc Server 提取具体的网页信息(例如网页标题、搜索关键词匹配的片段信息等),最终展现给用户。 随着索引的网页增加,这个结构可通过增加 Index Server 以及 Doc Server 来存储索引以及网页的数据,但仍然会面临其他很多方面的问题,于是在这之后的十多年的时间里, Google 做了很多事情来改进上面的结构。 1999 年, Google 增加了一个 Cache Cluster ,用来

Zabbix 监控网站的访问量

邮差的信 提交于 2020-03-26 17:31:09
需求:监控网站pv和uv的总量和5分钟内的pv和uv的增量 1. PV、UV是什么? UV:独立访客,每个独立上网电脑视为一位访客,一天之内网站的访客数量 PV:访问量,页面浏览量或者点击量,用户每访问一次记录一次 2. 根据的访问日志统计网站PV 和UV总量 [root@server-web scripts]# cd /usr/local/zabbix/scripts/ [root@server-web scripts]# cat pvuv_number.sh #/bin/bash #desc: used nginx pv and uv uv_number(){ cat /usr/local/nginx/logs/access.log |awk '{print $1}'|sort|uniq|wc -l } pv_number(){ cat /usr/local/nginx/logs/access.log |awk '{print $7}'|wc -l } case $1 in uv|UV) uv_number; ;; pv|PV) pv_number; ;; esac exit 0 [root@server-web scripts]# chmod 755 pvuv_number.sh [root@server-web scripts]# chown zabbix:zabbix

如果有一个特别大的访问量到数据库上,怎么做优化?主从复制、读写分离

余生颓废 提交于 2020-03-23 17:07:34
第一个就是使用优化查询的方法。这个在前期的内容中有具体说明,这里不再做说明。 第二、这里简要说明一个以下几个方法:    主从复制、读写分离、负载均衡    目前,大部分的主流关系型数据库都提供了主从复制的功能,通过配置两台(或多台)数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站可以利用数据库的这一功能, 实现数据库的读写分离,从而改善数据库的负载压力。 一个系统的读操作远远多于其写操作,因此写操作发向master,读操作发向slaves进行操作(简单的轮循算法来决定使用哪个slave)。   利用数据库的读写分离,web服务器在写数据的时候,访问著数据库(Master),主数据库通过主从复制机制将数据更新同步到从数据库(Slave),这样web服务器读数据的时候,就可以通过从数据库获得数据。这一方案使得在大量读操作的web应用可以轻松地读取数据,而主数据库也只会承受少量的写入操作,还可以实现数据热备份,可谓是一举两得的方案。 1.复制的基本原则    MySQL复制是异步的且串行化的;   每个Slave只有一个Master;   每个Slave只有一个唯一的服务器ID;   每个Master可以有多个Slave; 2.一主一从常见配置:   MySQL版本一致且后台以服务运行;   主从都配置在[mysqld]结点下,都是小写,主机修改my

流量运营指标扫盲(3)

无人久伴 提交于 2020-03-02 15:25:36
网站流量质量指标 1) 访问深度 访问深度又称人均页面浏览量、每次访问平均页面浏览量,用来评估平均每个访问内用户看了多少个页面。计算公式: 访问深度=PV/访问量 访问深度是用户访问质量的重要指标,访问深度越大意味着用户对网站内容越感兴趣;访问深度不是越高越好,过高的访问深度可能意味着用户在网站中迷失方向找不到目标内容。某些场景下,也会使用PV/UV来计算访问深度。 2) 停留时间 停留时间指用户在网站或页面的停留时间长短。计算公式为:  网站停留时间:最后一次请求时间戳-第一次请求时间戳  页面停留时间:下一个页面请求时间戳-当前页面请求时间戳 对于停留时间的评估不是越高越好,一个简单的页面,如果用户停留时间过长,可能意味着用户没有注意到页面关键信息或没有注意到引导按钮,从而降低用户体验或降低该页面的引导贡献。 3) 跳出\跳出率 跳出指用户到达落地页之后没有点击第二个页面即离开网站的情况,跳出率指落地页作为第一个页面的访问中直接跳出的比例。计算公式为:跳出率=跳出的访问/落地页的访问。 跳出是仅针对落地页发生的指标,用来评估用户进入网站后的第一反应情况。过高的跳出率意味着站外流量低或者页面设计出现问题,导致用户不愿继续浏览网站。 4) 退出\退出率 退出指的是用户从网站上离开而没有进一步动作的行为。推出率指在某个页面退出的访问占该页面总访问的比例,计算公式为: 退出率 =

系统并发量及QPS简单解释

混江龙づ霸主 提交于 2020-03-02 11:41:19
1、V 即 page view,页面浏览量 用户每一次对网站中的每个页面访问均被记录1次。用户对同一页面的多次刷新,访问量累计。 2、UV 即 Unique visitor,独立访客 通过客户端的cookies实现。即同一页面,客户端多次点击只计算一次,访问量不累计。 3、IP 即 Internet Protocol 本意本是指网络协议,在数据统计这块指通过ip的访问量。即同一页面,客户端使用同一个IP访问多次只计算一次,访问量不累计。 4、TPS 即Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。 5、QPS 即Queries Per Second的缩写,每秒能处理查询数目。是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 RPS 即Requests Per Second的缩写,每秒能处理的请求数目。等效于QPS 因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,其即为QPS。 对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 计算关系: QPS = 并发量 / 平均响应时间 并发量 =

Python3.7实现自动刷博客访问量(只需要输入用户id)(转)

与世无争的帅哥 提交于 2020-02-08 17:48:06
新增了代理功能,代码很浅显易懂不想多余讲解 import re import requests from requests import RequestException import time import random from bs4 import BeautifulSoup # 获取网页的response文件 def get_response(url): try: headers = { 'Referer': 'https://blog.csdn.net', # 伪装成从CSDN博客搜索到的文章 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36' # 伪装成浏览器 } # 设置代理ip porxy_list = [ {"http": "http://218.60.8.99:3129"}, {"http": "http://114.226.244.78:9999"}, {"http": "http://39.137.95.71:80"}, {"http": "http://115.159.31.195:8080"}, {"http": "http://39.137.69

Jekyll博客统计访问量,阅读量工具总结--LeanCloud,不蒜子,Valine,Google Analytics

匆匆过客 提交于 2020-02-08 10:21:40
此文首发于我的个人博客: Jekyll博客统计访问量,阅读量工具总结–LeanCloud,不蒜子,Valine,Google Analytics — zhang0peter的个人博客 我用 GitHub Pages搭建了jekyll的博客后,想要在页面上实现访问量的统计。 因为实在GitHub上搭建的静态博客,不能像WordPress一样可以操作php和数据库,自然只能借助第三方工具。 网上有个问答: html - Is that real show count view pages with use Jekyll? - Stack Overflow LeanCloud 网上有很多人推荐使用 LeanCloud 进行访问量的统计,比如说这篇文章: jekyll使用LeanCloud记录文章的访问次数 和这篇文章: 添加阅读量统计 ZFB 博客 你也可以使用基于LeanCloud进行开发的Valine: 文章阅读量统计 Valine 我本来也想用 LeanCloud 进行记录,但我在注册的时候告诉我要实名认证,输入姓名和身份证,还要支付宝授权 美味书签(北京)信息技术有限公司 读取我的认证信息和人脸照片。这我绝对不能忍,还要我的人脸照片,这是想做什么。 于是我就放弃使用LeanCloud进行访问量统计,对个人信息不在意的博主们可以使用LeanCloud。 不蒜子

如何根据访问量选择阿里云服务

旧巷老猫 提交于 2020-02-07 00:55:08
<部分文字来源网络> 很多用户在第一次购买阿里云服务器的时候纠结于云服务器配置到底应该怎么选?服务器的配置有高有低,不同配置的服务器能够承受的流量是不同的,所以,这是影响同时在线访问数量的原因之一。下面针对目前主要的个人和企业网站类型做一个配置推荐(仅个人意见),对于新手用户来说,如果不知道如何选择自己的阿里云服务器配置,可以参考以下推荐购买: 首先先说说带宽,宽带的大小不仅影响网站的并发访问量还影响着客户对网站的访问速度和访问体验。假若服务器保证的最大带宽是5M (即5Mbit/s ),相应服务器的数据最高传输速度应为5Mbit/s x 1024/8=640KB,1分钟流量大约640 x 60=38400KB。假设毎个用户1分钟内始终占用10KB的流量,即该1分钟内支持占用这样的流量的同时在线访问人数为3840人(视频类大流量网站不在此例)。但是,并不能保证每个用户在1分钟内只有一次到该站的链接,假如每个用户在1分钟内有两次或以上到该站的链接(每个链接始终占用10KB的流量),那么支持在线人数应该在2000以下。所以根据网站访问量和业务类型推荐以下购买类别( 仅个人意见 ): 一:普通的个人小型网站,个人博客等小流量网站 可选择低配置的阿里云服务器 推荐配置:CPU:1核、内存1G或2G、硬盘40G、带宽:1M或2M 二:论坛、门户类网站 论坛、门户类网站,用户活跃性与访问量较高

nginx实现网站负载均衡(windows+IIS负载实测)

ぃ、小莉子 提交于 2020-02-06 06:43:17
如果你关注过nginx,必定知道nginx这个软件有什么用的,如果你的网站访问量越来越高,一台服务器已经没有办法承受流量压力,那就增多几台 服务器来做负载吧。做网站负载可以买硬件设备来实现,比如F5,不过价格就几十万到上百万,够贵,本文介绍做网站负载的软件是免费的,nginx目前好多 门户网站与大访问量的网站都在使用做为HTTP服务器,所以nginx是非常优秀的,下面介绍做负载测试吧。 环境: (2台服务器) 第一台: CPU:Inter(R) Pentium(R) 4 CPU 2.8G 内存:1G 系统:windows 7 IIS: IIS 7 nginx:nginx/Windows-0.8.22 IP:172.10.1.97 环境:本地 第二台: CPU:Inter(R) Pentium(R) 4 CPU 3.0G 内存:2G 系统:windows Server 2003 IIS: IIS 6 IP:172.10.1.236 环境:远程 说明: 本次测试,软件nginx放在本地(172.10.1.97),也就是说放在域名绑定的那台服务器,这台服务器的IIS不能使用80端口,因为等下nginx软件要使用80这个端口。 下载nginx的地址如下: nginx下载: http://nginx.net/ 本次测试使用的版本下载: nginx/Windows-0.8.22 下载解压到C:

Spark中求网站的访问量

谁说我不能喝 提交于 2020-02-01 18:59:23
美图欣赏: 一.数据样式: 二.要求 求出访问量最高的两个网页 要求显示:网页名称、访问量 三.代码实现: import org.apache.spark.{SparkConf, SparkContext} object TomcatLogCount extends App { //获取spark的sc var conf = new SparkConf().setAppName("count").setMaster("local") var sc = new SparkContext(conf) //1.读取文件 var linerdd = sc.textFile("D:\\testdata\\streaming\\localhost_access_log.txt") //2.解析日志:网页名称 /** * 192.168.88.1 - - [30/Jul/2017:12:53:43 +0800] "GET /MyDemoWeb/head.jsp HTTP/1.1" 200 713 * 网页名称:MyDemoWeb/head.jsp * */ var rdd1 = linerdd.map(line =>{ //1.或两个引号之间的数据 var index1 = line.indexOf("\"") var index2 = line.lastIndexOf("\"") /