`
文章列表
目前比较常用的负载均衡技术主要有: 1. 基于DNS的负载均衡 通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。 2. 反向代理负载均衡 (如Apache+JK2+Tomcat这种组合) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同, ...
1. 大量用户访问     a) 分布范围广泛的话,可采用CDN加速,使用户能够访问最近的服务站点,减少网络流量和传输距离,时间。    b)配置web服务器集群,负载均衡 2. 大数据量的读取存储 数据库垂直分库:   a)将业务分类,相同业务部分的表部署在一个数据库服务器上。   b)特定表的数据量较大,可对表进行表分区。这也属于垂直分库的范围。 数据库水平分库sharding:        a) 多个数据库服务器部署相同的环境(即包含所有的表结构),但是每个数据库保存的数据时不同的,一般依据用户id取模,或者区域,或者自增id等,或者一致性hash算法等,将不同用户的数据保存 ...
Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。Java也存在内存泄露。 Java的内存管理就是对象的分配和释放问题。在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。另外,对象的释放是由GC决定和执行的。在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的。GC为了能够正确释放对象,GC必须监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等,GC都需要进行监控。 释放对象的根本原则就是该对象不再被引 ...
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取(Read)数据的速度和并发量。目前国内的大型互联网应用中,大量的采用了这样的数据切 ...

FAQ

1. 内存泄露 及 对策 2. 高访问量并发解决方案 3. 数据库优化 4. 大数据量copy? //第一步,创建相同结构的表 create table newtable as select * from oldtable where 1=2; //复制数据 insert into newtable select * from oldtable ; 这样应该就不会有任何问题了. 5. IOC 6. 新浪微博解决方案 7. jdbc优化 8.hibernate的效率问题 9.OLTP  O?TP 10.分布式事务,java只有接口,没有实现 11.长连接 12.hibernate优化,配置参数 1 ...
01.import java.util.concurrent.ExecutorService; 02.import java.util.concurrent.Executors; 03.import java.util.concurrent.Future; 04.import java.util.concurrent.locks.Lock; 05.import java.util.concurrent.locks.ReadWriteLock; 06.import java.util.concurrent.locks.ReentrantLock; 07.im ...
前言 其实和java类似,注意类方法,实例方法,类变量,实例变量的创建方法。 区别就是js可以动态增加删除方法. 对比如下: java                                        private变量:private string str=""; ...
一: 对于jsp,本质上是一个servlet,当从后台转向jsp时,实际是dispatcher.forword(request,response),所以,在jsp中,实际还是在进行servlet的处理,jsp也持有request和response的引用。所以在jsp中,可以有下边的代码: 1.取得基础路径 <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request ...
新搭建了一个环境,方便测试相关代码。 中间出现了几个小问题,折腾了半天,还好搞定。 1. 因为controller继承了multiactioncontroller,想配置BeanNameUrlHandlerMapping来替换默认的internal...Mapping,但是只是配置了bean定义,没有组装到自定义的bean模版中去,导致一直没有生效。 <bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNa ...
 Eclipse的快捷键组合功能 个人常用:ctr+shift+r/t/g          ctr+o          F3          alt+->/<-          refactor 中的抽出方法   使用Eclipse的快捷键组合功能,让你看起来像是在打电玩。特别是让人想起《真人快打》(Mortal Combat)的感觉。要成为《真人快打》的高手,你必须记住大量的按键顺序。比如,要使出Sub-Zero Skeleton Rip,你必须依次按下和X键。这里的控制杆就是Ctrl,Alt,Shift,字母键,数字键和功能键的组合。   让我们按照使用频率 ...
...
本文向您介绍Java常量定义,在Java语言中,主要是利用final关键字来进行Java常量定义。在定义final的数据不论是常量、对象引用还是数组,在主函数中都不可以改变。 在任何开发语言中,都需要定义常量。在Java开发语言平台中 ...
在interface里面的变量默认都是public static final 的。所以可以直接省略修饰符: String param="ssm";//变量需要初始化 为什么接口要规定成员变量必须是public static final的呢? 答: 首先接口是一种高度抽象的"模版& ...
StringBuilder是非线程安全的,StringBuffer是线程安全的。 在java 源代码中, StringBuilder的方法示例:     public StringBuilder append(String str) { super.append(str);         return this;     } StringBuffer的方法示例:     public synchronized StringBuffer append(String str) { super.append(str);         return this;     } //以下转载 ...
“String倒底奇特在哪里?”关于这个问题本来想放过它的,但听说java面试经常考它,而且博友又给我提了不少珍贵的意见,所以准备在尽点力。 废话到此,下面正式开始 1.请看下面这幅图片:          是否觉得奇怪 ...
Global site tag (gtag.js) - Google Analytics