- 浏览: 457080 次
- 性别:
- 来自: 无锡
最新评论
-
ssbg2:
谢谢博主,不过这个datagrip的SQL格式化功能不是那么太 ...
DataGrip使用进阶-代码提示及格式化(二) -
ga-k8n-sli:
哥们,问一下,datagrip 双击包名打开 oracle 的 ...
DataGrip使用入门-安装及数据源管理(一) -
华子大叔:
麒麟俊,牛逼!
DataGrip使用入门-安装及数据源管理(一) -
wyz_jiang:
写的真是极好的,排版在清晰一点就好了!
(一)jvm内存模型概览 -
ywu:
Tyrion 写道activemq的官方文档给出了这个配置的说 ...
ActiveMQ Failover broker url顺序
文章列表
类的加载:
将类的.class文件中的二进制数据读入到内存,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用于封装类在方法区内的数据结构;JVM将类的加载过程分为三个步骤:装载、链接、初始化
1.装载:
查找并加载类的二进制数据到内存,加载class文件方式有以下几种:
从本地文件系统加载,通常是我们自己编写的类
通过网络下载.class文件
从zip、jar等归档文件中加载,通常是引用的第三方的jar文件
从专有数据库中提取.class文件
将java源文件动态编译为.class文件
JVM通过类的全限定名及类加载器完成类的加载 ...
在JVM规范中,内存空间主要划分为堆区、栈区、方法区、本地方法栈以及PC寄存器,如下图所示
方法区:
方法区存放的是Class的信息,即类的元数据,如类的名称、修饰符、静态变量、常量、Field、Method等,当在程序中使用反射获取类的信息,如clazz.getMethod()时,就是从方法区来获取这些信息的,方法区是全局共享的,所以一个类对应的Class对象只有一个,哪怕这个类创建了n个实例对象。
堆:
堆区存放对象实例及数组值,程序中通过new关键字创建的对象的内存都在此分配。堆是JVM中所有线程共享的。
PC寄存器:
PC寄存器里保存当前正在执行的JVM指 ...
首先,在192.168.137.211服务器上安装memcached服务。下载memcache安装包,memcached-1.4.22.tar.gz,安装也简单,就是解压缩后编译,make在make install
启动memcache服务
Apache配置不变,主要是配置tomcat的context.xml
修改tomcat的conf/context.xml,加入如下配置:
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-IN ...
默认tomcat的session是存储在内存中的,当tomcat关闭时,session会存储到文件系统中,这里使用NFS共享文件系统,将不同tomcat服务器上的指定目录共享,然后将tomcat的session持久化到指定目录,达到同步的效果。
NFS的安装及配置这里就不详述了,网上有很多教程,可以查看这篇博客
http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html
需要注意的是,在CentOS6以上,portmap已经改名了,可以安装portreserve,如果使用rpm安装,启动命令为service rpcbind ...
打开tomcat的配置文件conf/server.xml,在主机Host元素中加入如下配置:
<!-- 集群配置 -->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown=& ...
环境同使用mod_jk配置负载均衡相同,不同的是,使用mod_proxy相关模块及指令替换mod_jk。注意,mod_jk跟mod_proxy不能同时使用,去掉或注释之前使用mod_jk方式配置的负载均衡。
修改Apache的httpd.conf配置文件
1:加载必要的模块,使用ajp协议与后端tomcat通信
2:以balancer://开头的Proxy指令会创建一个虚拟的worker,来管理真实的tomcat worker实例
3:BalancerMember配置真实的tomcat worker实例
4:loadfactor指定负载因子,取值范围为0-100,取值越 ...
配置负载均衡至少需要两台tomcat,按照同样的方式,在虚拟机中安装一台centos Linux服务器,名称为centOS-2,其分配的ip地址为 192.168.137.243,安装好tomcat,因此,目前的环境看起来是这样的
服务器
软件
ip
CentOS
apache
192.168.137.16
Apache从2.2版本开始支持mod_proxy模块,默认情况下该模块是没有安装的,我们先安装该模块
进入Apache存放模块的源码目录
编译模块
至此,使用mod_proxy方式需要的模块就都安装好了
查看下Apache的httpd.conf配置文件,安装的模块自动加载了
使用mod_proxy模块提供的指令分配请求
第一行表示关闭正向代理
第二行表示从原始的请求中传递请求的主机信息到ajp连接
第三、四行指定请求分发规则,第三行表示以/shade/static/开头的请求不转发,第四行表示以/shade/开头的请求转发到192 ...
准备一个测试用的servlet小程序(见附件)
一个servlet,访问这个servlet会跳转到首页index.jsp,static中存放静态资源,把这个工程打成war包,放入到tomcat的webapps目录(ip为192.168.137.211),启动tomcat,访问一下
我们的页面还是很漂亮的
简述一下tomcat的结构
这个架构跟tomcat conf/server.xml中的配置大体上是一致的
默认的,我们在通过8080端口访问tomcat的时候,使用的是tomcat的http连接器,此连接器能提供静态和动态资源服务,tomcat ...
六、安装Apache
用虚拟机重新安装一台Linux服务器,来安装Apache。
同样,用WinSCP将Apache安装包 httpd-2.2.31.tar.gz 上传到服务器 /usr/local 目录下
进入 /usr/local 目录,解压缩安装包
安装
发现安装失败了,这是因为编译 ...
四、jdk安装
安装jdk,首先要把安装包放入到Linux服务器中。由于我们在启动Linux时,网络适配器选择的是 仅主机模式
也就是说安装好的Linux只能访问宿主主机,并不能访问外网,所以无法使用wget、yum(光盘源除外)等命令下载或安装jdk。这里,由于Linux安装在虚拟机中,而虚拟机能直接访问(非远程访问),可以使用WinISO等软件制作一个镜像,把jdk的安装包打进去,使用Linux的mount命令将镜像挂载后操作。但还是稍显麻烦,使用另一种方式,用ftp工具WinSCP,将jdk安装包上传到Linux服务器。
启动服务器,进入到/usr/local目录,创建一 ...
本篇介绍 Apache+Tomcat实现负载均衡及集群 的环境搭建
一、软件准备
虚拟机:VMware® Workstation 11.1.0 build-2496824
Linux:一台rhel-server-6.5-x86_64、两台CentOS-6.3-i386
Apache:httpd-2.2.31.tar.gz
jdk:jdk-6u45-linux-i586
Tomcat:apache-tomcat-6.0.43.tar.gz
二、VMware安装
VMware安装比较简单,双击后直接下一步,直到完成,这里就不详细介绍了
三、Linux安装
...
Tomcat不多说了,是比较流行的web、app服务器。之所以说是web、app服务器,是因为Tomcat即能提供web服务器的功能,又能提供app服务器(应用服务器的功能)。web服务器和app服务器的主要区别在于web服务器主要提供静态资源(html、css ...
本系列博客是在日常开发中遇到的各类异常、问题的分析总结。
今天在测试功能的时候,控制台抛出了java.io.NotSerializableException: java.util.RandomAccessSubList异常,具体的堆栈信息如下:java.io.NotSerializableException: java.util.RandomAccessSubListat java.io.ObjectOutputStream.writeObject0(Unknown Source)at java.io.ObjectOutputStream.writeObject(Unknown So ...
说明:
本系列博客是本人在工作中遇到的一些问题的整理,其中有些资料来源网络博客,有些信息来自出版的书籍,掺杂一些个人的猜想及验证,总结,主要目的是方便知识的查看,并非纯原创。本系列博客会不断更新。原创不容易,支持原创。对于参考的一些其他博客,会尽量把博客地址列在博客的后面,以方便知识的查看。
本篇博客可以看做是《Effective Java中文版