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

springboot集成dubbo+zookeeper

springboot集成dubbo+zookeeper

还记得,上一次我出来ssm整合bubbo+zookeeper的博客,还在学习ssm的同学可以看我上次的博客超级详细:https://blog.csdn.net/gloamer/article/details/118354272?spm=1001.2014.3001.5501看到 springboot集成dubbo+zookeeper的文章不是很多,也不是很详细 所以今天我也特意出一篇springboot集成dubbo+zookeeper 的文章来解救大家,爱我吗 嘿嘿嘿 。

实现

废话不多说,多的不谈了!,咱们直接上代码!:

 首先最重要的一点就是咱们要 先有注册中心,你可以在Linux上启动,也可以在Windows启动zookeeper 因为是练习我为了方便这里我就用Windows上面的zookeeper啦

zookeeper链接:

链接:https://pan.baidu.com/s/18tUyRtRhPkW0ZH2GMl-rJQ 
提取码:ahua

启动zookeeper

 然后就是咱们项目整体的一个架构了

项目架构

dubbo-common (公共类 异常,工具类等等)

dubbo-service(接口,provider和consumer我需要引用该工程依赖)

dubbo-provider(服务的提供者)

dubbo-consumer(服务的消费者)

父工程

 首先创建一个父工程dubbo-parent 普通的maven工程就好了,具体父工程pom.xml文件加上:

   
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.4.RELEASE
    
然后再创建子工程dubbo-common

普通的maven工程就好了,然后再创建一个实体类pojo(User)不需要导入其他依赖

package com.shenwang.pojo;

import java.io.Serializable;


public class User implements Serializable {
    
    private Integer id;
    
    private String username;
    
    private String password;

    public User() {
    }

    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + ''' +
                ", password='" + password + ''' +
                '}';
    }
}
dubbo-interface

创建咱们的子工程dubbo-interface,在pom.xml文件引入自己的dubbo-common子模块依赖:

     
        
            com.shenwang
            dubbo-common
            1.0-SNAPSHOT
        
     

这个不要一味复制哦,咱们的groupId是不一样的

编写接口 com.shenwang.service.UserService

package com.shenwang.service;

import com.shenwang.pojo.User;

import java.util.List;


public interface UserService {
    
    public List selectAll();
}

over 最重要的来了!

dubbo-provider

首先是依赖:

先引用子工程dubbo-interface依赖,再直接复制我的依赖:

 
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.2.0
        
        
            com.alibaba.spring.boot
            dubbo-spring-boot-starter
            2.0.0
        
        
        
            com.101tec
            zkclient
            0.10
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
       
        
        
            mysql
            mysql-connector-java
            runtime
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.2.0
        
        
            com.baomidou
            mybatis-plus-generator
            3.2.0
        
        
            org.freemarker
            freemarker
            2.3.28
        
        
            com.alibaba
            fastjson
            1.2.47
        

dubbo-provider的东西比较多,怕弄不清,没关系,先看架构!

 application.yml:

dubbo:
  application:
    #应用名称
    name: dubbo-provider
  #注册中心地址
  registry:
    address: zookeeper://127.0.0.1:2181
  #扫描服务类包目录
  scan:
    base-packages: com.shenwang.service
  protocol:
    #协议名称
    name: dubbo
    #协议端口
    port: 20880
server:
  port: 8087

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url:  jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: 123
#mybatis配置
mybatis:
  mapper-locations: classpath:mappers
@EnableDubbo
@SpringBootApplication
@MapperScan("com.shenwang.mapper")
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class,args);
    }
}

UserServiceImpl:

package com.shenwang.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.shenwang.mapper.UserMapper;
import com.shenwang.pojo.User;
import com.shenwang.service.UserService;


import javax.annotation.Resource;
import java.util.List;


@Service(interfaceClass = UserService.class)
public class UserServiceImpl implements UserService{
    @Resource
    private UserMapper userMapper;
    
    @Override
    public List selectAll() {
        return userMapper.selectList(null);
    }
}

mapper和mapper.xml我就不给你们啦,相信难不倒你们 嘿嘿

最后最后,服务的消费者

dubbo-consumer:

废话不多说,依赖,首先引入子工程 dubbo-interface依赖再直接复制下方:

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

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

        
        
        
            com.github.sgroschupf
            zkclient
            0.1
        

 application.yml文件:

dubbo:
  application:
    name: dubbo-consumer
  registry:
    address: zookeeper://127.0.0.1:2181
server:
  port: 8081

启动类 ConsumerApplication

package com.shenwang;

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


@EnableDubbo
@SpringBootApplication
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class,args);
    }
}

然后再创建controller(com.shenwang.controller.UserController)

package com.shenwang.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.shenwang.pojo.User;
import com.shenwang.service.UserService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


@RestController
@RequestMapping("/user")
public class UserController {
    @Reference
    private UserService userService;

    
    @GetMapping("/selectAll")
    public List selectAll(){
        return userService.selectAll();
    }
}

这样咱们就整合完成啦,不行我现在还有点事,所以写的有些潦草,后期我会去优化此博客.

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

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

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