Registry可以用ZooKeeper实现
在Monitor里面安装Dubbo-monitor
在Provider端引入dubbo的依赖,使用spring配置注册中心和监控中心,并注册服务
<?xml version="1.0" encoding="UTF-8"?>
<beans ......>
<!-- Application name -->
<dubbo:application name="hello-world-app" />
<!-- registry address, used for service to register itself -->
<dubbo:registry address="multicast://224.5.6.7:1234" />
<!-- expose this service through dubbo protocol, through port 2 0 8 8 0 -->
<dubbo:protocol name="dubbo" port="2 0 8 8 0" />
<!-- which service interface do we expose? -->
<dubbo:service interface="com.alibaba.hello.api.HelloService" ref="helloService" />
<!-- designate implementation -->
<bean id="helloService" class="com.alibaba.hello.impl.HelloServiceImpl" />
</beans>
然后用一个包含main函数的类启动这个配置文件
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Provider {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"provider.xml"}); //启动成功,监听端口为2 0 8 8 0
System.in.read(); // 按任意键退出
}
}
在Consumer端引入dubbo的依赖,使用spring配置注册中心和监控中心
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=......>
<!-- consumer application name -->
<dubbo:application name="consumer-of-helloworld-app" />
<!-- registry address, used for consumer to discover services -->
<dubbo:registry address="multicast://224.5.6.7:1234" />
<!-- which service to consume? -->
<dubbo:reference id="helloService" interface="com.alibaba.hello.api.HelloService" />
</beans>
最后在客户端消费服务
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.alibaba.hello.api.HelloService;
public class Consumer {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"consumer.xml"});
HelloService helloService = (HelloService)context.getBean("helloService"); // get service invocation proxy
String hello = helloService.sayHello("world"); // do invoke!
System.out.println( hello ); // cool, how are you~
}
}