栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpingBoot+Dubbo+Zookeeper实现简单分布式开发的应用详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpingBoot+Dubbo+Zookeeper实现简单分布式开发的应用详解

开始接触分布式概念,学习之前要准备搭建Dubbo和Zookeeper环境的简单搭建。

Window下安装Zookeeper和Dubbo-admin 1、Apache官网下载Zookeeper

点击官网地址下载最新版

下载完成后,打开apache-zookeeper-3.6.2-binbin下zkServer.cmd,正常第一次都会闪退的,因为没有配置好zoo.cfg配置文件。

将conf目录下的zoo_sample.cfg文件,复制一份,重命名为zoo.cfg

在apache-zookeeper-3.6.2-bin目录下新建两个文件夹data和log

修改zoo.cfg配置文件


(修改dataDir的路径和增加dataLogDir分别对应刚刚新建的data和log文件夹)

然后运行bin下zkServer.cmd(不关闭)

再运行zkCli.cmd


证明zookeeper搭建成功(详细的安装步骤百度一大堆)

2、GitHub下载Dubbo-admin

去GitHub里面下载:点击GitHub地址

下载完解压到自己习惯的位置

打开到根目录,本地地址前面加cmd 进入控制台,运行代码,打包dubbo-admin

mvn clean package -Dmaven.test.skip=true

命令行运行 dubbo-admintarget 下的dubbo-admin-0.0.1-SNAPSHOT.jar

java -jar dubbo-admin-0.0.1-SNAPSHOT.jar

执行完毕,我们去访问一下 http://localhost:7001/ , 这时候我们需要输入登录账户和密码,我们都是默认的root-root;

登录成功后,查看界面

3、SpringBoot + Dubbo + Zookeeper

框架搭建

  • 启动zookeeper !
  • IDEA创建一个空项目,项目选择最下面那个Empty Project;
  • 创建一个模块,选择Spring Initializr,实现服务提供者:provider-server ,选择web依赖即可
  • 创建一个模块,选择Spring Initializr,实现服务消费者:consumer-service,选择web依赖即可

项目创建完毕;

pom.xml配置文件引入Dubbo + zookeeper


    
      org.apache.dubbo
      dubbo-spring-boot-starter
      2.7.3
    

    
    
      com.github.sgroschupf
      zkclient
      0.1
    

    
    
      org.apache.curator
      curator-framework
      2.12.0
    
    
      org.apache.curator
      curator-recipes
      2.12.0
    
    
      org.apache.zookeeper
      zookeeper
      3.4.14
      
      
 
   org.slf4j
   slf4j-log4j12
 
      
    

在provider-server项目下写一个服务

TicketService.java

public interface TicketService {

  public String getTicket();
}

TicketServiceImpl.java

import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

//zookeeper:服务注册与实现

@Service  //可以被扫描到,在项目一启动就自动注册到注册中心
@Component //使用了dubbo后,注意不要用到spring的service注解
public class TicketServiceImpl implements TicketService {
  @Override
  public String getTicket() {
    return "枫";
  }
}

在consumer-server项目下写一个消费者服务

UserService.Java

import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;


@Service// 注入容器中,用spring的注解
public class UserService {

  //要拿到provider-service提供的票,要去注册中心
  @Reference  //引用,导入dubbo的包。正常开发引用pom坐标,但是可以定义路径相同的接口名
  TicketService ticketService;

  public void buyTicket(){
    String ticket = ticketService.getTicket();

    System.out.println("在注册中心拿到=》"+ticket);
  }
}

在provider-service的配置文件中配置dubbo相关属性!


11. 在consumer-service的配置文件中配置dubbo相关属性!


12. 本来正常步骤是需要将服务提供者的接口打包,然后用pom文件导入,我们这里使用简单的方式,直接将服务的接口拿过来,路径必须保证正确,即和服务提供者相同;


将provider-service的TicketService复制一份到consumer-service注意要相同目录

启动两个项目的启动类,注意配置文件中的端口号配置成不一样的,然后打开http://localhost:7001登录,服务治理-服务




提供者和消费者都有显示,搭建成功,后台一定要挂着zookeeper的服务。

总结

这就是SpingBoot + dubbo + zookeeper实现分布式开发的应用,其实就是一个服务拆分的思想。只是一个小小的实现,个人感觉还是挺容易理解的,主要是搭建zookeeper的环境要注意下细节,还有项目中导包注解不要导错,因为@service有两个选择,一个是spring一个是dubbo的。还有就是正常开发是需要将服务提供者的接口打包,然后用pom文件导入,我们这里使用简单的方式,直接将服务的接口拿过来,路径必须保证正确,即和服务提供者相同,正常开发步骤还没学到,后面持续学习中,有相关案例再分享吧0.0。

到此这篇关于SpingBoot+Dubbo+Zookeeper实现简单分布式开发的应用详解的文章就介绍到这了,更多相关SpingBoot+Dubbo+Zookeeper分布式内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

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

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

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