服务器类型

服务端高并发分布式架构演进之路

蹲街弑〆低调 提交于 2020-02-27 02:28:17
1. 概述 本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。 特别说明:本文以淘宝为例仅仅是为了便于说明演进过程可能遇到的问题,并非是淘宝真正的技术演进路径 2. 基本概念 在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍: 分布式 系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上 高可用 系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性 集群 一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如Zookeeper中的Master和Slave分别部署在多台服务器上,共同组成一个整体提供集中配置服务。在常见的集群中,客户端往往能够连接任意一个节点获得服务,并且当集群中一个节点掉线时,其他节点往往能够自动的接替它继续提供服务,这时候说明集群具有高可用性 负载均衡 请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求负载,则可认为系统是负载均衡的 正向代理和反向代理 系统内部要访问外部网络时

Tomcat入门教程

和自甴很熟 提交于 2020-02-26 23:35:20
一、Tomcat服务器端口的配置 Tomcat 的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件。 如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改 例如:将Tomcat服务器的启动端口由默认的8080改成8081端口 Tomcat 服务器启动端口默认配置 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 将Tomcat服务器启动端口修改成8081端口 <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 这样就把原来默认Tomcat默认的的8080端口改成了8081端口了,需要注意的是,一旦服务器中的*.xml文件改变了,则Tomcat服务器就必须重新启动,重新启动之后将重新读取新的配置信息。因为已经在server.xml文件中将Tomcat的启动端口修改成了8081,所以Tomcat服务器启动时就以8081端口启动了 访问Tomcat服务器也必须以新的访问端口去访问:http://localhost:8081/ 二

服务器的性能这些可以体现

帅比萌擦擦* 提交于 2020-02-26 22:18:55
一、硬盘类型服务器中的固态硬盘硬盘驱动器提供更高的磁盘读/写速度,也称为输入/输出(I/O)性能。具有读取和写入磁盘的服务器速度更快,但定价明显高于同等存储容量的硬盘。 二、硬盘存储空间 服务器的硬盘存储是本地数据库大小和文件的本地存储的限制因素。配置RAID磁盘阵列可有效增加数据可靠性,添加读取/写入(I/O)功能,RAID需要两个以上单独的存储卷。存储还可以采取网络存储的形式,如(网络连接存储)或SAN(存储区域网络)。 三、内存RAM(随机存取存储器) 服务器内存的大小会影响服务器处理指令的速度。处理更复杂和更多种指令时,需求更高的内存。例如,动态的电子商务网站、数据库服务器等,需求对数据库运行各种查询和检索,更大的内存将使您取得更高的性能优势 四、CPU(内存处理器) 独立服务器的CPU执行者如服务网页、运行数据库查询或处理计算机命令等指令。CPU和内核的数量会影响可执行多少个并发指令。CPU架构和功能也影响执行指令的速度,特别是在围绕这些功能设计程序的网站或应用。 五、宽带 带宽数据传输限制,指的是可以并发到您的服务器的数据量。服务器带宽价格较高,一般供给国际带宽。像并发视频流、游戏和大数据处理等工作任务都需要高带宽。 六、可用性 服务器的高可用性(HA)可能指网络和电源可用性,这反映在托管服务提供商的维护正常运行时间的实践记载以及其(服务级别协议)中

HTTP 的长连接/短链接

ⅰ亾dé卋堺 提交于 2020-02-26 21:32:57
HTTP 协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。 2. 如何理解HTTP协议是无状态的 HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。也就是说,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。 3. 什么是长连接、短连接? 在HTTP/1.0中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。 但从 HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头有加入这行代码: Connection:keep-alive

HTTP长连接与短链接

情到浓时终转凉″ 提交于 2020-02-26 21:31:59
想要充分了解HTTP长连接,需要首先知道一些基本概念: TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。 经典的三次握手示意图: 经典的四次握手关闭图: TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server 发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发起close操作,不过一般都是client先发起 close操作。为什么呢,一般的server不会回复完client后立即关闭连接的,当然不排除有特殊的情况。从上面的描述看,短连接一般只会在client/server间传递一次读写操作。短连接的优点是:管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段。 TCP长连接 接下来我们再模拟一下长连接的情况,client向server发起连接,server接受client连接,双方建立连接。Client与server完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。 首先说一下TCP

负载均衡中间件(二)LVS负载均衡软件和基于云计算平台的架构

孤人 提交于 2020-02-26 11:46:56
一、LVS简介 LVS全称Linux Virtual Server,即Linux虚拟服务器。它是我国章文嵩博士的一个开源项目。在linux内核2.6中,已经成为了内核的一部分,在此之前的内核需要重新编译内核。 主要用于服务器的负载均衡,它工作在网络4层,开源实现高性能,搞可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置简单,且有多种负载均衡方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外扩展性非常好。 针对高伸缩、高可用网络服务的需求,我们给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。 虚拟服务器的体系结构如上图所示,一组服务器通过高速的局域网或地理分布的广域网相互连接,在它们的前端有一个负载均衡调度器(Load Balancer)。负载均衡调度器能无缝地将网络请求调度到真实服务器上,从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。由于我们的负载调度技术是在linux内核中实现的,我们称之为linux虚拟服务器。 项目目标:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的伸缩性、可靠性和可管理性。 目前

