美文网首页Java 杂谈Java
Dubbo入门(三)--spring boot整合dubbo创建

Dubbo入门(三)--spring boot整合dubbo创建

作者: Wocus | 来源:发表于2019-03-19 11:46 被阅读1次

    前言

    dubbo框架与spring boot整合,不需要导入其他的包,也不需要繁琐的重复配置
    我这里使用的是idea+gradle4.8+spring boot2.x构建本项目的接下来讲解如何配置
    总体来说分为一下几个步骤
    1.创建一个公共Module,把bean,和接口都写进此module
    2.创建服务提供者,依赖公共Module
    3.添加dubbo-spring boot依赖
    4.编写配置文件
    5.暴露服务Service
    6.启动类上面加上EnableDubbo注解,启动
    7.服务消费者,一样之

    1.创建公共Module

    File->new->project->spring boot项目,一个服务都不需要,直接创建


    image.png

    我这里只写了2个接口,然后公共Module创建完毕

    2.创建服务提供者

    新建spring boot项目,导入spring boot整合dubbo的依赖,添加这个依赖之后,里面的一些相关包都给你引入进来了,比如说zookeeper,dubbo,logback等等

    implementation 'com.alibaba.boot:dubbo-spring-boot-starter:0.2.0'
    

    然后依赖之前创建好的Module,File->Project Structure->Module->import Module->ok
    然后我们编写Service 层,实现module层的UserService接口,

    import com.alibaba.dubbo.config.annotation.Service;
    import com.wocus.service.service.UserService;
    import org.springframework.stereotype.Component;
    
    /**
     * @program: dubbo_service01
     * @description: 用户服务实现类
     * @author: jiang wei
     * @create: 2019-03-18 11:52
     */
    @Service(version = "1.0.0")
    @Component
    public class UserServiceImpl implements UserService {
    
        @Override
        public String selectByUserId(String id) {
            return "传递了一个值"+id+"使用的是20081服务器";
        }
    }
    

    注意:Service注解dubbo和这个同名,dubbo的Service是暴露服务,因此,我们需要在类上注明@Service注解,以前的Service注解用Component取而代之即可,这样,服务就暴露出去了

    接下来就是配置文件

    dubbo.application.name=dubbo-service01  #服务应用名
    dubbo.registry.address=zookeeper://10.10.80.221:2181  //注册中心地址
    
    dubbo.protocol.name=dubbo   //dubbo名称
    dubbo.protocol.port=20881  //dubbo端口
    dubbo.provider.loadbalance=random  //负载均衡算法
    dubbo.monitor.protocol=registry  //自动发现服务
    

    然后在启动类,注解@EnableDubbo启动,然后再看dubbo admin控制台,服务以及成功注册


    image.png
    3.创建服务消费者

    和创建服务提供者一样,新建spring boot项目,依赖dubbo,然后编写Controller去消费服务,启动类上加上注解@EnableDubbo,编写配置文件

    import com.alibaba.dubbo.config.annotation.Reference;
    import com.wocus.service.service.UserService;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @program: dubbo_customer01
     * @description: 用户服务类
     * @author: jiang wei
     * @create: 2019-03-19 09:08
     */
    @RestController
    public class UserController {
    
        @Reference
        private UserService userService;
    
        @RequestMapping("/user")
        public String getUser(){
            return userService.selectByUserId("21");
        }
    
    }
    

    这里用dubbo的@Referenece注解就远程调用了另一台服务器的service了,打包DubboAdmin控制台也可以看得到,有消费服务了


    image.png

    基于dubbo的项目搭建已经完成了,后面文章,将讲解一些超时配置,实时检测,本地策略,dubbo直连等等

    相关文章

      网友评论

        本文标题:Dubbo入门(三)--spring boot整合dubbo创建

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