Dubbo入门小案例
程序员文章站
2022-06-02 15:19:27
...
创建两个maven项目,一个服务提供者,一个服务消费者。
提供者提供服务
消费者调用服务
整体结构如下,我们来一步一步操作。
步骤一:建立maven项目服务提供方provider,在pom.xml中导入dubbo依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.8</version>
</dependency>
步骤二:并在其中建立接口ServiceDemo,写入需要服务的方法。
package provider;
public interface ServiceDemo {
String sayHello(String name);
}
以及接口的实现类
package provider;
public class ServiceDemoImp implements ServiceDemo {
public String sayHello(String name) {
return "Hello :"+name;
}
}
步骤三:在资源文件夹下建立dubbo-provider.xml配置文件。(名字可自取,路径可自己加入子文件夹)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="demo-provider"/>
<!--Multicast注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现组播地址段: 224.0.0.0 - 239.255.255.255 -->
<dubbo:registry address="multicast://224.5.6.7:1234"/>
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880"/>
<!-- 指定发布的 服务接口 同时引用接口的实现类-->
<dubbo:service interface="provider.ServiceDemo" ref="serviceDemo"/>
<!-- 接口实现类的配置 -->
<bean id="serviceDemo" class="provider.ServiceDemoImp"/>
</beans>
步骤四:编写读取配置文件发布服务的启动类
package provider;
import java.io.IOException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Provider {
public static void main(String[] args)throws IOException {
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[] {"META/spring/dubbo-provider.xml"});
context.start();
System.in.read();
}
}
步骤六:建立服务消费方consumer,导入dubbo的依赖,以及服务提供方的依赖。
<dependencies>
<!-- dubbo依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.8</version>
</dependency>
<!-- 服务提供方 provider 依赖-->
<dependency>
<groupId>dubbo</groupId>
<artifactId>provider</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
步骤七:编写配置文件dubbo-consumer.xml (同上,名字可自拟)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="demo-consumer"/>
<dubbo:registry address="multicast://224.5.6.7:1234"/>
<dubbo:reference id="serviceDemo" interface="provider.ServiceDemo"/>
</beans>
步骤八:编写启动类,进行读取配置文件信息,并调用服务。
package consumer;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import provider.ServiceDemo;
public class Consumer {
public static void main(String[] args) {
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"META/spring/dubbo-consumer.xml"});
context.start();
ServiceDemo service=(ServiceDemo) context.getBean("serviceDemo");
String hello=service.sayHello("YIHAHA");
System.out.println(hello);
}
}
最后进行测试,注意一定要先开启发服务提供方,然后再调用消费方进行服务的调用输出。
下一篇: Mysql自动备份与还原方法_MySQL