当前位置:   article > 正文

Spring Boot , Dubbo 直连案例_dubbo 直连yml配置

dubbo 直连yml配置

案例 : 分作三个模块 1 dubbo-common, 2 dubbo-provider, 4 dubbo-consumer

1 dubbo-common模块, maven搭建的一个普通的java项目

1.1 pom文件
<!--
 	持有 dubbo 依赖, 
	目的是为了方便管理, 之后provider和consumer只需要持有这个模块的依赖, 就不需要各自添加dubbo依赖
-->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.7.8</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
1.2 持有公共Service接口
package com;

public interface DosomeService {
    Object dosome(String str);
}
  • 1
  • 2
  • 3
  • 4
  • 5

2 dubbo-provider 模块, springboot项目

2.1 pom 文件
<dependency>
    <groupId>org.example</groupId>
    <artifactId>dubbo-common</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
2.2 yml文件配置
server:
  port: 8081 #Tomcat端口, 和provider模块当然不能重复
  • 1
  • 2
2.3 在 resources 目录下创建 dubbo-consumer.properties 配置文件, (命名随意)
# 和项目名称相同
dubbo.application.name=dubbo-Serv
# 查阅官方文档可知, registry.address 属性是必须的, 即使不使用注册中心, 也得有这个属性, 随便给一个;
dubbo.registry.address=N/A
# 设置 registry.register=false, 消除 registry.address 的作用;
dubbo.registry.register=false
# 固定的
dubbo.protocol.name=dubbo
# 暴露服务的端口
dubbo.protocol.port=20880
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
2.4 创建接口的实现类
package com.example.dubboserv.service.impl;

import com.DosomeService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
@DubboService (version = "1.0.0", timeout = 3000)
public class DosomeServiceImpl implements DosomeService {
    @Override
    public Object dosome(String str) {
        System.out.println("服务被调用");
        List<String> x = new ArrayList<>();
        x.add("a");
        x.add("b");
        x.add("c");
        return x;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
2.5 创建配置类
// 表明这是一个配置类
@Configuration
// 开启dubbo, 作为服务端, 在括号内指定服务的包
@EnableDubbo(scanBasePackages = "com.example.dubboserv.service.impl")
// 扫描dubbo配置文件
@PropertySource("classpath:/dubbo-provider.properties")
public class DubboServConfig {
    // 啥也不用干
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
2.6 启动类不需要做改变
@SpringBootApplication
public class DubboServApplication {
    public static void main(String[] args) {
        SpringApplication.run(DubboServApplication.class, args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3 dubbo-consumer 模块, springboot项目

3.1 pom 文件
<dependency>
    <groupId>org.example</groupId>
    <artifactId>dubbo-common</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
3.2 yml文件配置
server:
  port: 8081 #Tomcat端口, 和provider模块当然不能重复
  • 1
  • 2
3.3 在 resources 目录下创建 dubbo-provider.properties 配置文件, (命名随意)
# 和项目名称相同
dubbo.application.name=dubbo-consu
# 固定的
dubbo.protocol.name=dubbo
# 暴露服务的端口
dubbo.protocol.port=20880
# 启动时不检查是否有服务, 默认是true
dubbo.consumer.check=false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
3.4 创建配置类
// 表明这是一个配置类
@Configuration
// 开启dubbo
@EnableDubbo
// 扫描dubbo配置文件
@PropertySource("classpath:/dubbo-consumer.properties")
public class DubboServConfig {
    // 啥也不用干
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
3.5 启动类不需要做改变
@EnableScheduling
@SpringBootApplication
public class DubboConsuApplication {
    public static void main(String[] args) {
        SpringApplication.run(DubboServApplication.class, args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
3.6 通过定时任务来测试服务的调用
@Component
public class Test {
    
    // 通过 url 属性指定 ip 和 port, 直接访问服务提供者
    @DubboReference(
            id="dosomeService", 
            interfaceName = "com.DosomeService", 
            version = "1.0.0", 
            url="dubbo://10.41.25.2:20880")
    private DosomeService dosomeService;
    
    @Scheduled(cron = "0/5 * * * * ?")
    public void m() {
        Object ans = dosomeService.dosome("发起调用");
        System.out.println(ans);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/166012
推荐阅读
相关标签
  

闽ICP备14008679号