Windows 2016中安装SQLServer2016 Failover Cluster

安稳与你 提交于 2020-02-26 03:32:59
本文主要介绍如何在Windows Server 2016中部署SQLServer2016 Failover Cluster;什么是Failover Cluster,请查看 微软技术文档 。 部署环境 编号 服务器名称 IP地址 操作系统 001 AD1 192.168.100.250 Windows Server 2016 Datacenter Evaluation 002 Storage 192.168.100.252 Windows Server 2016 Datacenter Evaluation 003 SQL1 192.168.100.242 Windows Server 2016 Datacenter Evaluation 004 SQL2 192.168.100.243 Windows Server 2016 Datacenter Evaluation 005 CSQL 192.168.100.244 SQLServer Cluster 006 MSSQL 192.168.100.245 SQLServer Service 先决条件设置 1、配置AD域控制器,如何配置AD域控制器请查看 创建AD域 2、部署Storage,如何配置存储请查看 部署Storage 3、设置IP地址,DNS指向域控制器IP 4、安装用户这里使用域管理员,或者新建一个域用户

SQLServer 2008R2主从部署实战

筅森魡賤 提交于 2020-02-26 03:32:30
说明: 由于临时接到做OA的主从环境,基于Windows 200R2 SQLServer2008 R2,由于搜索的资料都不完整,好多重要之处有遗漏,亲自动手做了好几次,填完了坑,整理以备忘记与分享,如有错误遗漏之处欢迎指正交流~ 一、配置环境 主库: 10.8.11.214 数据库版本:SQL Server2008 R2 服务器名称:WIN-D4GRPQKED93 从库: 10.8.11.79 数据库版本: QL Server2008 R2 服务器名称:WIN-3ME2DJ8L9KT 注意点: 服务器名称(主机名)最好在确定好后再安装SQL Server 2008R2数据库这样能确保主机名,实例名保持一致 如果是在安装好sqlserver2008后修改了主机名,通常会导致主机名和实例名不一致问题; 可通过下面的命令进行检测和修复 查看服务名称(默认安装时的实例名也是和主机名一致)和主机名是否一致 select @@servername select serverproperty('servername') 如果不一致请进行修改: if serverproperty('servername') <> @@servername     begin     declare @server sysname     set @server = @@servername     exec sp

快节奏多人游戏同步(1)-ClientServer架构

怎甘沉沦 提交于 2020-02-26 02:57:43
PART 1 概述 本文是关于探索快节奏多人游戏的技术和算法系列的第一篇,因此对多人游戏概念非常熟悉的同学可以随意的跳过这一篇就好啦~因为接下来只是一些介绍性质的讨论。。。 任何类型的游戏开发都是某种挑战,然而在多人游戏中我们还有更多全新的问题函待解决~最最 Interesting 的地方在于其核心问题其实是人类和物理!- - 好吧其实是作弊和地理限制造成的网络延时。。 PART 2 反作弊 所有的一切的起源都是作弊。 作为一个游戏开发者,你一般不会去担心有人在你的单人游戏中去作弊 - 因为他的行为不会给其他人带来影响,一个作弊的玩家可能并不会按你设计的套路去进行游戏,但是游戏是他的,他们有权利去选择怎么去玩。 多人游戏则不同。在任何的有竞争关系的游戏中,一个作弊玩家不仅仅给自己带来了更好的体验,他也毁了其他的玩家的游戏。作为开发者,你可能希望避免出现这样的情况,因为这会让玩家流失。 为了防止作弊,有很多事可以去做,但是最重要最(可能也是唯一有意义的)的事非常简单:不要相信玩家。就做最坏的打算:所有玩家都想要作弊。 PART 3 权威服务器和静默客户端 有一个非常简单的解决方案 - 你将游戏中所有的逻辑都放在你控制的服务器来做,而客户端只是游戏的旁观者,换句话说,你游戏的客户端把输入(按键,命令)发送到服务器,服务器来运行这个游戏,然后你把结果返回给客户端。这就是常说的权威服务器

部署LAMP动静分离

落花浮王杯 提交于 2020-02-26 02:56:56
一、LAMP动静分离 当需要搭建一个高效的web架构时,采用动静分离无疑是最好的选择,这篇博文将写下来LAMP的动静分离部署方式。 所谓LAMP?LAMP架构是目前最成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境。与之并肩的还有LNMP、LTMP等,LAMP说白了就是Linux操作系统上安装Apache网站服务,构建php/perl/Python运行环境来连接mysql数据库,四个组件合起来就简称“LAMP”。 LNMP只不过是用Nginx来搭建了这个httpd服务。 PHP在LAMP环境下共有三种工作模式:CGI 模式、apache 模块、FastCGI (FCGI)模式。CGI 模式下运行 PHP,性能不是很好。FastCGI 的方式和 apache 模块的不同点在于:FastCGI 方式 PHP 是一处独立的进程,所有 PHP 子进程都由 PHP 的一个叫做php-fpm 的组件负责管理;而 apache 模块化方式运行的 PHP,则是 apache 负责调用 PHP 完成工作。PHP 的 FastCGI 方式性能要比 apache模块化方式强很多。 这里将以 FastCGI 方式编译安装 LAMP架构。 FastCGI 的工作机制: 客户端发起请求,请求分为 2 种,一种是静态请求它可以直接由 Apache