jvm内存分为三个区域,
方法区 存类的信息,
堆 用来做存储,
栈 用来做运行,所以main方法从栈开始执行,创建一个栈帧,
new 一个类的时候栈会参考方法区中类的属性在堆里面创建类,
方法区的东西也称为类模板
jvm里面,每个线程都会有一个栈空间,所以当请求(线程)过多时,内存就会不足,没有多余的内存分配栈空间,就会出现栈内存溢出。
当添加机器做相同的服务时,需要添加负载均衡器,来调度请求。
创建连接资源消耗会很大,所以创建数据库链接的消耗很大,使用完要释放,同时最好使用连接池,jvm进程之间的通信也会消耗很大资源,比内存内的交互慢至少1000倍。
RMI:remote method invoke ,远程方法调用,遵循RPC协议。用来实现jvm之间的通信。
EJB 实现了对RMI的封装,
spring 实现了更好用的rmi
从rmi到ejb到spring
使用缓存服务器(redis)共享数据。