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

SpringBoot 整合Dubbo

SpringBoot 整合Dubbo

文章目录

一、工程目录结构二、创建工程项目

1、创建接口工程(cw-dubbo-api)

(1)pom.xml(2)创建接口类(LoginService) 2、创建服务提供者工程(cw-dubbo-provider)

(1)pom.xml(2)application.properties(3)主类(CwDubboProviderApplication)(4)LoginServiceImpl 3、创建服务调用者工程(cw-dubbo-consumer)

(1)pom.xml(2)application.properties(3)主类(CwDubboConsumerApplication)(4)LoginController 三、测试


注:此项目使用了Zookeeper组件。


一、工程目录结构


二、创建工程项目 1、创建接口工程(cw-dubbo-api)

此工程就是一个maven工程。

(1)pom.xml


    
        SpringBootDubboDemo
        cw-dubbo-demo
        1.0.0
    
    4.0.0

    cw-dubbo-api

    
        8
        8
    



(2)创建接口类(LoginService)
package com.cw.dubbo.api;

public interface LoginService {

    String login(String name, String pwd);
}

2、创建服务提供者工程(cw-dubbo-provider)

该工程是一个SpringBoot工程。


(1)pom.xml


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.4.RELEASE
         
    
    cw-dubbo-demo
    cw-dubbo-provider
    1.0.0
    cw-dubbo-provider
    Demo project for Spring Boot
    
        1.8
    
    
        
            cw-dubbo-demo
            cw-dubbo-api
            1.0.0
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.2.0
        
    

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



(2)application.properties
server.port=8078

# dubbo项目名
dubbo.application.name=cw-dubbo-providor

# 注册中心地址
dubbo.registry.address=127.0.0.1:2181
# 指定注册中心为zookeeper
dubbo.registry.protocol=zookeeper

# 指定通信协议
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
# 
dubbo.consumer.timeout=300000
dubbo.provider.timeout=300000

# 连接监控中心,去注册中心直接发现,不配地址
dubbo.monitor.protocol=registry

(3)主类(CwDubboProviderApplication)
package com.cw.dubbo.provider;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableDubbo
@SpringBootApplication
public class CwDubboProviderApplication {

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

}


(4)LoginServiceImpl
package com.cw.dubbo.provider;

import com.alibaba.dubbo.config.annotation.Service;
import com.cw.dubbo.api.LoginService;

@Service
public class LoginServiceImpl implements LoginService {

    @Override
    public String login(String name, String pwd) {
        return "name = " + name + ", pwd = " + pwd;
    }
}

3、创建服务调用者工程(cw-dubbo-consumer)

该工程是一个SpringBoot工程。


(1)pom.xml


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.4.RELEASE
         
    
    cw-dubbo-demo
    cw-dubbo-consumer
    1.0.0
    cw-dubbo-consumer
    Demo project for Spring Boot
    
        1.8
    
    
        
            cw-dubbo-demo
            cw-dubbo-api
            1.0.0
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
        
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.2.0
        
    

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



(2)application.properties
server.port=8079

#应用名称
dubbo.application.name=cw-dubbo-consumer

#注册中心地址(可以直接全地址)
dubbo.registry.address=zookeeper://127.0.0.1:2181

dubbo.consumer.timeout=300000
dubbo.provider.timeout=300000

#在注册中心找监控
dubbo.monitor.protocol=registry

(3)主类(CwDubboConsumerApplication)
package com.cw.dubbo.consumer;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableDubbo
@SpringBootApplication
public class CwDubboConsumerApplication {

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

}

(4)LoginController
package com.cw.dubbo.consumer;

import com.alibaba.dubbo.config.annotation.Reference;
import com.cw.dubbo.api.LoginService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LoginController {

    @Reference
    private LoginService loginService;

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public String login(@RequestParam(name = "name") String name,
                        @RequestParam(name = "pwd") String pwd){
        long start = System.currentTimeMillis();
        String str = loginService.login(name, pwd);
        long end = System.currentTimeMillis();
        return "duration = " + (end - start) + "ms, " + str;
    }
}

三、测试

先启动 cw-dubbo-provider 工程,然后在启动 cw-dubbo-consumer 工程。

启动成功后,在浏览器访问:http://localhost:8079/login?name=admin&pwd=123456

出现如下界面说明远程Dubbo调用成功。

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

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

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