spring boot dubbo 配置

来源:互联网 发布:网络翻墙英文 编辑:程序博客网 时间:2024/06/07 06:03

一、建3个空工程:

1、建maven工程demo-dubbo-api . 这个是接口工程;

2、建spring boot 的jar 工程 demo-dubbo-provider.   这个是dubbo服务工程;

3、建spring boot 的jar  工程 demo-dubbo-client.     这个是调用dubbo服务的测试工程;


二、

1、在接口工程建:

public interface SayHelloI {
    public String say(String name);
}

2、在服务工程:

  a、配置pom.xml,添加如下

<!-- dubbo 引用 -->
 
<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
<version>2.5.8</version>
</dependency>
<!--注册中心引用-->

<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.11</version>
</dependency>

<!--注册中心操作客户端,可以去掉-->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
 
 b、新建文件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="${dubbo.application.name}" />
<!-- 注册中心暴露服务地址 -->
   <dubbo:registry protocol="${dubbo.registry.protocol}" address="${dubbo.registry.address}" />
<!-- 暴露服务 -->
<dubbo:protocol name="${dubbo.protocol.name}" port="${dubbo.protocol.port}" />
<dubbo:service interface="com.zivy009.demo3.service.SayHelloI"
ref="sayHelloImp" retries="0" timeout="6000" />
</beans>

c、建文件dubbo.properties

#应用名称
dubbo.application.name=example-provider
#注册中心类型
dubbo.registry.protocol=zookeeper
#注册中心地址
dubbo.registry.address=ip:port,ip:port
#暴露服务方式
dubbo.protocol.name=dubbo
#暴露服务端口
dubbo.protocol.port=20880

d、建配置文件

/**
* @author zivy
* @date 2017年12月19日
* @describe
*/
@Configuration
@PropertySource("classpath:dubbo/dubbo.properties")
@ImportResource({"classpath:dubbo/*.xml"})
public class DubboConfig {
}


e、 实现接口

/**
* @author zivy
* @date 2017年12月19日
* @describe
*/
@org.springframework.stereotype.Service
public class SayHelloImp implements SayHelloI {
    @Override
    public String say(String name) {
        System.out.println(name+" say hello .                         "+ new Date());
        return "ok";
    }
}
 


3、在测试端

a、pom.xml  和服务端一样;

b、配置 文件,建dubbo-consume.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="${dubbo.application.name}" />
<!-- 注册中心暴露服务地址 -->
   <dubbo:registry protocol="${dubbo.registry.protocol}" address="${dubbo.registry.address}" />
<dubbo:reference id="sayHelloI" interface="com.zivy009.demo3.service.SayHelloI" />
</beans>


配置文件dubbo.properties

#应用名称
dubbo.application.name=example-consume
#注册中心类型
dubbo.registry.protocol=zookeeper
#注册中心地址
dubbo.registry.address=ip:port


springboot 的入口:

    public static void main(String[] args) {
        ConfigurableApplicationContext configurableApplicationContext=  SpringApplication.run(DemoDubboClientApplication.class, args);
        
        SayHelloI sayHelloI= (SayHelloI)configurableApplicationContext.getBean("sayHelloI");
       }



原创粉丝点击