RMI之所以使用的范围受限制主要有两方面原因,其一:必须要是java,平台的异构性受到限制;其二:穿越防火墙不方便。这里主要谈谈RMI如何通过固定分配端口来穿越防火墙。 RMI穿越防火墙不方便主要是因为除了RMI服务注册的端口(默认1099)外,与RMI的通讯还需要另外的端口来传送数据,而另外的端口是随机分配的,所以要想RMI的客户能通过防火墙来与RMI服务通讯,则需要能让随机分配的端口固定下来,具体做法如下:
1、增加一个文件SMRMISocket.java
import java.rmi.server.*;
import java.io.*;
import java.net.*;
public class SMRMISocket extends RMISocketFactory {
public Socket createSocket(String host, int port) throws IOException{
return new Socket(host,port);
}
public ServerSocket createServerSocket(int port) throws IOException {
if (port == 0)
port = 10990; //不指定就随机分配了
return new ServerSocket(port);
}
}
} 2、在实例化UnicastRemoteObject的子类前加入一下代码:
try {
RMISocketFactory.setSocketFactory(new SMRMISocket());
} catch (Exception ex) {
}
这样的话RMI分配的端口就被固定了,防火墙只需要打开1099和10990端口即可。
分享到:
相关推荐
7. **防火墙设置**:由于RMI涉及到多个端口,所以如果在有防火墙的环境中,需要配置相应的端口开放策略,通常包括Registry默认的1099端口以及动态分配的端口范围。 【标签】:“源码”和“工具”表明这个话题可能...
6. **并发与并行计算**:在分布式计算中,通常会将大矩阵拆分成小块,分配给多个远程对象处理。每个远程对象负责处理一部分矩阵相乘工作,最后客户端收集所有结果并整合成最终的矩阵。 7. **异常处理**:由于网络...
- 在修改端口配置前,请务必确保新分配的端口未被其他服务占用。 - 配置文件修改后,一定要重启服务以使新配置生效。 - 如果使用防火墙,请确保新端口已经被正确开放。 - 对于生产环境,建议在非高峰时段进行此类...
5. **负载均衡器**:为了更高效和稳定,可以引入负载均衡器,它负责管理服务列表,执行健康检查和负载分配。 6. **服务监控**:使用日志和监控工具记录服务状态,以便在出现问题时快速定位和解决。 在实际应用中,...
* ICMP(不存在固定端口):用于网络诊断和错误报告的协议 * IMAP(143):用于Internet邮件访问的协议 * IRC(6667):用于Internet Relay Chat的协议 * ISAKMP(500):用于安全会话建立的协议 * JABBER(5222):...
VM参数,即Java虚拟机参数,用于设置JVM的行为,包括内存分配、垃圾回收策略、性能监控等。这些参数以-D或-X开头,用于定制JVM的行为和环境变量。 当运行JAR程序时,我们可以通过以下命令行方式添加VM参数: ```...
连接成功后,JVisualVM会显示与Tomcat相关的各种监控信息,包括CPU使用率、内存分配、线程状态、类加载情况等。你可以实时查看这些数据,帮助识别和解决性能瓶颈。 总的来说,通过开启Tomcat的JMX功能并利用...
- **端口号**:每个JBoss实例都需要分配不同的端口号,包括HTTP端口、管理控制台端口、JNDI端口等。 - **配置文件**:JBoss通过一系列配置文件来定义其行为,包括服务器的启动参数、监听端口等信息。 - **部署目录**...
这里`-XX:PermSize`表示初始化时分配的PermGen空间大小,而`-XX:MaxPermSize`则指定了最大可使用的PermGen空间。 #### 总结与建议 通过上述步骤,我们可以有效地利用jvisualvm工具监控并解决Java应用程序中的内存...
11. **远程调试配置**: 要实现远程调试,你需要在`hadoop-env.sh`中添加`export HADOOP_OPTS="$HADOOP_OPTS -Djava.rmi.server.hostname=YOUR_IP"`,替换YOUR_IP为你的公网IP。此外,确保Hadoop的JVM允许远程调试,...
caucho公司的resin服务器号称是最快的服务器,在java领域有一定的知名度。Hessian做为resin的组成部分,其设计也非常精简高效,实际运行情况也证明了这一点。...而且,RMI需要开防火墙端口,Hessian不用。
这需要开启RMI服务,并配置相应的安全策略和端口。 对于远程监控JBoss服务,需要修改JDK的JMX配置文件,打开JMX远程访问,并在JBoss启动脚本中指定相应的JMX端口和认证参数。例如,设置`-Dcom.sun.management....
内存监控可以显示内存分配、使用和回收的情况;IO监控关注的是数据的输入输出操作;堆栈信息则能够提供方法调用的堆栈追踪,帮助定位性能瓶颈和程序中的死锁情况。 标签“java jmc”指明了这个工具是与Java语言紧密...
- **安全性**:由于涉及到网络通信,应确保RMI端口的安全,防止未授权访问。 - **日志和异常处理**:确保从节点上的错误和异常信息能够被记录和分析,以便于定位问题。 总之,JMeter的分布式压测功能提供了一种强大...
3. RMI(Remote Method Invocation):配置RMI服务,允许远程调用对象方法,实现分布式计算。 4. JTA(Java Transaction API):配置事务管理,确保事务的一致性和原子性。 通过深入理解和实践这些知识点,可以有效...
- 同样,调整其他服务端口,如FTP和RMI,以保持网络服务的清晰性 ### 6. 设置Solr分离部署 - 安装单独的Solr服务器,解压并配置Solr的Alfresco核心 - 更新Alfresco的`alfresco-global.properties`文件,指定新的...
4. 配置网络协议和端口,确保与其他服务无冲突,如HTTP默认为7001,RMI默认为1099。 5. 创建域,这是WebLogic管理应用程序和服务的基本单元。每个域包含一个或多个服务器实例。 6. 设置管理用户名和密码,这些凭据...
3. **配置文件(config)**:可能包含TCP和多播的相关配置,如端口设置、多播组地址等。 4. **测试目录(test)**:包含单元测试和集成测试用例,以验证不同组件的功能和相互协作。 5. **文档(docs)**:项目文档,...