美文网首页
SpringBoot 2.0.3 整合dubbo

SpringBoot 2.0.3 整合dubbo

作者: 蜡笔广志 | 来源:发表于2019-03-27 15:23 被阅读0次

首先是消费端
pom.xml 引入依赖包

<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.6</version>
</dependency>   
 <dependency>
 <groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>   

dubbo配置文件的设置 src/main/resources/dubbo.properties

# dubbo config
#暴露服务端口
dubbo.protocol.port=20880
#提供方超时时间
dubbo.provider.timeout=10000
#提供方版本
dubbo.provider.version=1.0
#表示该服务使用独的五条长链接
dubbo.provider.connections=5
# 固定大小线程池,启动时建立线程,不关闭,一直持有。(缺省)
dubbo.protocol.threadpool=fixed
# 线程数量
dubbo.protocol.threads=500
#配置重试次数,最好只用于读的重试,写操作可能会引起多次写入  默认retries="0"
dubbo.provider.retries=0
# dubbo缓存文件
dubbo.cache=/data/dubbo/cache/dubbo-provider
# zookeeper config
zookeeper.connect=10.241.95.105:2181,10.241.95.106:2181,10.241.95.107:2181

src\main\resources\dubbo\dubbo.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="${spring.application.name}"  />

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="${zookeeper.connect}"  file="${dubbo.cache}"/>

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="${dubbo.protocol.port}"  threadpool="${dubbo.protocol.threadpool}"  threads="${dubbo.protocol.threads}"/>

    <!-- 提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。-->
    <dubbo:provider connections="${dubbo.provider.connections}" timeout="${dubbo.provider.timeout}" retries="${dubbo.provider.retries}" version="${dubbo.provider.version}" />

    <!-- 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。-->
    <dubbo:consumer version="${dubbo.provider.version}" />

    <!-- 监控中心配置,用于配置连接监控中心相关信息,可选。-->
    <dubbo:monitor protocol="registry"/>

</beans>

\src\main\resources\dubbo\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:service interface="com.kafka.KafkaBase.service.DemoService" ref="demoService"/>

</beans>

实际代码

package com.kafka.KafkaBase.service;


public interface DemoService {
    
    String sayHello(String name);
}




package com.kafka.KafkaBase.service;

import com.alibaba.dubbo.rpc.RpcContext;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 描述: 提供方实现
 *
 **/
@Service("demoService")
public class DemoServiceImpl implements DemoService {

    @Override
    public String sayHello(String name) {
        return name;
    }
}

消费端
pom.xml 引入依赖包

<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.6</version>
</dependency>   
 <dependency>
 <groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>   

dubbo配置文件的设置 src/main/resources/dubbo.properties

# dubbo config
#暴露服务端口
dubbo.protocol.port=20880
#提供方超时时间
dubbo.provider.timeout=10000
#提供方版本
dubbo.provider.version=1.0
#表示该服务使用独的五条长链接
dubbo.provider.connections=5
# 固定大小线程池,启动时建立线程,不关闭,一直持有。(缺省)
dubbo.protocol.threadpool=fixed
# 线程数量
dubbo.protocol.threads=500
#配置重试次数,最好只用于读的重试,写操作可能会引起多次写入  默认retries="0"
dubbo.provider.retries=0
# dubbo缓存文件
dubbo.cache=/data/dubbo/cache/dubbo-consumer
# zookeeper config
zookeeper.connect=10.241.95.105:2181,10.241.95.106:2181,10.241.95.107:2181

src\main\resources\dubbo\dubbo.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="${spring.application.name}"  />

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="${zookeeper.connect}"  file="${dubbo.cache}"/>

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="${dubbo.protocol.port}"  threadpool="${dubbo.protocol.threadpool}"  threads="${dubbo.protocol.threads}"/>

    <!-- 提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。-->
    <dubbo:provider connections="${dubbo.provider.connections}" timeout="${dubbo.provider.timeout}" retries="${dubbo.provider.retries}" version="${dubbo.provider.version}" />

    <!-- 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。-->
    <dubbo:consumer version="${dubbo.provider.version}" />

    <!-- 监控中心配置,用于配置连接监控中心相关信息,可选。-->
    <dubbo:monitor protocol="registry"/>

</beans>

\src\main\resources\dubbo\dubbo-consumer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 增加引用远程服务配置 可以和本地bean一样使用demoService -->
    <dubbo:reference id="demoService" check="false" interface="com.kafka.KafkaBase.service.DemoService"/>

</beans>

调用的话就和调用本地service一样调用就行

    @Override
    public String dubboTest(int id) throws Exception {
        // TODO Auto-generated method stub
        String hello = demoService.sayHello(String.valueOf(id)); // 执行消费远程方法
        System.out.println(hello); // 显示调用结果
        return hello;
    }

消费者不需要知道服务者的服务端口号

相关文章

  • SpringBoot 2.0.3 整合dubbo

    首先是消费端pom.xml 引入依赖包 dubbo配置文件的设置 src/main/resources/dubb...

  • io.dubbo.springboot版本不兼容dubbo-2.

    遇到问题:在dubbo整合springboot的时候,使用io.dubbo.springboot的jar包,配合的...

  • SpringBoot 整合 Dubbo错误收集

    SpringBoot 整合 Dubbo CuratorFrameworkFactory找不到 错误信息:java....

  • spring boot 整合dubbo

    #项目介绍 Springboot 整合 Dubbo/ZooKeeper 码云地址:https://gitee.co...

  • SpringBoot整合dubbo

    1、添加依赖 2、生产者配置文件 3、消费者配置文件 4、定义service接口 5、生产者实现service接口...

  • SpringBoot整合dubbo

    首先创建一个多模块Maven项目,再创建一个生产者子项目和一个消费者子项目。父模块Maven POM文件如下: 生...

  • SpringBoot Dubbo 整合

    官方参考文档http://dubbo.apache.org/zh-cn/docs/user/configurati...

  • SpringBoot整合dubbo

    Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,...

  • SpringBoot整合Dubbo

    前期准备:下载安装zookeeper作为服务注册中心 安装步骤 解压 将zoo_sample.cfg文件名修改为z...

  • springboot整合dubbo

    导入依赖 服务调用者和服务发布者都需要引入该依赖 该依赖不定时更新,可以关注最新版本http://maven.al...

网友评论

      本文标题:SpringBoot 2.0.3 整合dubbo

      本文链接:https://www.haomeiwen.com/subject/ydbzvqtx.html