##服务端
dubbo框架是面向接口的rpc调用框架,需要提供接口EchoService来作为服务暴露使用
1.接口定义
public interface EchoService{
String echo(String message);
}
public class EchoServiceImpl implements EchoService{
public String echo(String message){
String now = new SimpleDateFormat("HH:mm:ss").
format(new Date());
System.out.println(RpcContext.getContext().gerRemoteAddress());
return message;
}
}
//关键配置
<!-- service provider name-->
<dubbo:application name="echo-provider">
<!--register address-->
<dubbo:registry address="zookeeper://127.0.0.1">
<!--protocol for rpc-->
<dubbo:protocol name="dubbo" port="20880">
<!--bean container-->
<bean id="echoService" class="com.alibaba.dubbo.samples.echo.impl.EchoServiceImpl"/>
<--interface for provide service-->
<dubbo:service interface="com.alibaba.dubbo.samples.echo.api.EchoService" ref="echoService">
//启动dubbo服务
public class EchoProvider{
public static void main(String[] args)throws Exception{
ClassPathXmlApplicationContext context =
ClassPathXmlApplicationContext(new String[]{
"spring/echo-provider.xml"});
context.start();
System.in.read();
}
}
客户端
//主要配置
<!--service consumer name-->
<dubbo:application name="echo-consumer">
<!--register center-->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<service for consumer>
<dubbo:reference id="echoService" check="false"
interface="com.alibaba.dubbo.samples.echo.api.EchoService">
//启动
public class EchoConsumer{
publci static void main(String args[]){
cLasspathXmlApplicationContext context =
new ClassPathXmlApplicationContext("new String[]{spring/echo-consumer.xml}");
context.start();
EchoService.echoService = (EchoService)context.getBean("echoService");
String status = echoService.echo("hello world!");
System.out.println("echo result:"+status);
}
}