• 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);
        }
    }
    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    简直喝血!H.265要被专利费活活玩死
    python异常处理
    开始好好总结所学东西了,马上校招了~~
    pip 安装管理失败解决
    去除空格
    自定义开关(不带有滑动,只具有点击切换开关功能)
    Android-ViewPagerIndicator框架使用——TabPageIndicator以及样式的修改
    Android详细的对话框AlertDialog.Builder使用方法
    Fragment+FragmentTabHost组件实现常见主页面(仿微信新浪)
    Activity生命周期
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11774128.html
Copyright © 2020-2023  润新知