dubbo learning - day 2

来源:互联网 发布:java防止xss攻击代码 编辑:程序博客网 时间:2024/05/16 12:44

dubbo learning day2

  1. for what purpose?
  2. how to achieve?
  3. simple implementation.

业务场景描述
假设我们需要构建一个sayHello的服务,这个服务只需要简单的输出“hello!”。
按照常规的设计思路,我们会为这个服务设计一个接口HelloService ,和一个实现类HelloServiceImpl。
eg.

interface HelloService : sayHello()
class HelloServiceImpl : sayHello(){ print “hello!”}

  1. 普通服务调用过程

    HelloService helloService = new HelloServiceImpl();
    helloService.sayHello();

  2. RMI方式服务调用过程
    2.1 服务端实现

package example.hello;  import java.rmi.registry.Registry;import java.rmi.registry.LocateRegistry;import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;        public class Server implements HelloService {         public Server() {}    public String sayHello() {        return "Hello!";    }    public static void main(String args[]) {         try {            Server obj = new Server();            Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);            // Bind the remote object's stub in the registry            Registry registry = LocateRegistry.getRegistry();            registry.bind("Hello", stub);            System.err.println("Server ready");        } catch (Exception e) {            System.err.println("Server exception: " + e.toString());            e.printStackTrace();        }    }}

2.2 客户端实现

package example.hello;import java.rmi.registry.LocateRegistry;import java.rmi.registry.Registry;public class Client {    private Client() {}    public static void main(String[] args) {        String host = (args.length < 1) ? null : args[0];        try {            Registry registry = LocateRegistry.getRegistry(host);            Hello stub = (Hello) registry.lookup("Hello");            String response = stub.sayHello();            System.out.println("response: " + response);        } catch (Exception e) {            System.err.println("Client exception: " + e.toString());            e.printStackTrace();        }    }}

参考资料
1. RMI. http://docs.oracle.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html

0 0
原创粉丝点击