池,均衡负载,时间空间思想

0803

今天主要学习下 对象池复用和负载均衡技术以及时间换空间空间换时间思想

对象池复用:

我们知道线程的创建和销毁以及数据库的打开和关闭是十分消耗系统性能的。于是我们就引入了对象池复用技术。当线程完成任务并不会把他销毁,而是把他放入线程池,当另有任务时再从线程池中拿出一个线程完成任务。同理,数据库连接池也是一样,当事务完成时并不会关闭数据库连接池,而是直接把它放入数据库连接池。当另有数据库事务操作池从数据库连接池中再拿出一个数据库连接对象。这样不仅缩短了对象创建的响应时间,而且减轻系统GC压力。无愧为提高系统性能的办法。但这只是相对于重量级对象,要知道new的效率也是不差的。

负载均衡技术:

当系统并发量很大时,一台服务器不足于承担重荷时。这是往往需要多台服务器均衡负载客户端请求。

下面我们来看下apache的均衡负载:

在使用tomcat集群模式时,有黏式session模式和复制式session模式。黏式时所有的session信息被平均分配到到各tomcat服务器,以实现均衡负载。但一旦一个tomcat节点出现问题,它所维护的session信息将消失。且同一用户只能与一个tomcat服务器进行交互,因为其他节点不保存此用户信息。

而复制式模式时,其使得所有session在所有节点保持一致,当一个节点信息发生改变时,这一节点将向其他节点广播,以此来保证所有节点session信息一致。当用户请求被分配到另一节点,被分配节点将有足够的信息来处理请求。但这样做容易引起网络风暴,影响系统效率。

Terracotta作为一款跨jvm,是分布式缓存框架。

Terracotta也可实现tomcat的session共享

由于Terracotta在进行复制时不会进行全复制,而只是传输变化的部分,这相对于apache来说是一大进步。可以有效避免网络风暴。

当然Terracotta也可以共享缓存,或者其他对象。

有关Terracotta体现请到http://terracotta.org/下载

时间换空间 :交换不引用中间变量:

a=a+b;

b=a-b;

a=a-b;

空间换时间:缓存是一大表现

时间: 2024-08-19 08:59:09

池,均衡负载,时间空间思想的相关文章

随想录(关于smp的均衡负载)

[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 对于各design house的soc来说,smp都是一个必备的基本功能.这年头,如果谁说自己家的soc不是smp的,都好像拿不出手一样.好在arm为大家准备了很多的方案,从早期的双核,到现在的四核.八核等等,小小的一颗芯片性能是越来越高了.当然,既然是多核,那么如何做到均衡负载,让每一个core都不闲着,这就是软件工程师的工作了.之前翻了翻linux 2.6.16的内核代码,有了一些基本思路

基于主从复制的Mysql双机热备+amoeba实现读写分离、均衡负载

读写分离指的是客户只能在主服务器上写,只能在从服务器上读,当然了,这也是要看配置,你可以在主服务器配置读的功能,但是在从服务器上只能读不能写,因为从服务器是基于binlog对主服务器的复制,如果在从服务器上写的话,会造成主从不一致的结果.mysql实现读写分离,写的压力虽然没有减少,但是读的压力瞬间就减少了一半. Amoeba的中文意思是阿米巴.变型虫Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy代理服务器.它集中地响应应用的请求,依据用户事先设置的规则

【转载】tomcat+nginx+redis实现均衡负载、session共享(一)

http://www.cnblogs.com/zhrxidian/p/5432886.html 在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) 2.不知道的用户可能会想网站是不是被攻击了,降低了对网站的信任程度,从而导致失去部分潜在客户,这点尤其对金融互联网公司不利. 在查了一些资料后,决定采用Tomcat + Nginx + Redis来实现

Haproxy均衡负载部署和配置文件详解

HAproxy均衡负载部署和配置文件详解 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G的并发. HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. 其支持从4层至7层的网络

高可用技术均衡负载NAT

第一步安装[web服务]和[网络负载平衡] 安装成功后,在网络连接对话框中, 在[网络负载平衡NLB]打勾,不用点安装,直接点确定. 从  管理工具   中选择 网络均衡负载 我们可以把已经有的群集删除掉 新建自己的群集 第一台主机的标识符 必须是 1  第一台主机的ip地址是  主机本身的ip地址 设置群集ip地址 这个ip是属于公共的,所有群集ip必须统一 选择群集参数 , 群集操作模式 选择 多播 修改 端口范围和 协议 还有 模式 设置完成后,第一台主机就成功了,现在的状态是 已聚合 我

MYSQL router 自动均衡负载

配制文件: /etc/mysqlrouter/mysqlrouter.ini [DEFAULT] logging_folder = /var/log/mysql-router plugin_folder = /usr/local/mysql-router/lib/mysqlrouter runtime_folder = /usr/local/mysql-router [logger] # 定义日志等级 level = INFO [routing:balancing] bind_address =

kbmMW均衡负载与容灾(2)(转载红鱼儿)

集中式均衡负载 为实现集中式均衡负载方案,需要实现两个不同的应用服务器,一个是只包含均衡负载组件再无其他内容的应用服务器,可称之为均衡负载应用服务器,下文简称LB Server,另外一个就是包含一个或多个业务逻辑服务(Query Service and Http Service...)及一个均衡负载服务(Load Balancing Service)的应用服务器,可称之为业务逻辑应用服务器,简称APP Server. kbmMW提供了较多的负载均衡组件: TkbmMWRandomLoadBala

kbmMW均衡负载与容灾(1)(转载红鱼儿)

kbmMW为均衡负载与容灾提供了很好的机制,支持多种实现方式,现在看看最简单的一种,客户端控制的容灾和简单的负载均衡. 现在,我们将kbmMWServer部署到不同的服务器,或者在同一服务器部署多份实例,这样,我们会有一个服务的访问列表: 192.168.0.88:9000 192.168.0.88:9001 192.168.0.89.9000 192.168.0.89.9001 服务准备好了,现在,改造一下客户端的Transport,就可以实现容灾和负载均衡.具体来说,就是利用ClientTr

kbmMW均衡负载与容灾(3)(转载红鱼儿)

在kbmMW均衡负载与容灾(1)中,介绍了利用ClientTransport的OnReconnect事件,对联接的应用服务器的地址进行更换,做容灾处理.实际上,作者还给我们提供了另外一种机制,直接在ClientTransport中定义可联接服务器及如何切换.具体来说就是三个属性,如下图: 1.FallbackServers:定义可访问的应用服务器的列表:利用Add,每次加一个AppServer地址联接串,即服务地址. 2.AutoFallback:启用FallbackServers地址:如果定义