java 写一个dubbo客户端和服务端调用的示例
时间: 2023-06-14 15:06:26 浏览: 321
好的,下面是一个简单的 Dubbo 客户端和服务端调用示例:
服务端:
1. 定义接口
```java
public interface HelloService {
String sayHello(String name);
}
```
2. 实现接口
```java
public class HelloServiceImpl implements HelloService {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
}
```
3. 配置服务
在 resources 目录下创建 dubbo 目录,并在其中新建一个名为 provider.xml 的文件,配置如下:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<dubbo:service interface="com.example.demo.HelloService"
ref="helloService"
timeout="5000"
version="1.0.0">
</dubbo:service>
<bean id="helloService" class="com.example.demo.HelloServiceImpl"/>
```
4. 启动服务
```java
public class Provider {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"dubbo/provider.xml"});
context.start();
System.in.read(); // 按任意键退出
}
}
```
客户端:
1. 配置服务
在 resources 目录下创建 dubbo 目录,并在其中新建一个名为 consumer.xml 的文件,配置如下:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<dubbo:application name="consumer"/>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<dubbo:reference id="helloService" interface="com.example.demo.HelloService" version="1.0.0"/>
```
2. 调用服务
```java
public class Consumer {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"dubbo/consumer.xml"});
context.start();
HelloService helloService = (HelloService) context.getBean("helloService");
String result = helloService.sayHello("Dubbo");
System.out.println(result);
}
}
```
使用 ZooKeeper 作为注册中心,服务端和客户端需要先启动 ZooKeeper,然后再启动服务端和客户端。
以上是一个简单的 Dubbo 客户端和服务端调用示例,希望能对你有所帮助。
阅读全文