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

【Dubbo笔记整理五】SpringBoot整合Dubbo(Multicast)

【Dubbo笔记整理五】SpringBoot整合Dubbo(Multicast)

版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://sunkuan.blog.csdn.net/article/details/120501599

文章目录
  • 一、搭建 Maven 聚合项目
    • 1、创建 dubbo-demo 项目
    • 2、整理 dubbo-demo 项目的 pom
    • 3、创建 dubbo-api、dubbo-server、dubbo-client 子模块
    • 4、目录结构
    • 5、Maven依赖
  • 二、dubbo-api
    • 1、pom.xml
    • 2、User 类
    • 3、UserService 接口
  • 三、dubbo-provider
    • 1、pom.xml
    • 2、application.yml
    • 3、UserServiceImpl
    • 4、DubboProviderApplication
  • 四、dubbo-consumer
    • 1、pom.xml
    • 2、application.yml
    • 3、UserInit
    • 4、DubboConsumerApplication
  • 五、测试程序
  • 六、程序代码






终于进入实战环节了,本篇将以 Spring Boot 为基础,来整合 Dubbo 来实现一个 HelloWorld 小例子。通过上篇博客相信大家也了解到在 Dubbo 中有个 注册中心 这个东西,官方推荐的虽然是 Zookeeper,但由于 Zookeeper 东西也比较多,我们本篇博客暂时使用 Multicast 注册中心 带大家入门。
 
Multicast 只适用于学习和测试,非常不推荐用于实际生产,这也是官方说的。
 
Multicast 注册中心 不需要启动任何中心节点,只要广播地址一样,就可以互相发现。下面是官方提供的结构图:

  1. 提供方启动时广播自己的地址;
  2. 消费方启动时广播订阅请求;
  3. 提供方收到订阅请求时,单播自己的地址给订阅者,如果设置了 unicast=false,则广播给订阅者;
  4. 消费方收到提供方地址时,连接该地址进行 RPC 调用。
     
    由组播受网络结构限制,只适合小规模应用或开发阶段使用。组播地址段: 224.0.0.0 - 239.255.255.255。

一、搭建 Maven 聚合项目 1、创建 dubbo-demo 项目


2、整理 dubbo-demo 项目的 pom


    4.0.0
    pom

    
        dubbo-provider
        dubbo-consumer
        dubbo-api
    

    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.4
         
    

    com.demo
    dubbo-demo
    0.0.1-SNAPSHOT
    dubbo-demo
    Demo project for Spring Boot

    
        1.8
        2.7.3
    

    
        
            
            
                org.apache.dubbo
                dubbo-spring-boot-starter
                ${dubbo.version}
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



3、创建 dubbo-api、dubbo-server、dubbo-client 子模块

以创建 dubbo-api 子模块为例,dubbo-server 与 dubbo-client 创建方式相同。


4、目录结构


5、Maven依赖



二、dubbo-api 1、pom.xml


    4.0.0

    
        com.demo
        dubbo-demo
        0.0.1-SNAPSHOT
    

    com.demo
    dubbo-api
    0.0.1-SNAPSHOT
    dubbo-api
    Demo project for Spring Boot

    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.apache.dubbo
            dubbo-spring-boot-starter
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



2、User 类
public class User implements Serializable {

    private Integer id;
    private String name;

	// set..() & get..()
    // toString()
    
}

3、UserService 接口
public interface UserService {
    User selectUserById(Integer id);
}


三、dubbo-provider 1、pom.xml


    4.0.0

    
        com.demo
        dubbo-demo
        0.0.1-SNAPSHOT
    

    com.demo
    dubbo-provider
    0.0.1-SNAPSHOT
    dubbo-provider
    Demo project for Spring Boot

    
        1.8
    

    
        
        
            com.demo
            dubbo-api
            0.0.1-SNAPSHOT
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



2、application.yml
#防止端口冲突
server:
  port: 8001

dubbo:
  application:
    # 应用名称
    name: provider
  registry:
    # 注册中心地址
    address: multicast://224.5.6.7:1234
    # 超时时间,单位毫秒
    timeout: 6000
  protocol:
    #协议名称
    name: dubbo
    #协议端口
    port: 20880
  scan:
    #扫描包的位置
    base-packages: com.demo.service

3、UserServiceImpl
import org.apache.dubbo.config.annotation.Service;

@Service(version = "1.0")
public class UserServiceImpl implements UserService {

	@Override
	public User selectUserById(Integer id) {
		User user = new User();
		user.setId(id);
		user.setName("张三");
		return user;
	}

}

4、DubboProviderApplication
@SpringBootApplication
public class DubboProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboProviderApplication.class, args);
    }

}


四、dubbo-consumer 1、pom.xml


    4.0.0

    
        com.demo
        dubbo-demo
        0.0.1-SNAPSHOT
    

    com.demo
    dubbo-consumer
    0.0.1-SNAPSHOT
    dubbo-consumer
    Demo project for Spring Boot

    
        1.8
    

    
        
        
            com.demo
            dubbo-api
            0.0.1-SNAPSHOT
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



2、application.yml
#防止端口冲突
server:
  port: 8002

dubbo:
  application:
    # 应用名称
    name: consumer
  registry:
    # 注册中心地址
    address: multicast://224.5.6.7:1234

3、UserInit
@Component
public class UserInit implements CommandLineRunner {

	@Reference(version = "1.0",parameters = {"unicast","false"})
	private UserService userService;

	@Override
	public void run(String... args) throws Exception {
		System.out.println(userService.selectUserById(2));
	}

}

4、DubboConsumerApplication
@SpringBootApplication
public class DubboConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboConsumerApplication.class, args);
    }

}


五、测试程序

先执行 DubboProviderApplication ( 服务提供者程序),再执行 DubboConsumerApplication ( 服务消费者程序),执行效果如下:



六、程序代码

本文代码的下载链接:https://download.csdn.net/download/sun8112133/24503038



博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/278895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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