rmi高可用的简单实现-zookeeper

来源:互联网 发布:mysql linux启动 编辑:程序博客网 时间:2024/06/05 14:22

Client端

package demo.zookeeper.remoting.client;package demo.zookeeper.remoting.client;import demo.zookeeper.remoting.common.HelloService;import java.rmi.Naming;public class RmiClient {    public static void main(String[] args) throws Exception {        String url = "rmi://localhost:1098/demo.zookeeper.remoting.server.HelloServiceImpl";        HelloService helloService = (HelloService) Naming.lookup(url);        String result = helloService.sayHello("abc");        System.out.println(result);    }}

Server端

package demo.zookeeper.remoting.server;import java.rmi.Naming;import java.rmi.registry.LocateRegistry;public class RmiServer {    public static void main(String[] args) throws Exception {        int port = 1098;        String url = "rmi://localhost:1098/demo.zookeeper.remoting.server.HelloServiceImpl";        LocateRegistry.createRegistry(port);        Naming.rebind(url, new HelloServiceImpl());    }}

COMMON类

package demo.zookeeper.remoting.common;import java.rmi.Remote;import java.rmi.RemoteException;public interface HelloService extends Remote {    String sayHello(String name) throws RemoteException;}
package demo.zookeeper.remoting.common;public interface Constant {    String ZK_CONNECTION_STRING = "node11,node12,node13:2181";    int ZK_SESSION_TIMEOUT = 5000;    String ZK_REGISTRY_PATH = "/registry";    String ZK_PROVIDER_PATH = ZK_REGISTRY_PATH + "/provider";}
package demo.zookeeper.remoting.server;import demo.zookeeper.remoting.common.HelloService;import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;public class HelloServiceImpl extends UnicastRemoteObject implements HelloService {    /**     *      */    private static final long serialVersionUID = 1L;    protected HelloServiceImpl() throws RemoteException {    }    @Override    public String sayHello(String name) throws RemoteException {        return String.format("Hello %s", name);    }}
0 0