以编程方式检查java中服务器的可访问性

以编程方式检查java中服务器的可访问性,java,database,database-connection,Java,Database,Database Connection,在我的应用程序体系结构中,我有两个数据库服务器:主数据库服务器和辅助数据库服务器(副本服务器) 在我的java代码中,我正在与DB建立连接以获取一些数据,现在我想要的是,我将在代码中给出两个DB服务器的IP地址,并将检查哪个DB服务器是可访问的,并且只与该服务器连接。但我不知道如何实现它,一种方法是尝试telnet,但这不是一个好的选择,因为出于某些原因,我想在应用服务器上禁用telnet 有没有其他最好的方法可以做到这一点?您可以尝试ping两台主机并使用响应的主机。这是一个示例程序

在我的应用程序体系结构中,我有两个数据库服务器:主数据库服务器和辅助数据库服务器(副本服务器)

在我的java代码中,我正在与DB建立连接以获取一些数据,现在我想要的是,我将在代码中给出两个DB服务器的IP地址,并将检查哪个DB服务器是可访问的,并且只与该服务器连接。但我不知道如何实现它,一种方法是尝试telnet,但这不是一个好的选择,因为出于某些原因,我想在应用服务器上禁用telnet


有没有其他最好的方法可以做到这一点?

您可以尝试ping两台主机并使用响应的主机。这是一个示例程序

        InetAddress address = InetAddress.getByName("172.16.2.0");

        // Try to reach the specified address within the timeout
        // periode. If during this periode the address cannot be
        // reach then the method returns false.
        boolean reachable = address.isReachable(10000);

        System.out.println("Is host reachable? " + reachable);

有关更详细的程序,请参见Java中的这个

您可以尝试ping两台主机并使用响应的主机。这是一个示例程序

        InetAddress address = InetAddress.getByName("172.16.2.0");

        // Try to reach the specified address within the timeout
        // periode. If during this periode the address cannot be
        // reach then the method returns false.
        boolean reachable = address.isReachable(10000);

        System.out.println("Is host reachable? " + reachable);

有关更详细的程序,请参见Java中的这个

就我个人而言,我只会尝试连接(使用标准数据库类),并在连接失败时处理异常


即使您最初确认连接,也无法阻止在该测试和实际尝试使用数据库之间发生网络问题。

就我个人而言,我只会尝试连接(使用标准数据库类),并在连接失败时处理异常


即使您最初确认连接,没有任何东西可以防止在该测试和您实际尝试使用数据库之间出现网络问题。

我需要一个特定的端口号,因为可能服务器可以访问,但数据库没有在指定的端口上运行。@pyus13您不能使用
isReachable
ping特定端口。为此,您需要测试与套接字的连接。请参阅。我需要一个特定的端口号,因为可能服务器是可访问的,但数据库没有在指定的端口上运行。@pyus13您不能使用
isReachable
ping特定端口。为此,您需要测试与套接字的连接。提到