杂篇——常识有关(下)
目录:
宝安网站建设公司创新互联建站,宝安网站设计制作,有大型网站制作公司丰富经验。已为宝安成百上千提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的宝安做网站的公司定做!字节(Byte),比特(Bit)和字 网络数据如何传输 云服务器与云虚拟主机的区别 NoSql 简述网站架构的演变过程 tomcat项目部署及注意事项 一、字节(Byte),比特(Bit)和字
存贮容量计算单位
1)网络上的所有信息都是以“位”(bit)为单位传递的,一个位就代表一个0或1。
2)每8个位(bit)组成一个字节(byte)。字节是什么概念呢?一个英文字母就占用一个字节,也就是8位,一个汉字占用两个字节。一般位简写为小写字母“b”,字节简写为大写字母“B”。
3)每一千个字节称为1KB,注意,这里的“千”不是我们通常意义上的1000,而是指1024。即:1KB=1024B。但如果不要求严格计算的话,也可以忽略地认为1K就是1000。
4)每一千个KB就是1MB(同样这里的K是指1024),即:1MB=1024KB=1024×1024B=1,048,576B这是准确的计算。如果不精确要求的话,也可认1MB=1,000KB=1,000,000B
5)每一千个MB就是1GB,即1GB=1024MB,至于等于多少字节,自己算吧现在我们搞清楚了,常听人说什么一张软盘是1.44MB、一张CD光盘是650MB、一块硬盘是120GB是什么意思了。打个比方,一篇10万汉字的小说,如果我们把存到磁盘上,需要占用多少空间呢?100,000汉字=200,000B=200,000B÷1024≈195.3KB≈195.3KB÷1024≈0.19MB网络上的速度计算单位一般网络的速度是以“位每秒”(bps)来表示。注意,是小写b(位),而不是大写B(字节)。例如,我们说一个56K的猫(modem),它的速度就是56Kbps,也就是说它一秒钟可传输56K个bit,换算成字节:56Kb=56×1024b=57344b=57344b÷8b / B=7168B即它一秒钟可传递7168字节(≈0.07MB)。如果用这个猫下载一个2M的文件,需要多少时间呢?大家可以自己算一下。我们还常听说ADSL上网的速度是512K、或某台服务器的带宽是10M、或某个网络设备的速度是100M,那么请注意,速度的单位都是bps(位每秒)。在电脑的计数单位中这两个单位可能是最容易被混淆的了,今天我就来谈一下这两个单位的不同。电脑的计数是以2的次方计数的,容量的几个基本单位的进制都是2的十次方(1024).但是这里有个例外,那就是位与字节。位是最最基本的计数单位,但是不常用。常用的基本计数单位是字节,也就是常说的Byte(位的英文是bit)。1Byte=8bit简写的时候字节用B表示,位用b表示。我们常说的mp3,mp4的容量是多少兆就是多少MB的简称而不是Mb。我之所以要提这两个的区别是因为有的商家太狡猾了,他们总是利用这两个东西来混淆视听,尤其是电子词典。比如有的电子词典在广告上说他有256Mb的内存,如果不是打印错误那你就该注意了,此Mb非彼MB。这里的256Mb实际上只等于我们常说的32MB,也就是它容量的八分之一。除了这里,的误解出现在网速上。通信商给我们提供的1M,2M的速率都是以Mb计算的。比如家里常用的1M的网速,它的全称是1Mbps,就是说每秒下载1Mb的东西,换算为字节就是128KB,这个值是理论值,只有在特别理想的状况下才能达到。所以1M的网速如是下载速度在70~100KB / s都是正常的。高了或低了都是不正常的(当然我们希望它不正常的高)。若是低的厉害那你就该检修一下线路了,或者修修你的电脑。附:1GB=1024MB1MB=1024KB1KB=1024B1B=8bit
(硬盘的计数以1=1000记)我们经常说到网速,而提到网速,经常省略了单位,往往只是说G、M、K,其实G、M、K是数量的简略表示法,换算公式:1G = 1024M,1M = 1024K,1K = 1024,就相当于我们中国人说的亿、万、千、百、十,只是数量的简略表示而已,并不是单位。B是Byte的意思,Byte是字节的意思,是存储空间的基本计量单位bit是位的意思,是说二进制数的长度单位,比如10011001就是8位二进制数这个bit就是网速的基本计量单位bps里的b,bps的意思是bits per Second,即每秒传输多少位数 (二进制)为什么这里是bits而不是bit了呢?这是英文与中文的区别,复数的表示法。二进制数是计算机内部使用的基本表达语言,所以位 (bit)是计算机中最小的数据单位。1字节在计算机里存储为一个8位进制数,这是固定的。提到了字节,不得不再提到“字”这个计量单位: “字”由若干个字节构成,字的位数叫做字长,字长就是说字所对应的二进制数的长度。不同的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。前期的DOS就是8位的,后期的DOS是16位的,Win9X是基于DOS的,所以也是16位的,NT核心的Windows是32位的,现在也有了64位的XP / 2003,CPU也有了64位的,这个操作系统和CPU所说的位就是bit的意思,即二进制数的长度。字节是固定由8位二进制构成,64位系统就代表了64位的二进制代表一个字,换算成字节就是64 / 8 = 8,即是说由8字节构成一个字,32位系统就是32 / 8 = 4,4个字节代表一个字。
字
在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字。字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示。
在计算机的运算器、控制器中,通常都是以字为单位进行传送的。宇出现在不问的地址其含义是不相同。例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。
字长
计算机的每个字所包含的位数称为字长。根据计算机的不同,字长有固定的和可变的两种。固定字长,即字长度不论什么情况都是固定不变的;可变字长,则在一定范围内,其长度是可变的。
计算的字长是指它一次可处理的二进创数字的数目。计算机处理数据的速率,自然和它一次能加工的位数以及进行运算的快慢有关。如果一台计算机的字长是另一台计算机的两倍,如果两台计算机的速度相同,在相同的时间内,前者能做的工作是后者的两倍。
一般地,大型计算机的字长为32―64位,小型计算机为12―32位,而微型计算机为4一16位。字长是衡量计算机性能的一个重要因素。
比如你用QQ发送文本信息“你好”给对方。 发送过程:
1、QQ先把“你好”转换成ASCII码,并且生成一个报文,此时报文为:(QQ报文头)+(你好的ASCII码)
2、QQ是应用层软件,,理论上应用层应该把报文交给它的下一层,表示层。此时报文变为(表示层报文头)+(QQ报文头)+(你好的ASCII码) 不过,我觉得QQ应该是直接把报文交给了传输层的UDP协议,此时报文变为(UDP报文头)+(QQ报文头)+(你好的ASCII码)。此时还要建立UDP连接,不赘述。
3、然后UDP协议把报文交给网络层的IP协议,报文变为(IP报文头)+(UDP报文头)+(QQ报文头)+(你好的ASCII码)。
4、然后,IP协议把报文交给链路层协议的以太协议,报文变为(以太报文头)+(IP报文头)+(UDP报文头)+(QQ报文头)+(你好的ASCII码)。
5、然后,以太报文被送到网卡上,此时报文被分割为好几个帧,以0101的形式通过物理层发送到网络上。 6、然后,是交换机收到这些帧,把这些帧还原成以太报文,交换机根据以太报文头里的MAC地址查找自己的MAC地址表,找到出接口,把报文从出接口发送出去(把报文送到网关设备上)。发送的时候报文又被分割成多个帧,通过物理层发送出去。
7、网关收到报文后,根据IP报文头里的IP地址,查找自己的路由表和FIB表,找到下一跳地址,然后把报文送到下一跳,这个过程不断重复,直到找到对方的网关。
8、对方的网关再把这个报文发送到对方的电脑上。
9、对方电脑收到报文后依次剥掉以太报文头、IP报文头、UDP报文头,然后发现应用层协议是QQ,于是把这个报文交给QQ软件处理,QQ再把ASCII码还原成“你好”,显示在对话框里。
三、云服务器与云虚拟主机虚拟主机就是利用技术把一台服务器分成多个“虚拟”的主机,这些划分出来的主机具有独立的域名和完整的Internet服务器功能,共享服务器的带宽和IP。虚拟主机之所以被普遍使用,在于它的易操作性和超高性价比。虚拟主机没有独立的操作系统,用户只需通过提供的图形化控制面板简单操作就可以了。另外,由于这些虚拟主机是共享一台独立服务器,每个用户承受的成本大大降低。
而云服务器又称云主机,它是在一组集群服务器上划分出来的多个类似独立主机的部分,拥有和服务器相同的功能与使用方法,有独立的带宽和IP,用户可以根据需求安装各种操作系统和配置相应的运行环境。由于云主机是从集群服务器中划分的,集群中的每台服务器都会有云主机的一个镜像,任意一台服务器出现硬件故障时,系统都会自动访问其他机器上的镜像备份,避免网站的丢失,提高了稳定性和安全性。
从虚拟主机和云服务器的概念中可以看出,无论是性能还是安全方面云主机都强于虚拟主机,但价格也比后者贵很多。而虚拟主机由于是共享服务器的资源,所需成本并不高,也因为其性价比受到建站用户的欢迎。
不过随着云计算技术的日趋发展,很多IDC公司通过技术把云服务器划分成小型的云虚拟主机,它们的稳定性和安全性大大提高,成为中小型企业建站的选择。
无论是传统的主机,还是云主机,它们都有自己的优势,而对建站用户来说,能满足需求的才是最合适的!
四、NoSql1.文档数据库适合多种数据类型
文档数据库经常用于内容管理系统,收集和处理来自网页和移动应用的数据,比如应用监控。顾名思义,文档数据库以类似文档的结构存储数据,可以采用无模式的形式。MongoDB、CouchDB、Couchbase Server和MarkLogic是典型的文档数据库。
2.键值数据库简化IT
诸如Redis、Aerospike和Riak等键值数据库是形式最简单的NoSQL软件。数据中的每一个值都有专门的键(key)与之匹配,能够实现针对相对简单数据集的超快应用性能。美国咨询和技术服务供应商Caserta Concepts总裁Joe Caserta表示:“键值存储是轻量级的,用户可以实现秒级的浏览和查询。”
3.列式数据库应对海量数据
列式存储在拥有大量列的表中存储数据,在处理大数据集的时候,就可以具备更高的性能和扩展性。通常应用于互联网搜索、其他大规模的网页应用和PB级的分析应用,典型的列式数据库包括Accumulo、Cassandra和HBase
4.图数据库表示数据关系
图数据库,以InfiniteGraph和Neo4j为代表,以类似于图的结构存储数据,便于探索数据之间的联系,可应用于产品推荐和社交网络。英国医疗网站HealthUnlocked的技术负责人Alex Trofymenko表示,图数据库可以用来匹配不同人之间和人与兴趣之间的关系。
五、网站架构演变高并发,大流量
高可用
海量数据
用户分布广泛,网络情况复杂
安全环境恶劣
需求快速变更,发布频繁
渐进式发展:好的互联网产品都是慢慢运营出来的,不是一开始就开发好的,同于网站架构的发展过程
1.初始:应用程序 文件 数据库等所有资源在同一台服务器上
越来越多的用户访问导致性能越来越差,越来越多数据源导致存储空间不足。
2.应用服务于数据服务相分离:应用服务器(大量业务逻辑,需要强大CPU) 文件服务器(大量用户上传文件,大硬盘) 数据库服务器(快速磁盘检索和数据缓存,更快的硬盘和更大内存)
用户再次增多,数据库压力太大导致访问延迟,影响整个网站性能,用户体验受到影响。
3.使用缓存改善网站性能:80/20法则 80%的业务集中在20%的数据上 把这20%的数据缓存在内存中----分布式缓存服务器(快而大的硬盘,远程分布式缓存)
单一服务器能处理的请求连接有限,在网站访问高峰期,应用服务器成为整个网站的瓶颈。
4.使用应用服务器集群改善网站的并发处理能力:增加应用服务器改善负载压力(负载均衡)
网站使用缓存后,绝大部分数据读操作可以不通过数据库完成,但有一部分操作(缓存访问不命中,缓存过期)和全部写操作需要访问数据库,在网站的用户达到一定规模,数据库因为负载压力过高成为网站的瓶颈。
5.数据库读写分离:配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一服务器上(服务器的主从热备功能)。
介绍:应用服务器写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库获得数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离对应用透明。
网站访问延迟和用户流失率正相关。
6.使用反向代理和CDN加速网站响应:CDN和反向代理的基本原理都是缓存。区别在于CDN部署在网络提供商的机房,使用户在请求网站服务时,从距离自己最近的网络提供商机房获取数据;反向代理部署在网站的中心机房,当用户请求到达中心机房后,首先访问的是反向代理服务器,如果反向代理服务器缓存着用户请求的资源,就将其直接返回给用户。
任何强大的单一服务器满足不了大型网站持续增长的业务需求。
7.使用分布式文件系统和分布式数据库系统:分布式数据库时网站数据库拆分的最后手段,只有在单表数据规模十分庞大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上。
网站的业务越来越复杂,对数据存储和检索的需求越来越复杂
8.使用NoSQL和搜索引擎:均为互联网的技术手段,对可伸缩的分布特性具有更好的支持。应用服务器则通过一个统一的数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。
9.业务拆分:如大型购物交易网站将首页、商铺、订单、买家、卖家等拆分成不同的产品线,分归不同的业务团队负责。
10.分布式服务:提取共用业务,独立部署。
六、tomcat项目部署及注意事项一、Tomcat的项目部署方式有以下三种:
1.直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法,也是初学者最常用的方法。
2.在tomcat安装目录中有一个conf文件夹,打开此文件夹,其中包含配置文件server.xml,打开配置文件,并在
3.在conf目录中,在Catalinalocalhost(此处需要注意目录的大小写)目录下新建一个XML文件,任意命名,只要和当前文件中的文件名不重复即可,代码如下。
二、tomcat配置项目的注意事项
Java Web 项目在 Tomcat 下部署有一些不必要的坑需要避免,所以撰写此文方便大家绕过一些坑,以下部署以 linux 为例,windows 与此类似:
1:创建一个目录: /var/www
2:为将要部署的项目创建一个目录, /var/www/my_project
3:将项目打成 war 包, 然后解压到 /var/www/my_project
4:最终的目录结构为:/var/www/my_project/WEB-INF,也即WEB-INF 在项目名称目录之下
5:修改 TOMCAT_HOME/conf/ server.xml 文件找到 Host 标记,在其中添加如下子标记:
6:注意 Host 标记中的 appBase 属性不要去修改,让其为默认值 "webapps"
7:启动 tomcat 打完收工
第一个关键点:以上配置中项目是部署在了 TOMCAT_HOME/webapps 目录之外的,这样做是为了避免 tomcat 加载项目两次的坑,因为配置文件中如果配置了该项目会被加载一次,而项目在 webapps 下面又会被自动重复加载一次,这个坑会引发一些莫名奇妙的问题,例如:老版本的tomcat中,多人同时登录后session产生混乱,再例如:有些项目有定时任务,如果重复加载项目,那么定时任务也会被执行多次。所以记住第一点,永远不要将项目放在 TOMCAT_HOME/webapps 目录下面。
第二个关键点:以上配置中的 Context 标记的 path 属性一定要设置为 "" 而不是 "/",否则也会跳入一个坑。 docBase 属性后面放项目名称的绝对地址, windows 下则是类似于这样的值: d:/www/my_project。
简单说 tomcat 下配置分两步,一是在 webapps 目录之外建目录放项目,二是找 Host 标记放入 Context 子标记。
新闻名称:杂篇——常识有关(下)
文章URL:http://cdiso.cn/article/cpdhsh.html