栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spring Boot , Dubbo 直连案例

Spring Boot , Dubbo 直连案例

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

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

    org.apache.dubbo
    dubbo
    2.7.8

1.2 持有公共Service接口
package com;

public interface DosomeService {
    Object dosome(String str);
}
2 dubbo-provider 模块, springboot项目 2.1 pom 文件

    org.example
    dubbo-common
    1.0-SNAPSHOT

2.2 yml文件配置
server:
  port: 8081 #Tomcat端口, 和provider模块当然不能重复
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
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 x = new ArrayList<>();
        x.add("a");
        x.add("b");
        x.add("c");
        return x;
    }
}
2.5 创建配置类
// 表明这是一个配置类
@Configuration
// 开启dubbo, 作为服务端, 在括号内指定服务的包
@EnableDubbo(scanbasePackages = "com.example.dubboserv.service.impl")
// 扫描dubbo配置文件
@PropertySource("classpath:/dubbo-provider.properties")
public class DubboServConfig {
    // 啥也不用干
}
2.6 启动类不需要做改变
@SpringBootApplication
public class DubboServApplication {
    public static void main(String[] args) {
        SpringApplication.run(DubboServApplication.class, args);
    }
}
3 dubbo-consumer 模块, springboot项目 3.1 pom 文件

    org.example
    dubbo-common
    1.0-SNAPSHOT

3.2 yml文件配置
server:
  port: 8081 #Tomcat端口, 和provider模块当然不能重复
3.3 在 resources 目录下创建 dubbo-provider.properties 配置文件, (命名随意)
# 和项目名称相同
dubbo.application.name=dubbo-consu
# 固定的
dubbo.protocol.name=dubbo
# 暴露服务的端口
dubbo.protocol.port=20880
# 启动时不检查是否有服务, 默认是true
dubbo.consumer.check=false
3.4 创建配置类
// 表明这是一个配置类
@Configuration
// 开启dubbo
@EnableDubbo
// 扫描dubbo配置文件
@PropertySource("classpath:/dubbo-consumer.properties")
public class DubboServConfig {
    // 啥也不用干
}
3.5 启动类不需要做改变
@EnableScheduling
@SpringBootApplication
public class DubboConsuApplication {
    public static void main(String[] args) {
        SpringApplication.run(DubboServApplication.class, args);
    }
}
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);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/335930.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号