WEB服务器的工作原理
客户向URL所指定的WEB服务器发出了请求, WEB服务器根据请求的程序返回相应的内容至客户端,二者就是按HTTP协议进行交互的。客户端发出一个以HTTP开头的URL请求时,WEB服务器端的程序可能是CGI程序、或静态网页,或SERVLET程序,也可能是其他服务器端程序,但它们均以HTML格式将相应的内容返回给客户,这样客户就可在浏览器上的看到返回的内容。
计算机程序是用某种特定的符号系统(指令或语言)对被处理的数据和实现算法的过程进行的描述,是为了解决某一问题而设计的一系列排列有序的指令或语句的集合。程序送入计算机,存放在存储器中,计算机按照程序,即按照为解决某一问题而设计的一系列排好顺序的指令或语句进行工作。
指令: 指挥计算机如何工作的命令。通常由一串二进制数码组成, 即有操作码和地址码两部分组成。操作码规定了操作的类型和性质,即进行什么样的操作;地址码规定了要操作的数据以及操作结果的存放地址。
计算机语言:
机器语言:二进制语言,表示机器指令的描述。
汇编语言: 面向机器的程序设计语言,即与特定的计算机结构及其指令系统密切相关。
高级语言: 面向问题的程序设计语言。 c, jave等等
计算机系统的层次结构
计算机有硬件系统和软件系统组成,软件又分为系统软件和应用软件,人操作计算机实际是直接和系统软件中的操作系统打交道,因此操作系统是用户和计算机硬件的接口。
微程序机器人
这一级是有硬件直接实现的,是见算计系统最底层的硬件系统,有机器硬件直接执行微指令。
实际机器级:
俗称机器语言,有微程序解释机器指令系统。是软件系统和硬件系统之间的纽带。硬件系统的操作有此级控制,软件系统的各种程序,必须转换成此级的形式才能执行。
操作系统级
操作系统有操作系统程序实现。这些操作系统由机器指令和广义指令组成,广义指令是操作系统定义和解释的软件指令。计算机系统中硬件和软件资源由此级管理和统一调度,他支撑着其他软件和应用软件,使计算机能够自动运行。
汇编语言
汇编语言能给程序人员提供一种符号形式的语言,以减少程序编写的复杂性。这一级由汇编语言支持和执行。
高级语言级
高级语言是面对用户,为方便用户编写应用程序而设置的。
计算机系统各层次之间的关系十分紧密,上层是下层的扩展,下层是上层的基础。其他各级都得到它下面级的支持,同时也受到运行在下面各级上的程序的支持。第一级到第三级编写程序采用的语言,基本是二进制数字化语言,机器执行和解释容易,第四,第五级编写程序采用符号语言,用英文字母和符号来表示程序,因而便于大多数不了解硬件的人们使用计算机。
计算机分类
高性能计算机: 处理量大,运算速度快的计算机领域的高尖端产品。
个人计算机: 台式机,笔记本电脑
工作站: 以个人计算机和分布式网络计算为基础,主要面向专业应用领域,具备强大的数据运算与图形,图像处理能力,为满足工程设计,动画制作,等专业领域而设计研发的计算机。
服务器:一种在网络环境下为多个用户提供服务的计算机系统。
计算机硬件技术指标
主频:时钟频率,指计算机的CPU在单位时间内发出的脉冲数。 MHz兆赫兹。
机器字长:cpu一次能处理二进制数据的位数。通常与cpu内的寄存器的位数有关。字长越大,数的表示范围就越大,精度也越高。字长HIA决定了指令直接寻址的能力。一般机器的字长都是字节的1,2,4,8倍。比如64系统是字节的8倍。
存储容量:计算机能存储的信息总字节量称为该计算机系统的存储容量,内存储器中能储存的信息总字节称为内存容量。通常以8个二进制位(bit)作为一个字节。内存量越大,处理数据的范围就越广,运算速度一般也快。
存取周期:把信息代码存入储存器,称为“写”,把信息代码从存储器中取出,称为“读”。存储器进行一次“读”或“写”操作所需的时间称为存储器的访问时间,而连续启动两次独立的“读”或“写”操作所需要的最短时间,称为存取周期。
运算速度: 衡量计算机运算速度的单位是MIPS(百万条指令/秒)。
信息的数字化编码
计算机的基本功能是对信息进行加工处理。信息包括数据,文字,声音,图形和图像。
数据有两类: 一类是数值数据,1,2,3等有“量”的概念;另一类是非数值数据,如各种字母,符号等。 在计算机中都是用二进制数值数码表示的。
文字,声音,图形,和图像等信息要在计算机中处理,都要事先数字化,即把声音,图像,图像等信息转换为二进制数码。在计算机内部,各种信息都必须采用数字化编码的形式才能被传送,储存和处理加工。
编码:用来将信息从一种形式转变为另一种形式的符号系统,通常选用少量最简单的基本符号和一定的组合规则,以表示出大量复杂多样的信息。
信息的数字化编码是指用0或1这种量最少,最简单的二进制数码,并选用一定的组合规则,来表示数据,文字,声音,图像等等
信息的数据类型
无符号数
符号数
二进制位串进位计数制及其相互转换
二进制
八进制
十进制
十六进制
非数值数据
字符数据的表示: ASCLL, 汉字编码
数值数据的表示和运算
机器数和真值的概念
机器数: 数的符号也用二进制0或1来表示,且符号位数总是在该数的最高数值位之前的那种数称为机器数。
真值: + - 表示符号的那种数叫做真值。
二进制的运算规则:
定点数的原码,反码,补码和移码
定点数和浮点数:是指在计算机中一个数的小数点的位置是固定的,还是浮动的,如果一个数中小数点的位置是固定的,则叫做定点数,否则为浮点数。
组成计算机硬件的基本器件
计算机系统的硬件由许多逻辑器件组成。
逻辑代数的基本定理
编译器:是具有多个输入端和多个输出端的器件。
时钟发生器:
时钟发生器是为了协调计算机系统各部分的工作,提供统一时钟标准的器件。
机器数的运算方法即运算器
机器数的运算方法是设计运算器的依据,要清楚运算器的原理,首先要搞清机器数的运算方法。
机器数的加减运算及其实现
原码及其补码。
运算器的组成核结构
中央处理器有运算器,控制器,总线和时钟发生器等部件组成,他是计算机的核心部件。
运算器是计算机对数据进行加工处理的中心,它主要有算术逻辑单元ALU,通用寄存器组,状态寄存器,数据多路选择器MUX等组成。
指令系统
计算机的指令系统是指一台计算机上所有机器指令的集合,也成计算机的指令集。
指令系统包括指令格式,寻址方式和数据形式。
指令的含义:
指令是指挥计算机执行某种操作的命令。从计算机组成的层次结构来看,计算机的指令有微指令,机器指令和宏指令之分。微指令是微程序级的命令,他设计在微程序控制器中,属于硬件; 宏指令是有若干条机器指令组成的软件指令,若干条机器指令的功能可由指令这条宏指令实现。 机器指令介于微指令和宏指令之间,通常称为指令。 每一天机器指令可完成一个独立的操作功能,如一个数据的传送,一次加法,减法,或逻辑运算。指令是程序员进行程序设计的最小单位,他是组成程序的语句; 有因为机器指令是有一串二进制数码组成的,他是机器能够直接接受,理解,执行的语言,他是硬件设计人员设计计算机硬件的依据。
指令格式: 操作码 + 地址码字段
零地址指令
一地址指令 OPCode + A (OP Code 表示操作码,A表示操作数的储存器地址或寄存器名)
二地址指令 OP Code + A_1 + A_2
三地址指令
多地址指令
寻址方式:
所谓寻址,就是寻找操作数的地址,最终目的是寻找所需要的操作数。
指令的种类
计算机的功能主要取决于指令系统的功能,为了满足计算机功能上的需要,现代计算机一般都有上百条甚至几百条指令,按照其所完成的功能可分为: 数据传送指令,算数运算指令,逻辑运算指令,字符串处理指令等等
数据传送类指令: 数据传送,数据交换,压栈,退栈。
算数逻辑运算类指令: 算数运算指令, 逻辑运算指令,位移指令
字符串处理指令:字符串传送,字符串转换,字符串比较,字符串查找,匹配,抽取等等
输入输出(I / O)指令
计算机系统中,输入/输出是相对于主机或者CPU而言的。 数据从输入设备传送到主机或CPU,称为输入; 而数据从主机或CPU传送到输出设备称为输出。
存储器系统
随机存取存储器
只读存储器
顺序存取存储器
直接存取存储器
按照计算机中的作用分类,可将存储器分为主存储器(内存),辅助存储器(外存)和高速缓冲存储器
缓存—主存层次主要解决CPU和主存速度不匹配的问题。
高速缓冲储存器 (Cache 缓存),
主存—辅助层次主要解决存储系统的容量问题。
主存储器是中央CPU能直接访问的存储器,有随机存储器RAM和只读存储器ROM组成。
虚拟存储器是建立在主存储和辅助存的物理结构基础之上的。有附加硬件装置以及操作系统存储管理软件组成的一种存储体系。
中央处理器 CUP
CPU功能,组成, 指令周期
总线
在现代计算机系统中,无论是计算机内部各部件之间,还是计算机与外部设备之间,地址,数据,控制信息的传送都是通过总线进行的。总线是信息传送的公共通路。
外围设备与多媒体技术
外围设备与中央处理器之间传送的信息种类有: 设备地址信息,数据信息,设备装填信息和控制信息。
为了各种设备与计算机之间的连接和信息交换,必须要配备设备控制器。 设备控制器是控制该设备进行操作的控制部件,它接受中央处理器通过接口传送来的各种信息,并按设备的不同要求吧这些信息传送到设备或从设备独处信息传送到接口。
数码相机的核心部件是电容耦合器件(CCD)图像传感器。 能把光线转变为电信号,在由模/数转换芯片转换为数字信号;光通过红,绿,蓝滤色镜以后,对于每一种单色的光谱,光敏反应都可以记录下来,当这种读数通过软件合成并计算后,相机边可确定上的每一部分的颜色,最终的结果是将光信号转成一定格式的数字信号并存储在相机内部的闪烁存储器或内置硬盘中。
镜头,图像传感器,A/D转换器,DSP数字信号处理器,MPU微处理器,LCD液晶显示器,PC卡,和接口等部件组成。
镜头: 数码相机的镜头与传统光学相机的镜头相同,他的作用是将景物成像到电荷耦合器件上CCD。
图像传感器: 是由一种高感光度的半导体材料制成,能把光线转换为电荷,通过模数转换器转成数字信号。
数字信号处理器(DSP)数字信号处理器的主要功能是通过一系列复杂的数学算法对数字图像信号进行优化处理。增强,平衡等
微处理器(MPU),用来是吸纳对数码相机所有操作的统一控制,运算,曝光,闪光等等
显示设备: 以可见光形式显示信息的输出设备称为显示设备。
显示器和显示适配器(显卡)组成
阴极射线管(CRT)显示器, 液晶显示器LCD , 等离子体显示器PDP等。
图形最初指没有亮暗层次变化的线条图,如电路图。点, 线,面
图像: 具有亮暗层次的图。
分辨率: 显示器多能表示的像素个数。
灰度级: 黑白显示器中所显示的像素点的亮暗差别程度,
显卡: 显示控制器, 它负责将CPU送来的图像,图像数据处理成显示器可以了解的格式,在送到显示屏上形成图形或图像。
输出/输入系统
计算机的输入/输出系统(I/O系统)的功能是完成计算机系统与外部世界的联系。
输入/输出设备是通过接口部件和计算机主机相互连接的。
I/O系统包括了硬件及其相应的软件。必须通过I/o系统连接。
外围设备: 包括利用光,电,磁,机械等原理制成的将信息转换为二进制数码的各种设备。
设备控制器: 将外围设备生成的各种形式的二进制数码转换成电路饿信号,并根据输入信号的要求,对设备的运行进行控制。
输入输出接口: I/O接口用来完成外围设备与CPU交换信息是在速度,代码形式上的相互匹配。 在CPU中,数据的传送速度是纳秒级的,而外围设备的速度则是毫秒级的,最快的微妙级。
接口: 也称为适配器, 或 设备控制卡。
CPU对输入/输出设备的访问,采用按地址访问的形式,即线送地址码,以确定访问的具体是什么设备,然后进行信息交换。
网站打不开的八个原因
首先要明确,你使用的网速和打开网页的速度并不是成正比的。本地网络快,不代表你访问一个网页就一定快。这与许多因素有关。一网络的最小带宽
这是最重要的因素,也就是网友常说的宽带不够用。对于同一个网站,如果宽带高,访问速度明显会变快。
网络的带宽包括网站的带宽、服务器的带宽和用户的带宽两个方面,而对接点指的是出口和入口(如电信对网通的对接点)。
第二,dns解析速度
Dns解析是从域名到ip的解析。人们习惯于记忆域名,但机器只识别彼此的ip地址。域名和ip地址是相互对应的,两者之间的转换称为域名解析,需要由专用的域名解析服务器来完成。
Dns解析包括倒数解析的次数和每次解析花费的时间,两者的乘积就是dns解析花费的总时间。很多人忽略了dns解析的因素。其实对于网站解析的速度也很重要。
三。服务器和客户端的硬件配置
同样的网络环境下,双核服务器的计算能力一定更强。同样的客户端,同样的网络环境,如果用一个Inteli7处理器和i3处理器打开同一个页面,速度肯定是不一样的。
四。服务器软件
在服务器端,安装软件的数量和运行是否稳定会影响服务器环境,进而影响网速。比如服务器配置了软件防火墙,网速就会受到影响。
动词(verb的缩写)页面内容
如果一个网页包含大量未经处理的,并且这些非常大,那么就会减慢打开速度。如其他flash和视频文件,会影响访问速度。
同时,多余的代码也是拖慢网站速度的因素之一。站长需要尽可能的优化代码,用最少的代码达到最好的效果。
不及物动词数据库操作
小网站的数据库操作也会影响网站的速度,特别是当很多用户同时提交评论时,操作数据库会被锁定,导致网站打不开。
七、使用javascript特效
在网站上使用javascript特效是大忌,不仅不能被搜索引擎抓取,还会因为不断向服务器发出请求,造成添加服务器的负担,使网站变慢。
具体的例子包括鼠标效果、程序效果、状态栏效果等等。这些特效的原理是从服务器下载到客户端的机器上,然后在本地机器上运行,最后被用户看到。多做一些特效,用户的本地机要运行大半天才能完全完成。
八。过度引用其他网站内容
比如参考其他网站的和视频文件。如果链接的网站很慢,甚至那个网站已经不存在了,那么用户打开网页就会非常慢。
浏览器网页打不开怎么办?
该浏览器无法打开表现为服务器异常,原因和解决方法如下3、网站打不开、被跳转、网站显示错误等
这时候可以下载专业的正版查毒软件,对电脑进行定期的全面病毒查杀,以绝后患。
为什么打不开网站?
1、部分网站为什么网页打不开的故障可能是有时候由于域名重新解析过后,但在本机访问域名的时候还是指向原来的IP,这主要是因为本地dns缓存导致的,因为你在改域名解析之前访问过这个域名。
2、网络设置的问题。这种原因比较多出现在需要手动指定IP、网关、DNS服务器联网方式下,及使用代理服务器上网的。
3、网络防火墙的问题。如果网络防火墙设置不当,如安全等级过高、不小心把IE放进了阻止访问列表、错误的防火墙策略等。
为什么股票网页无法打开?
1没有连上无线网或没有网络,所以打不开。
2因为股票网页是要有交易系统网络输送过来的,没有连接网络信号股票网页是无法打不开。
3首先申办无线网络,然后下载股票软件并接好网线,股票网页就可以打开了。
手机的网页为什么打不开?
1首先我们要确定的就是手机浏览器网页打不开是不是手机自身无法上网。使用wifi的朋友打开设置,无线局域网,来查看是否成功连接网络。
2那么使用普通流量的朋友则是打开网络来看看自己的手机是不是由于欠费、开启飞行模式等原因无法上网。
3如果前两者都没有出现问题,那么我们就进入手机QQ浏览器,点击下方功能按钮,选择刷新。
网页是构成网站的基本元素,是承载各种网站应用的平台。
网页是一个包含HTML标签的纯文本文件,它可以存放在世界某个角落的某一台计算机中,是万维网中的一“页”,是超文本标记语言格式。网页通常用图像档来提供图画。网页要通过网页浏览器来阅读。
网页主页成分
页头:准确无误地标识你的站点和企业标志;
Email地址:用来接收用户垂询;
联系信息:如普通邮件地址或电话;
版权信息:声明版权所有者等。
充分利用已有信息,如客户手册、公共关系文档、技术手册和数据库等。
为什么网址打不开?
网址打不开,有可能是因为网速不好,或者网络信号中断原因造成的
随着迅雷发布59151274版升级,同时也发布了“迅雷网页修复工具Beta第二版”,加入了万众期待的“批量修复”功能。
迅雷网页修复工具的一些说明:
1、如果在进度条状态下等待的时间超过20秒仍未出现下载进度,可能这张图暂时无法修复;
2、本工具只支持基于IE内核的浏览器使用;
3、本工具会将保存在本地剩余的磁盘空间最大的分区中的\TDDOWNLOAD\LiteViewCahce目录中;
4、如果遇到问题,尝试关闭浏览器,再打开试一试,仍然不行,就回帖反馈吧!
5、对于非红叉的,比如防盗链的图,可以尝试右键菜单中“使用迅雷修复”。
其实这个工具是基于迅雷下载技术来实现的,也就是使用通常迅雷可以下载到那些链接已经失效的文件同样原理。就是说,即使所在服务器有问题,只要这个图在其它地方还有资源,就可以使用它来进行修复操作。理论上是这样的,不过在实际使用中效果却并不是十分理想,至少目前使用它,还有部分失效是无法修复的。
更新日志:Beta第二版
1、新增批量修复点击“上一张”、下一张按钮可查看网页中所有
2、新增配置面板可设置是否显示修复按钮,指定存储目录,清空存储目录
3、新增修复失败上报
4、放大缩小步进改为20%
网站响应时间过长进不去可以检查一下服务器是否能远程连接,服务器IP是否能ping通,如果都不能的话,建议检查一下服务器的网络和运行情况,让服务器重启一下试试。如果服务器能远程,说明服务器网络是正常的,可以检查一下网站程序设置问题。
服务器网站响应时间过长的问题解决方法如下:
1、机器的配置。包括服务器端与客户机端的硬件配置程度,同样的网络环境下,双核的服务器的运算能力肯定要强一些,毫无疑问的,同样的网络环境下,用一台赛扬的机器和奔四双核处理器的电脑,打开同样的网页,速度,也肯定不一样。
2、服务器软件。软件多少、稳定和软件的正确配置,都会影响到服务器环境,以致影响到网络速度。服务器安装软件防火墙,会牺牲一些网络速度,所以VPS、或独立服务器用户装一个防火墙足矣。
3、DNS解析时间。DNS解析包括往返解析的次数及每次解析所花费的时间,两者的积就是DNS解析所消耗的时间,因此,很多人忽视了DNS的问题。
4、网络最小带宽。这是最主要的因素,在慢的网站放在好的带宽下访问速度一样快(就是多花钱),更加详细信息:https://panbaiducom/s/1DfFgcyflKsS3fZP6BcVU-g提取:snwx网络的带宽包括对网站所在服务器带宽和用户端两个位置,对接点指的是出口端与入口端(如电信对网通的对接点),另一个就是用户本身的最小带宽,如果用户办的是512K宽带咱就爱莫能助了。
5、网页内容的大小(重要)。网页文件的大小是网站是否能快速打开最重要一个因素,如果说服务器等硬件方面决定不了,强烈建议从这里下手,不管是表格还是DIV+CSS,适当的优化代码,都能减少网页大小。尽量优化代码,用最少的代码。同时大量错误、冗余代码也是拖慢网站速度之一。
6、大量数据库操作。小网站在执行大量数据库操作时,也会影响网站打开速度,这里使asp+access结构的网站尤为明显,尤其是同时有大量用户提交评论时,就操作数据库锁死,导致网站打不开。
7、用很多javascript。网站上使用大量JS是大忌,不仅搜索引擎无法收录,同时会不断提交请求增加服务器负担,例如鼠标特效、栏目的特效、状态栏的特效等等。这些特效的原理是先由服务器下载到本地的机器,然后在本地机器上运行产生,然后才能看到的。
8、页面上用大和FLASH。是拖慢网速最重要一个因素,经过处理,可以使空间变小,否则很多的一开始都会占用很多空间又使网站打开速度变得很慢,同样FLASH也是一个道理。
9、过多引用了别的网站的内容。包括引用其他网站的、视频文件等,如果直接在页面引用别的网站的东西,而那个网站的速度又慢,或者那个网站的该页面已经不存在了,那么打开的速度就会非常慢。
它采用的是p2p技术与传统服务器下载想结合的工作原理。
1998年,当19岁的肖恩-范宁(Shawn Fanning)坐在电脑前编写一个基于P2P技术的共享软件时,他丝毫没有意识到这个叫Napster的软件即将引发一场互联网地震。Napster能够很方便地让肖恩跟女同学在互联网上交换最新的MP3格式的音乐,这位美国波士顿东北大学的一年级新生,慷慨地与同学们分享自己的聪明才智,他们当时的目的很简单,那就是更方便地结识到漂亮女同学。
1999年夏天,肖恩把他的Napster程序放到了互联网上,并架设了服务器让网友下载。出人意料的是,Napster突然之间成为了人们争相转告的“杀手程序”——它令无数散布在互联网上的音乐爱好者美梦成真,无数人在一夜之间开始使用Napster。与此同时,由Napster引发的P2P思想也传遍了互联网。
P2P技术在很大程度上颠覆了人们对互联网的传统观念。以往占据主导地位的互联网架构是客户端/服务器(Client/Server)结构。互联网以服务器为中心,各种各样的资源,包括文字、、音乐、**等都存放在服务器的硬盘上,网民把自己的电脑作为客户端通过网络连到服务器上检索、下载、上传资料或请求运算———在这种架构下,客户端和服务器存在着明显的主从关系;而P2P技术,也称为对等网络(PeertoPeer)结构,它的本质思想是,整个网络结构中不存在中心节点(或中心服务器),在P2P结构中,每一个节点(Peer)大都同时具有信息消费者、信息提供者和信息通讯等三方面的功能,在P2P网络中每一个节点所拥有的权利和义务都是对等的。
肖恩编写的Napster音乐交换软件正是基于这种P2P技术原理,每一个安装了Napster软件的电脑既是服务器又是客户端,当这台电脑联上网络后,你就能够搜索到另一台装有Napster软件电脑里的音乐文件,同时其他装有Napster软件的电脑也能连上你的电脑,进行搜索或下载。然而,Napster的P2P思想贯彻得并不彻底,基于运行效率的考虑,也为了更方便网友检索和交流音乐,Napster把所有的音乐文件地址都存放在一个集中的服务器中,Nap-ster的用户能够方便地过滤大量的地址,快速找到自己需要的MP3文件。也就是说,Napster的用户还是需要Napster公司的服务器这个中转站才能找到另外一台装有Napster的电脑。而这个服务器,正是由肖恩成立的Napster公司维护。
很显然,肖恩为这个做法付出了代价。1999年12月,美国唱片业协会RIAA(Recording Industry Association of Ameri-ca)代表环宇音乐、索尼音乐、华纳音乐、百代唱片、BMG等七大唱片公司,以违反版权保护法为由把Napster公司推向法庭。他们称Napster向网民提供MP3文件共享软件侵犯了音乐版权,要求法院关闭该公司并赔偿损失1亿美元,Napster公司最终输掉了官司。唱片公司能够胜诉的原因是,法官认为集中化的服务器索引让这家公司必须对网络上的盗版负法律责任。
第二代P2P软件吸取了Napster的教训。1999年底,美国在线(AOL)的员工贾斯汀弗兰克尔(JustinFrankel)发布了Gnutella。这个软件采用了一种新的文件交换网络技术,Gnutella不需要固定的服务器,使用者也不必进行注册,从理论上讲,只要打开Gnutella便能连上网络上的某台机器,用户发送的搜索请求在每一台电脑间来回传递,一直到找到文件为止,然后再将信息传回搜索者的电脑,这是一种真正意义上的对等分布式网络。由于没有真正的网络控制中心,FBI侦探和唱片公司律师永远都不知道该找谁的麻烦,美国上诉法院也认为,Gnutella和Napster不一样,这种软件的散播者,并未直接控制网络上所发生的行为,因而这种分布式网络是合法的。
但第二代P2P软件有个很大的问题,就是你很难分辨它与蚕食网络带宽的蠕虫病毒有何区别。就Gnutella而言,当数以百万计的搜索要求在网络上同时运行时,网络大塞车的情况就屡屡发生。幸运的是,Gnutella工程师改进了搜索处理方式,使搜索结果变成只限定于网络的某些人获得——例如,只有1万人,而不是200万人。
近两年来,P2P的用户越来越多,互联网上运行着各种各样的P2P软件,这直接导致的结果就是网络带宽趋于紧张。有调查显示,互联网三分之一的带宽是被P2P或BT下载软件“吃掉”的,P2P和BT软件转眼间成为众矢之的。于是,使用节约带宽新技术的第三代P2P软件应运而生。这类软件进一步改进了搜索算法,如借鉴了“Google”等搜索引擎所常用的“快照”技术(SnapShot),然后把这些文件“快照”分布式地存放在网络上。当用户发出搜索指令的时候,搜索的要求是先到达网络上的任何一台电脑上,然后这台电脑就会再将它转到另一台有更多文件信息的电脑,第三台电脑可能就拥有文件本身———或者也可能再继续将搜索要求转到其他有正确信息的电脑。整个过程有点像在照着交通指示牌循序问路,而不是路上随便找个人问路,这样很大程度上提高了搜索效率,节约了带宽。在第三代P2P网络里,分布式存放的索引文件都会随着电脑及文件的加入而持续更新。
如果把P2P技术仅仅用于交换MP3文件或下载**,就有点辜负了它是互联网“杀手程序”的美誉了。实际上,P2P技术在下一代互联网运用中有着广阔的前景,如果说传统互联网的标志运用是“WWW”的话,新一代互联网就可以用P2P来指代。除了用于交换文件,P2P技术还可以实现对等计算、对等存储、协同处理与服务共享等。P2P技术将重构今天的互联网络,它正在互联网各个运用领域产生持久而巨大的变化。
但是,P2P对于用户最大的意义不是它的技术和功能,而是它的理念。P2P技术把网络中不同的计算机连接在一起,并充分利用互联网和Web站点中任何地方的闲置资源。P2P的目的是将它以用户为中心,所有的用户都是平等的伙伴。相隔万里的用户可以通过P2P共享硬盘上的文件、目录乃至整个硬盘,所有人都共享了他们认为最有价值的东西。这种用户间直接交流的方式,真正实现了互联网共享和自由的梦想,它正在改变着互联网现有的游戏规则,也改变着我们的生活。这种理念源于人们对互联网的憧憬和梦想,它使网络回归到Internet的本质,让共享与自由的精神充满网络世界。
一直想整理一下这块内容,既然是漫谈,就想起什么说什么吧。我一直是在互联网行业,就以互联网行业来说。
先大概列一下互联网行业数据仓库、数据平台的用途:
整合公司所有业务数据,建立统一的数据中心;
提供各种报表,有给高层的,有给各个业务的;
为网站运营提供运营上的数据支持,就是通过数据,让运营及时了解网站和产品的运营效果;
为各个业务提供线上或线下的数据支持,成为公司统一的数据交换与提供平台;
分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;比如广告定向精准投放、用户个性化推荐等;
开发数据产品,直接或间接为公司盈利;
建设开放数据平台,开放公司数据;
。。。。。。
上面列出的内容看上去和传统行业数据仓库用途差不多,并且都要求数据仓库/数据平台有很好的稳定性、可靠性;但在互联网行业,除了数据量大之外,越来越多的业务要求时效性,甚至很多是要求实时的 ,另外,互联网行业的业务变化非常快,不可能像传统行业一样,可以使用自顶向下的方法建立数据仓库,一劳永逸,它要求新的业务很快能融入数据仓库中来,老的下线的业务,能很方便的从现有的数据仓库中下线;
其实,互联网行业的数据仓库就是所谓的敏捷数据仓库,不但要求能快速的响应数据,也要求能快速的响应业务;
建设敏捷数据仓库,除了对架构技术上的要求之外,还有一个很重要的方面,就是数据建模,如果一上来就想着建立一套能兼容所有数据和业务的数据模型,那就又回到传统数据仓库的建设上了,很难满足对业务变化的快速响应。应对这种情况,一般是先将核心的持久化的业务进行深度建模(比如:基于网站日志建立的网站统计分析模型和用户浏览轨迹模型;基于公司核心用户数据建立的用户模型),其它的业务一般都采用维度+宽表的方式来建立数据模型。这块是后话。
整体架构下面的图是我们目前使用的数据平台架构图,其实大多公司应该都差不多:
逻辑上,一般都有数据采集层、数据存储与分析层、数据共享层、数据应用层。可能叫法有所不同,本质上的角色都大同小异。
我们从下往上看:
数据采集数据采集层的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些简单的清洗。
数据源的种类比较多:
网站日志:
作为互联网行业,网站日志占的份额最大,网站日志存储在多台网站日志服务器上,
一般是在每台网站日志服务器上部署flume agent,实时的收集网站日志并存储到HDFS上;
业务数据库:
业务数据库的种类也是多种多样,有Mysql、Oracle、SqlServer等,这时候,我们迫切的需要一种能从各种数据库中将数据同步到HDFS上的工具,Sqoop是一种,但是Sqoop太过繁重,而且不管数据量大小,都需要启动MapReduce来执行,而且需要Hadoop集群的每台机器都能访问业务数据库;应对此场景,淘宝开源的DataX,是一个很好的解决方案(可参考文章 《异构数据源海量数据交换工具-Taobao DataX 下载和使用》),有资源的话,可以基于DataX之上做二次开发,就能非常好的解决,我们目前使用的DataHub也是。
当然,Flume通过配置与开发,也可以实时的从数据库中同步数据到HDFS。
来自于Ftp/Http的数据源:
有可能一些合作伙伴提供的数据,需要通过Ftp/Http等定时获取,DataX也可以满足该需求;
其他数据源:
比如一些手工录入的数据,只需要提供一个接口或小程序,即可完成;
数据存储与分析毋庸置疑,HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。
离线数据分析与计算,也就是对实时性要求不高的部分,在我看来,Hive还是首当其冲的选择,丰富的数据类型、内置函数;压缩比非常高的ORC文件存储格式;非常方便的SQL支持,使得Hive在基于结构化数据上的统计分析远远比MapReduce要高效的多,一句SQL可以完成的需求,开发MR可能需要上百行代码;
当然,使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算;Spark是这两年非常火的,经过实践,它的性能的确比MapReduce要好很多,而且和Hive、Yarn结合的越来越好,因此,必须支持使用Spark和SparkSQL来做分析和计算。因为已经有Hadoop Yarn,使用Spark其实是非常容易的,不用单独部署Spark集群,关于Spark On Yarn的相关文章,可参考:《Spark On Yarn系列文章》
实时计算部分,后面单独说。
数据共享这里的数据共享,其实指的是前面数据分析与计算后的结果存放的地方,其实就是关系型数据库和NOSQL数据库;
前面使用Hive、MR、Spark、SparkSQL分析和计算的结果,还是在HDFS上,但大多业务和应用不可能直接从HDFS上获取数据,那么就需要一个数据共享的地方,使得各业务和产品能方便的获取数据; 和数据采集层到HDFS刚好相反,这里需要一个从HDFS将数据同步至其他目标数据源的工具,同样,DataX也可以满足。
另外,一些实时计算的结果数据可能由实时计算模块直接写入数据共享。
数据应用
业务产品
业务产品所使用的数据,已经存在于数据共享层,他们直接从数据共享层访问即可;
报表
同业务产品,报表所使用的数据,一般也是已经统计汇总好的,存放于数据共享层;
即席查询
即席查询的用户有很多,有可能是数据开发人员、网站和产品运营人员、数据分析人员、甚至是部门老大,他们都有即席查询数据的需求;
这种即席查询通常是现有的报表和数据共享层的数据并不能满足他们的需求,需要从数据存储层直接查询。
即席查询一般是通过SQL完成,最大的难度在于响应速度上,使用Hive有点慢,目前我的解决方案是SparkSQL,它的响应速度较Hive快很多,而且能很好的与Hive兼容。
当然,你也可以使用Impala,如果不在乎平台中再多一个框架的话。
OLAP
目前,很多的OLAP工具不能很好的支持从HDFS上直接获取数据,都是通过将需要的数据同步到关系型数据库中做OLAP,但如果数据量巨大的话,关系型数据库显然不行;
这时候,需要做相应的开发,从HDFS或者HBase中获取数据,完成OLAP的功能;
比如:根据用户在界面上选择的不定的维度和指标,通过开发接口,从HBase中获取数据来展示。
其它数据接口
这种接口有通用的,有定制的。比如:一个从Redis中获取用户属性的接口是通用的,所有的业务都可以调用这个接口来获取用户属性。
实时计算现在业务对数据仓库实时性的需求越来越多,比如:实时的了解网站的整体流量;实时的获取一个广告的曝光和点击;在海量数据下,依靠传统数据库和传统实现方法基本完成不了,需要的是一种分布式的、高吞吐量的、延时低的、高可靠的实时计算框架;Storm在这块是比较成熟了,但我选择Spark Streaming,原因很简单,不想多引入一个框架到平台中,另外,Spark Streaming比Storm延时性高那么一点点,那对于我们的需要可以忽略。
我们目前使用Spark Streaming实现了实时的网站流量统计、实时的广告效果统计两块功能。
做法也很简单,由Flume在前端日志服务器上收集网站日志和广告日志,实时的发送给Spark Streaming,由Spark Streaming完成统计,将数据存储至Redis,业务通过访问Redis实时获取。
任务调度与监控在数据仓库/数据平台中,有各种各样非常多的程序和任务,比如:数据采集任务、数据同步任务、数据分析任务等;
这些任务除了定时调度,还存在非常复杂的任务依赖关系,比如:数据分析任务必须等相应的数据采集任务完成后才能开始;数据同步任务需要等数据分析任务完成后才能开始; 这就需要一个非常完善的任务调度与监控系统,它作为数据仓库/数据平台的中枢,负责调度和监控所有任务的分配与运行。
前面有写过文章,《大数据平台中的任务调度与监控》,这里不再累赘。
总结在我看来架构并不是技术越多越新越好,而是在可以满足需求的情况下,越简单越稳定越好。目前在我们的数据平台中,开发更多的是关注业务,而不是技术,他们把业务和需求搞清楚了,基本上只需要做简单的SQL开发,然后配置到调度系统就可以了,如果任务异常,会收到告警。这样,可以使更多的资源专注于业务之上。
简单网络摄像机装置由一个连接到您的计算机(通常是通过USB接口)的数字摄像机组成。网络摄像机装置的摄像机部分只不过是一个数字摄像机——它并没有特殊之处。摄像机的“网络摄像机”性质来源于软件。网络摄像机软件以预设的间隔从数字摄像机“抓取图像”(例如,软件可以每30秒钟从摄像机抓取一幅静止图像),并将其传输到另一个地点以供查看。如果要使用网络摄像机来处理视频流,您需要一个具有较高帧频的网络摄像机。帧频表示软件可以在一秒钟内抓取并传输的数。对于视频流,最小帧频至少应为每秒15帧(fps),最好是30fps。为获得高帧频,您需要有高速的互联网连接。
网络摄像机的工作原理是什么?
在捕获了一帧图像后,软件会通过您的互联网连接广播该图像。广播方法有多种。最常用的方法是,软件将图像转换成JPEG文件,并使用文件传输协议(FTP)将该文件上传到Web服务器。您可以轻松地将一幅JPEG图像放在任何网页上。
如果您没有自己的Web服务器,还可以使用许多公司提供的免费位置来上载您的图像,从而免除设置和维护Web服务器或托管网站的麻烦。
这是最简单的网络摄像机。下面说明如何实现这种网络摄像机。 <-- Page Break -->
创建网络摄像机
为了创建简单的网络摄像机,您需要三件东西:
一个连接到您的计算机的某种摄像机
一款可定期从摄像机抓取图像的软件
一个在网络上播放图像的途径
如果您有自己的Web服务器和网站,您就已经具备了在网络上播放网络摄像机图像的途径。从最根本上来说,Web服务器只是一个可以将基于网络的内容传输到网络浏览器的硬件。对于有些人来说,他们的家庭计算机可以用作Web服务器。在这种情况下,摄像机、软件和您的PC都是必需之物。如果想使用托管在其他位置的Web服务器(例如,租用一个ASP来托管您的Web服务器),您还需要:
网络摄像机的工作原理是什么?
从您的计算机向Web服务器移动图像的工作,通常通过文件传输协议(FTP)完成。对于大多数Web服务器而言,这并不是问题,但有时,托管公司制定的策略会使这一点不易实现。
您的计算机和互联网之间相对流畅的连接。如果您大多数时间都保持连接(这意味着您的计算机有专用的电话线),则通过调制解调器与ISP连接就可以了。如果您有像电缆调制解调器这样始终连接的装置则更好。
如果您没有并且不想拥有Web服务器或网站,则让别人替您维护网络摄像机图像就可以了。许多网络摄像机软件都可以访问基于网络的图像。它们通常提供不同的访问选项,包括远程访问,该选项利用UDP协议将您的网络摄像机图像直接从您的计算机传输到另一台计算机。这可以通过以下方式进行:
通过Web浏览器。在这种情况下,软件自己会建立自己的HTTP服务器,因此,使用Web浏览器的任何人都可以访问您的PC上的网络摄像机图像
通过传统的FTP上传到远程Web服务器
通过使用这种类型的服务,您不必托管和/或维护自己的网站。如果您正在使用这些服务中的一种服务,并且想让图像能经常自动刷新,那么需要您的计算机和互联网之间有一个相对流畅的连接。如果您的连接不流畅,那也不会有任何损害,只不过图像不会始终保持最新状态。
网络摄像机的工作原理是什么?
网络摄像机设置
为了试用网络摄像机并体验设置网络摄像机的整个过程,博闻网自己购买了一个网络摄像机。为了设置该网络摄像机,我们进行了以下操作:
我们去当地的计算机商店购买了一个Intel Pro Video PC摄像机。
我们在一台Windows XP计算机上安装了该摄像机的软件。
到网站wwwwebcam32com下载了一个名为Webcam32的软件。这是一个适用于网络摄像机的流行软件包。您可以获得一个免费的演示版,也可以支付3995美元获得完整版。(此产品的完整用户手册可在该网站上找到。在该手册中可以看到如今的网络摄像机软件的各种功能。)
安装Webcam32。安装过程非常简单。
在输入FTP站点地址和几条其他信息后,网络摄像机开始大显身手!
我们将摄像机对准了窗外。
然后,稍稍调整了软件,以降低图像文件的大小并启用临时文件复制功能。
您可以在Webcam32中试用许多不同的功能:比如,视频流、聊天、字幕、AVI文件以及不同的分辨率和压缩率。Webcam32还支持AutoCam(自动摄像机)功能,它允许您在公司的服务器上免费为网络摄像机创建一个网页。该软件可以轻松地实现这一目的。
您可以看到,设置基本的网络摄像机极其简单。此处所述的设置过程至少是一个廉价、简单且充满乐趣的过程,您可以亲自试用,看看它能带来什么样的奇妙体验!
网络摄像机高级功能
网络摄像机的工作原理是什么?
在掌握了简单系统之后,您可以深入了解网络摄像机其他的功能和设置,如:
运动感知——网络摄像机在检测到运动的物体时所拍摄的一幅新。
图像存档——您可以创建一个存档,用以保存您的所有网络摄像机图像,或仅按预设间隔保存某些图像。
视频消息——有些即时消息程序支持网络摄像机视频。
高级连接——使用有线或无线方法将你的家庭影院音视频设备连接到网络摄像机。
自动化——机器人摄像机允许你根据摄像机的位置设置一系列平移/倾斜位置,并设定图像捕获设置。
媒体流——对于专业应用,网络摄像机装置可以使用MPEG4压缩以获得真正的音频流和视频流(这是大多数基于PC的流行媒体播放器中使用的压缩系统)。
自定义编码——导入你自己的计算机代码以告诉网络摄像机应该进行什么操作。
自定义编码的实例之一是一组可使网络摄像机图像自动刷新的命令。我们在本文中设置的简单网络摄像机系统生成的是静态图像。如果用户想要查看任何更改,则必须手动刷新图像(通过按浏览器中的“刷新”按钮)。为了实现自动刷新,你可以使用三种不同的方法:
你可以向页面的HTML中添加一个元标记,使该页面以某种频率进行刷新。要添加的标记为:
"30" 是每次刷新之间的间隔秒数,可以设置为你喜欢的任何值。整个页面将每30秒刷新一次,因此使页面保持简短会有好处。
可以向你的站点中添加一个Java小程序。Webcam32和Java小程序页面说明了如何获取并安装免费的小程序。小程序是一种可以定期自动获取图像的程序。其优点是只有图像刷新,而不是整个页面刷新。大多数浏览器都支持Java小程序,因此,大多数查看者都不会遇到问题。
你可以使用JavaScript(如JavaScript源代码:刷新上所示)(请在本页上查看源代码)。你也可以查看Java语言入门教程以了解有关Java编程的详细信息。
网络摄像机的用途
网络摄像机
如果您愿意花一些钱,可以购买一个“网络摄像机”,它具有网络摄像机软件和内置的Web服务器。这样的摄像机不需要PC,它所需要的就是一个互联网连接。如果您家里有以太网,则您会发现摄像机可以天衣无缝地连入您的网络中。
使用通过USB电缆连接到计算机的摄像机时,可能会遇到的问题之一就是电缆长度有限。如果您要捕获的房间位于房子的另一端或不在这座房子里,那该怎么办呢?在这种情况下,您需要购买具有外部连接的摄像机。您有以下几个选项:
网络摄像机的工作原理是什么?
您可以将标准摄像机放在房子里的任何位置,并在摄像机和计算机之间用具有RCA插孔的视频电缆进行连接。网络上随处有售小型针孔视频摄像机,它们或者单独出售,或者嵌入在像时钟和烟感探测器这样的物件上。您只需花上不足100美元即可以买到小型安全摄像机。
通过使用无线电链路(此类产品的实例之一是X10:XRay Vision)、以太网连接或无线上网设置,您可以不使用电缆。如果您已经具有家庭网络,则将外部网络摄像机连接到您的计算机,而可能不需要任何其他联网操作。
网络摄像机的用途多多,通过网络监视家里的情况和共享图像只是其中两种。可以通过多种方式利用连接到您的计算机的摄像机。还可以获取允许您与同样具有网络摄像机的朋友进行视频通话的软件。您可以与位于地球另一侧的业务同伴举行视频会议。您还可以进行视频访谈并在您的博客中实时播放该访谈。有些网络摄像机软件甚至会直接将图像传输到您启用了网络功能的掌上型电脑或智能电话上。还有一些产品允许将您的摄像放像机连接到您的网络摄像机装置,以便可以让每个人都能通过互联网观看您的渡假镜头。这其中的可能性是没有止境的。
0条评论