我是靠谱客的博主 现实彩虹,最近开发中收集的这篇文章主要介绍Springboot+dubbo+zookeepr构建项目,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

本文使用Spring Boot + zookeeper 搭建Dubbo项目。

1.安装并配置zookeeper

下载地址:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.6/

下载后直接解压,如果里面是zoo_simple.cfg或者其他任何的名字,将其改为zoo.cfg

修改里面的一些配置,其他保持默认即可

dataDir=D:softwarezookeeperdatazookeeper
dataLogDir=D:softwarezookeeperdatazookeeper-logs

进入bin目录下,启动zkServer.cmd,出现以下情况就算启动成功

PS:zookeeper内部使用了jetty,会占用8080端口,所以启动时要确保8080端口没被占用,否则会报端口占用异常

2.创建项目

使用idea创建Spring boot的父子项目

dubbo-api:用来放共同使用的接口

dubbo-customer:服务消费者

dubbo-provider:服务提供者

引入zookeeper和dubbo的相关依赖

<!-- 引入zookeeper的依赖 -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
        <!-- dubbo依赖 -->
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

3.实现dubbo-api

目录结构为:

HelloService.java

public interface HelloService {
    String hello();
    String getNameByInput(String input);
}

4.实现dubbo-provider

目录结构为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SC6jEfBX-1575901545066)(C:%5CUsers%5Cadmin%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20191209220324947.png)]

HelloServiceImpl.java

package com.snail.provider.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.snail.api.service.HelloService;
import org.springframework.stereotype.Component;

/**
 * @author :spanking snail
 * @date :2019/12/9 14:56
 */
@Service
@Component
public class HelloServiceImpl implements HelloService {
    @Override
    public String hello() {
        return "hello dubbo,111";
    }

    @Override
    public String getNameByInput(String input) {
        return "input message: " + input;
    }
}

applicatoin.yml

server:
  port: 8081
spring:
  dubbo:
    application:
      name: dubbo-provider
    registry: zookeeper://127.0.0.1:2181
    monitor:
      protocol: registry
    configcenter: zookeeper://127.0.0.1:2181

ProviderApplication.java

这里需要在启动类上加一个@EnableDubboConfiguration注解

服务提供者名字为:dubbo-provider,端口为8081,注册中心为zookeeper的默认端口2181

5.实现dubbo-customer

目录结构为:

HelloController.java

package com.snail.dubbocustomer.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.snail.api.service.HelloService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author :spanking snail
 * @date :2019/12/9 15:09
 */
@RestController
public class HelloController {
    @Reference
    HelloService helloService;

    @GetMapping("/hello")
    public String hello(){
        return helloService.hello();
    }

    @GetMapping("/hello/{input}")
    public String getNameByInput(@PathVariable("input") String input) {
        return helloService.getNameByInput(input);
    }
}

applicaiton.yml

server:
  port: 8082
spring:
  dubbo:
    application:
      name: dubbo-customer
    registry: zookeeper://127.0.0.1:2181
    monitor:
      protocol: registry
    configcenter: zookeeper://127.0.0.1:2181

6.测试

在保证zookeeper启动的前提下,先启动provider,再启动customer。启动成功后进行调用

服务启动成功。

最后

以上就是现实彩虹为你收集整理的Springboot+dubbo+zookeepr构建项目的全部内容,希望文章能够帮你解决Springboot+dubbo+zookeepr构建项目所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部