如何做一个千万级并发的物联网接入架构
1、提供HTML静态访问
web界面上最快的访问速度是什么?当然是最原始的HTML文件访问,对于其他语言 比如 jsp ,asp,php等等,他们首先要通过服务器解析成html之后在返回给访问者,如果我们能提供全部是htm来的页面,那么就能大大的降低服务器和数据库资源的利用和提高网站的并发,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。当然实现这种方式大家比较了解的就是信息发布系统CMS,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
在后续的文章中我们会单独的使用jsp + servlet实现一个简单的信息发布系统
2、使用独立的服务器
为什么要把单独设置一个服务器?对于Web服务器来说,消耗的服务器资源是最多的,如果能把所有的资源放到一个单独的服务器中进行处理的话,可以降低提供页面访问请求的服务器系统压力,从而能进一步的提高web程序的并发所以在有条件的情况下最好能把放置到一个单独的服务器中
3、配置多台数据库服务器,多个数据库集群
集群(Cluster)技术是使用特定的连接方式,将价格相对较低的硬件设备结合起来,同时也能提供高性能相当的任务处理能力。
越是大型高并发的应用,数据库的压力就会越大,如果数据库操作很频繁,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群。
数据库集群就是使用多个数据库服务器分担请求的压力,达到快速响应的目的
4、使用缓存
所谓的缓存就是把数据咱是放置到内存中,前台在请求的时候直接从内存中读取数据,而不需要去查询数据库或者读取文件等,这样就能做到最快的响应。网站架构和网站开发中的缓存是非常重要的。
目前有很多开源的缓冲实现方案,APC,File,SQLite,Memcache等等各种类库实现着不同的缓存方式,只有通过了解他们的实现方式,根据具体应用具体选择,才会使缓存系统发挥出最大的性能。
对于java开发来说,大名顶顶的 分布式缓存系统Memcache 可能是最好的选择,他提供一个基于Socket的访问方式,使得该缓存系统支持远程读写访问。尽管这个缓存的内容可能是存在内存中,也可能是存在文件内。
一、linux集群
Linux集群系统包括集群节点和集群管理器两部分。集群节点有时简称为节点、服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作。一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件。应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件。Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点。
集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,在多个机器之间平衡负载,获得更多的系统可靠性,或在主机失败时提供后备系统(切换)。
通过对相关软件的分析,实现集群负载的功能是通过流量管理实现的,具体有以下几种实现方法:直接路由(Direct Forwarding)、网络地址转换(NAT)和隧道技术(Tunneling)。
直接路由(Direct Forwarding)是当参与集群的计算机和作为控制管理的计算机在同一个网段时可以使用此法。控制管理的计算机接收到请求包时,直接送到参与集群的节点。它的优点是返回给客户的流量不经过控制主机,速度快、开销少。
可能大家比较熟悉网络地址转换(NAT)这种方法。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身。当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。它的优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量要经过转换器。
隧道技术(Tunneling)这种方式是Linux集群的节点不在同一个网段时采用的转发机制,是将IP包封装在其它网络流量中。从安全角度考虑,应该使用隧道技术中的***,也可使用租用专线。
Linux集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务和Proxy服务器等。
二、oracle集群
Oracle集群,最早称作OPS(Oracle Parallel Server)出现在Oracle 7版本中,从Oracle 9i开始正式改称为Oracle RAC,RAC即Real Application Clusters的简写,译为“真正应用集群”;RAC是Oracle新版数据库中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术。
在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
数据库双机可以有两种不同的方式:双机热备份、双机集群。
双机热备份方式的集群完全通过操作系统的cluster软件来实现,在同一个时刻,只有一台机器对数据库作操作,当这台机器发生故障以后,由操作系统cluster将所有资源切换到两外一个节点,防止单节点数据库故障。
双机集群方式(RAC),在10g以后,通过ORACLE自身提供的CRS来实现集群的功能。在同一个时刻,所有的机器都对数据库作操作,当某台机器发生故障后,其他机器接管该机器的工作。这种方式不但能够防止单节点数据库故障,还能够实现负载均衡。因为两个机器对同一个数据库操作,因此数据库文件一般无法使用传统的文件系统方式存储。
信息检索技术论文 –
基于网格的面向专业内容的Web信息检索
1 引言
近年来,互联网得到了迅速的发展,网上信息资源愈来愈庞大,且信息具有量大、分散、异构等特性,因此,传统的Web信息检索工具开始暴露出它性能低下的一面,具体体现在现有的信息检索工具对用户的要求常常是找出了几千甚至上万条记录,根本无法从中再细找,或者找到的内容和要找的内容不是一个专业领域的,造成信息无效的现象。但随着人们信息意识的增强,对信息内容及信息服务的需求也在不断的演变和发展,对获取信息的专业化、实效性等方面有了新的要求。如何针对专业领域中特定的用户群为他们提供专业的、度身量造的信息服务,使用户在尽可能短的时间内有效的找到最需要的信息内容是大家普遍关注的一个问题。本文利用网格计算、集群系统、XML等技术设计了一个基于网格的面向专业内容的Web信息检索体系结构,它能将地理位置分散的、异构的信息按地区按专业内容从逻辑上进行合理的组织和管理,为用户快速、有效地获取自己所需要的信息提供了一种方法。
2 基于网格的面向专业内容的Web信息检索体系结构的设计
网格计算是近年来国际上兴起的一种重要信息技术,其目的是将网上各种资源组织在一个统一的大框架下,为解决大型复杂计算、数据服务和各种网络信息服务提供一个方便用户使用的虚拟平台,实现互联网上所有资源的全面连通,实现信息资源的全面共享。
为解决不同领域复杂科学计算与海量信息服务问题,人们以网络互连为基础构造了不同的网格,他们在体系结构,要解决的问题类型等方面各不相同,但网格计算至少需要具有三种基本功能:资源管理、任务管理、任务调度。本文设计的信息检索体系结构,围绕网格计算的基本功能及信息检索的特点,主要有以下三个层次组成:见图1
(1) 网格结点:结点是网格计算资源的提供者,本系统主要是由一系列的集群系统组成,它们在地理位置上是分布的,构成了一个分布检索群体,作为信息共享的基础结构平台。集群系统负责整个集群范围内的信息管理,维护和查询。
(2) 网格计算中间件:中间件是信息资源管理和用户任务调度、任务管理的工具。它是整个网格信息资源管理的核心部分,它根据用户的信息请求任务,在整个网格内负责信息资源的匹配、定位,实现用户任务到集群系统的映射。
(3) 网格用户层:主要为用户应用提供接口,支持用户对所需要的信息资源进行描述、创建、提交等。
图1
本系统的主要思想是在逻辑上将地理位置分散的、异构的信息划分、组建成多个集群系统,集群系统对集群内的资源进行管理和任务调度,再利用网格中间件对各集群系统进行管理,从而形成对整个网格资源的管理,并对用户的信息需求进行统一的管理和调度。这种管理模型既可以尊重各个集群系统的本地信息管理策略,又可利用中间件在全局意义上对网格信息资源进行管理。
21 集群系统的设计
由于Web信息资源数量十分庞大,用户在利用现有搜索引擎检索信息时面临一个海量数据的查询问题,往往造成在消耗巨大的通信资源后依然存在资源查不准、查不全的问题。目前基于单一系统映射的Web服务器集群系统能把若干服务器用局域网连接成一个整体,并使其从客户端看来就如同一台服务器在服务,这使得在逻辑上合并、组织地理位置分布的信息资源成为可能。因此本文首先考虑采用分布协作策略,将Web信息资源按地区按专业内容分割,一方面使信息资源数量相对缩小,便于数据的组织、管理和维护,另一方面按专业内容易于制定一个公用的XML规范,便于集群内各类信息资源的描述,从而可建立一个基于XML的面向专业内容的信息集成系统。集群系统的具体结构见图2。
集群服务器主要由接口Agent,基于专业内容的XML信息集成系统、资源服务Agent、资源发布Agent等组成。其中接口Agent根据任务提供的接口参数登记、接收、管理各种信息资源请求任务,并提供安全认证和授权。资源服务Agent根据信息资源请求任务,利用XML信息集成系统提供的数据,为用户提供实际的资源检索操作,并将检索结果信息发送给用户。资源发布Agent用于向网格中间件提供本地信息资源的逻辑数据及接口参数。
下面主要说明基于专业内容的XML信息集成系统的构造方法:
XML(the eXtensible Markup Language)是 W3C于1998年宣布作为Internet上数据表示和数据交换的新标准,它是一种可以对信息进行自我描述的语言,它允许开发人员通过创建格式文件DTD(Document Type Definitions)定制标记来描述自己的数据,DTD规范是一个用来定义XML文件的语法、句法和数据结构的标准。 XML使用普通文本,因此具有跨平台的优点,XML的优点在于(1)简单、规范性:XML文档基于文本标签,有一套严谨而简洁的语法结构,便于计算机、用户理解;(2)可扩展性:用户可以自定义具有特定意义的标签,自定义的标签可以在任何组织、客户、应用之间共享;(3)自描述性:自描述性使其非常适用不同应用间的数据交换,而且这种交换是不以预先定义一组数据结构为前提,因此具有很强的开放性;(4)互操作性:XML可以把所有信息都存于文档中传输,而远程的应用程序又可以从中提取需要的信息。XML数据是不依赖于某个特定的平台的应用,因此它为基于特定专业内容的表达提供了一种极好的手段,可以作为表示专业内容的语言。
目前人们研制Web信息集成系统其基本方法可分成两类:存入仓库法(the ware-housing approach)和虚拟法(the virtual approach),可使用这两类方法利用XML在数据组织和交换方面的优越性,采用格式文件DTD和XML文档表示基于专业内容的集成模式和集成模式与资源之间的映射,建立基于XML的Web信息集成系统,其结构与获取信息的工作过程参见文献[2]。
图2
22 网格中间件的设计
图3所示的网格中间件的主要功能是(1)消除不同用户与集群系统之间数据表达的差异,使信息资源数据对用户来说是透明的;(2)管理、维护Web上分布的各集群系统,网格中间件以关系数据库方式记录所有集群系统及其所包含的专业内容的逻辑信息,对关系数据库的操作可维护集群系统的分布式逻辑,使本结构在可变性和扩充性上具有柔性;(3)接受用户的信息请求任务,能快速定位于满足要求的集群系统,通过对关系数据库的查询实现用户信息请求任务与集群系统的对应关系。
内部主要功能模块说明如下:
(1) 接收Agent模块:主要用于登记、接收、管理各种信息资源请求任务,并提供安全认证和授权。
(2) 关系数据库及数据服务Agent:关系数据库记录了所有集群系统及其所包含的专业内容的逻辑信息。数据服务Agent提供集群系统对关系数据库的使用权限和对数据记录的增加、删除、检索和修改等操作。
(3) 格式转换Agent模块:提供用户信息资源请求文档与各集群系统中文档的格式转换功能。由于XML是自定义的,各用户对同一数据有不同的表示方法(对信息资源描述存在差异)由于XML文档中这种格式差异体现在与之相关的DTD/Schema上,因此经过格式转换,可使信息资源的格式对用户是透明的。
(4) XML文档分析Agent模块:提取格式转换后的XML文档中各个标签,通过查询网格中间件中的关系数据库,实现用户信息请求任务与集群系统的对应关系,并得到满足条件的集群系统的相关信息,获取各集群系统的接口参数。
(5) 发送Agent模块:将转换过的信息资源请求XML文档发送到相应的集群系统中。
其中Agent技术是解决分布式智能应用问题的关键技术,Agent是指能够自主地、连续地在一动态变化的、存在于其它系统中运行的、且不断于环境交互的实体。在系统中引入Agent可使系统具有人的特征,代表用户完成用户的任务,并能动态适应环境的变化更好地满足用户的需求,提高信息检索的能力。文秘杂烩网 http://wwwrrrwmcom
tomcat服务器占用资源少,稳定且免费。是一个轻量级的服务器,主要是应用于中小型项目 ,当并发访问的用户比较少时,可以选用tomcat服务器。tomcat服务器是运行jsp和servlet的很好的容器,但是它不支持EJB等。项目在tomcat中的部署很方便。
weblogic服务器:
而相比之下,weblogic服务器则功能更强大了一些,它属于应用级服务器,它不尽支持jsp和servlet,而且还支持更多的java的规范。 他用于开发,集成,部署和管理大型的分布式web应用,网络应用和数据库应用。这种大型的服务器有着自己独特的优势,即标准领先(它的标准包括ejb,jsb,jms,jdbc,xml和wml),扩展性无限(它的体系架构具有高扩展性,主要包括哭户籍连接的共享,资源pooling以及动态网页和ejb组件集群),快速开发(凭借对ejb和jsp的支持,以及其对servlet组件的架构体系,可加速部署应用),部署灵活,可靠等。但是一般的系统部署基本不会用到它,因为一般非基于ejb等的分布式开发项目,仅仅用tomcat即可满足我们的需求,所以无需动用重量级的weblogic。
jboss服务器:
jboss是一个基于j2ee的开放源码应用服务器,它也是免费的。它是一个管理ejb的容器,jboss核心服务仅支持ejb服务器,所以是不包括jsp和servlet的web容器。当然了,它可以和tomcat等进行绑定使用来同时支持jsp,servlet以及ejb的规范。jboss有一个典型的特点:当有servlet的系统调用到jboss里面的ejb时不经过网络,因为jboss和web服务器在同一个java虚拟机中运行,这可以大大提高运行效率和安全性。
这三个只有weblogic是商业的软件,所以你希望性能好的话,就用weblogic最好。
应用最广泛的大型O 数据库Oracle数据库
就是著名的国际最大的数据库制造商甲骨文公司的产品。基本上一些web服务都是基于他来完成工作的,
了解一下他的资料
是第一套具有无限可伸缩性与高可用性,并可在集群环境中运行商业软件的互联网数据库,具有400多个领先的数据库功能,在集群技术、高可用性、商业智能、安全性、系统管理等方面都实现了新的突破。作为甲骨文公司长达十年的软件技术研发成果,真正应用集群技术(Real Application Clusters)能够提供近乎无限的扩充能力与整体可用性,为用户带来透明的、高速增长的集群功能。
Oracle应用服务器10g是J2EE认证的、最轻、最快、最具伸缩性的应用服务器,提供了企业门户软件、无线支持、高速缓存、轻量级J2EE引擎、商务智能、快速应用开发、应用与业务集成、Web 服务等多种应用开发功能,形成完整的电子商务应用开发和部署环境。使用了Oracle应用服务器10g的用户可以通过升级软件来取代升级硬件,大大的节省了基础设施的成本花费。
Oracle开发工具套件10g是一套完整的集成开发工具,可用于快速开发使用Java和XML语言的互联网应用和Web服务,支持任何语言、任何操作系统、任何开发风格、开发生命周期的任何阶段以及所有最新的互联网标准。
9i之后的Oracle的硬件要求很高,(Windows版本)9i建议配512M内存,10g建议配1G内存。
Oracle数据库的体系结构
Oracle数据库包括Oracle数据库服务器和客户端。
Oracle数据库服务器:
Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个 DBA用户名,具有最大的数据库操作权限;System,它也是一个 DBA用户名,权限仅次于 Sys用户。
客户端:
为数据库用户操作端,由应用、工具、SQL NET组成,用户操作数据库时,必须连接到一服务器,该数据库称为本地数据库(Local DB)。在网络环境下其它服务器上的 DB称为远程数据库(Remote DB)。用户要存取远程 DB上的数据时,必须建立数据库链。
Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。
0条评论