欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Dubbo入门小案例

程序员文章站 2022-06-02 15:19:27
...

创建两个maven项目,一个服务提供者,一个服务消费者。

提供者提供服务

消费者调用服务  

整体结构如下,我们来一步一步操作。

Dubbo入门小案例Dubbo入门小案例


步骤一:建立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配置文件。(名字可自取,路径可自己加入子文件夹)

Dubbo入门小案例


<?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);
	}
}

最后进行测试,注意一定要先开启发服务提供方,然后再调用消费方进行服务的调用输出。

Dubbo入门小案例