• SpringBoot_集成Dubbo


    集成前的准备

    1、  阿里巴巴提供的dubbo集成springboot开源项目;

    2、  https://github.com/alibaba

    3、  我们将采用该项目提供的jar包进行集成;

    <!--添加dubbo集成springboot依赖-->
    <dependency>
       <groupId>com.alibaba.spring.boot</groupId>
       <artifactId>dubbo-spring-boot-starter</artifactId>
       <version>1.0.0</version>
    </dependency>

    dubbo开发一般建议采用三个项目:

             开发Dubbo服务接口项目

             开发Dubbo服务提供者项目

             开发Dubbo服务消费者项目

    开发Dubbo服务接口项目【普通maven项目即可】

     

     

    按照Dubbo官方开发建议,创建一个接口项目,该项目只定义接口和model类

    定义接口类

    package com.joinlabs.dubbo.service;
    
    import com.joinlabs.dubbo.model.User;
    
    /**
     * Created by Administrator on 2018/10/26/026.
     */
    public interface UserService {
    
        public User findById(int id);
    
        public String findUserName(int id);
    
    }

    定义model类

    
    

    package com.joinlabs.dubbo.model;

    /**
     * Created by Administrator on 2018/10/26/026.
     */
    public class User {
        private int id;
        private String name;

        public User() {
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    对接口项目进行打包,利用maven工具进行打包

    打包成功后会将该jar包以maven的形式保存到maven的本地仓库中,方便服务提供者和消费者项目项目在pom.xml中进行引用

     

    开发Dubbo服务提供者【springboot项目】

     

     

     

     

    1、 创建一个Springboot项目并配置好相关的依赖;

    2、 加入springboot与dubbo集成的起步依赖:

    <!--添加dubbo集成springboot依赖-->
    <dependency>
       <groupId>com.alibaba.spring.boot</groupId>
       <artifactId>dubbo-spring-boot-starter</artifactId>
       <version>1.0.0</version>
    </dependency>

    3、 在Springboot的核心配置文件application.properties中配置dubbo的信息:

    #内置的Tomcat服务器启动后的端口
    server.port=8080
    
    #Dubbo配置
    spring.dubbo.appname=springboot-dubbo-provider
    spring.dubbo.registry=zookeeper://localhost:2181

    由于使用了zookeeper作为注册中心,则需要加入zookeeper的客户端jar包:

    <!-- zookeeper客户端依赖start -->
    <dependency>
       <groupId>com.101tec</groupId>
       <artifactId>zkclient</artifactId>
       <version>0.10</version>
       <exclusions>
          <exclusion>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
          </exclusion>
          <exclusion>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
          </exclusion>
       </exclusions>
    </dependency>
    <!-- zookeeper客户端依赖end -->

    4、 编写Dubbo的接口实现类,去试下上面的接口项目中的service接口:

    想要在pom.xml中引入接口jar包的依赖

    <dependency>
       <groupId>com.joinlabs.dubbo</groupId>
       <artifactId>01springboot-dubbo-interface</artifactId>
       <version>1.0-SNAPSHOT</version>
    </dependency>

    实现类:

    package com.joinlabs.dubbo.service.impl;
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.joinlabs.dubbo.model.User;
    import com.joinlabs.dubbo.service.UserService;
    import org.springframework.stereotype.Component;
    
    /**
     * Created by Administrator on 2018/10/26/026.
     */
    @Service(interfaceClass = UserService.class) //该注解是dubbo的,等价于之前的<dubbo:service interface="" ></dubbo:service>
    @Component //该注解是spring的,或者使用@org.springframework.stereotype.Service
    
    public class UserServiceImpl implements UserService {
    
        @Override
        public User findById(int id) {
            User user = new User();//模拟数据,也可以集成mybatis到数据库查询数据
            user.setId(id);
            user.setName("name"+id);
            return user;
        }
    
        @Override
        public String findUserName(int id) {
            return "name"+id;
        }
    }

    5、编写一个入口main程序启动Dubbo服务提供者:

    package com.joinlabs.dubbo;
    
    import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @EnableDubboConfiguration //开启dubbo配置支持
    public class Application {
    
       public static void main(String[] args) {
          SpringApplication.run(Application.class, args);
       }
    }

    安装和启动zookeeper

    下载安装包

    解压缩到c盘根目录

    修改配置文件名称zookeeper-3.4.10confzoo_sample.cfg为zoo.cfg

    编辑该配置文件内容

     为

    进入到zookeeper-3.4.10in目录,并且启动zkServer.cmd,不要关闭控制台窗口

     可以通过jsp命令查看进程

     通过自带的客户端去连接

    打开一个新的控制台,执行命令zkCli.cmd

    开发Dubbo服务消费者【springboot项目】

    1、创建一个Springboot项目并配置好相关的依赖;

    2、加入springboot与dubbo集成的起步依赖:

    <dependency>
        <groupId>com.alibaba.spring.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>1.0.0</version>
    </dependency>

    3、在Springboot的核心配置文件application.properties中配置dubbo的信息:

    # WEB服务端口
    server.port=9090
    # dubbo配置
    spring.dubbo.appname=springboot-dubbo-consumer
    spring.dubbo.registry=zookeeper://192.168.91.129:2181

    由于使用了zookeeper作为注册中心,则需要加入zookeeper的客户端jar包:

    <dependency>
        <groupId>com.101tec</groupId>
        <artifactId>zkclient</artifactId>
        <version>0.10</version>
    </dependency>

    4、编写一个Controller类,调用远程的Dubbo服务:

    @Controller
    public class UserController {
        @Reference //使用dubbo的注解引用远程的dubbo服务
        private UserService userService;
        @RequestMapping("/sayHi")
        public @ResponseBody String sayHi () {
            return userService.sayHi("spring boot dubbo......");
        }
    }

    5、编写一个入口main程序启动Dubbo服务提供者:

    @SpringBootApplication
    @EnableDubboConfiguration //开启dubbo配置支持
    public class SpringbootApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootApplication.class, args);
        }
    }
    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    Mac下安装zsh(Oh My ZSH)的shell,替代原有的bash
    Mac下配置环境变量重启后不生效解决(.bash_profile vs .bashrc)(bash/zsh下不加载.bashrc问题解决)
    Mac下配置环境变量(转)
    Jenkins配置Publish Junit test result report(转)
    Mac下配置Java Web开发环境(Mac 10.12)
    Mac下配置idea(Mac 10.12)
    Sublime Text 3安装插件(Mac 10.12)
    Sublime Text 3新建工程
    Mac下快速新建txt文件
    Mac下配置maven和集成到ecclipse(Mac 10.12)
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11774128.html
Copyright © 2020-2023  润新知