对于一些大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。
(1)动静分离。静态资源请求与动态请求分离,项目中需要访问的图片、声音、js/css等静态资源需要有独立的存放位置,便于将来实现静态请求分离时直接剥离出来,比如nginx可以直接配置图片文件直接访问目录,而不需要经过tomcat。这样tomcat就可以专注处理动态请求,操作数据库数据处理之类的。静态请求代理服务器性能比tomcat高很多。
(2)引入缓存。数据库缓存、页面缓存,这东西好用不复杂,搞明白什么地方适用最重要。简单的例子是频繁读取,不修改的地方最适用。也是后续集群做数据共享的一个方式之一,集群环境下,经常会碰到数据共享问题。
(3)如果将来数据量大,单一数据库成为瓶颈时,数据库的读写分离来了。数据库集群,读写分离,分表分区。
要求很高啊,我这有段代码,你看看。package com.test
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.net.Socket
public class TestHTTP {
public void doinit() throws Exception {
Socket s = new Socket("127.0.0.1", 8080)
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s
.getOutputStream()))
bw.write("OPTIONS / HTTP/1.1")
bw.newLine()
bw.write("Host: 127.0.0.1:8080")
bw.newLine()
bw.write("Content-Type: text/html")
bw.newLine()
bw.newLine()
bw.flush()
BufferedReader br = new BufferedReader(new InputStreamReader(s
.getInputStream()))
String str = null
while ((str = br.readLine()) != null) {
System.out.println(str)
}
bw.close()
br.close()
s.close()
}
public static void main(String[] args) throws Exception {
new TestHTTP().doinit()
}
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)