springboot搭建dubbo-zookeeper的简单应用

目录

一、准备工作

二、创建springboot项目结构


一、准备工作

环境centos7 + idea +windows

1、首先在linux上部署并启动zookeeper。

教程:https://blog.csdn.net/zy_281870667/article/details/80646224

2、安装可视化工具dubbo-admin,其实是一个war包,部署到tomcat中的webapps下,启动tomcat即可。

用途:我们不能直观看到dubbo和zookeeper上到底有哪些服务和消费者,所以这里借助dubbo-admin可视化工具。

如何获取dubbo-admin:请参考 https://blog.csdn.net/qq_38157516/article/details/82421748

先展示下我的效果图:

二、创建springboot项目结构

为模拟微服务的调用,这里创建3个springboot的module:

结构分别为:

说明:

dubbo-zookeeper-consumer:与前端交互,属于服务消费者,需要在zookeeper中注册。

dubbo-zookeeper-provider:具体业务逻辑的实现,属于服务提供者,在zookeeper注册为dubbo服务。

dubbo-zookeeper-service:主要放置公用的接口、实体类,用maven打成jar包,供 consumer 和 provider 引用。

将 dubbo-zookeeper-service 打成jar包:

在 dubbo-zookeeper-consumer 和 dubbo-zookeeper-provider 的 pom.xml  引入上述jar的依赖:

        <dependency>
            <groupId>com.example</groupId>
            <artifactId>dubbo-zookeeper-service</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

除此之外,还需在dubbo-zookeeper-consumer 和 dubbo-zookeeper-provider 的 pom.xml 引入dubbo、zookeeper相关依赖:

        <dependency>
            <groupId>io.dubbo.springboot</groupId>
            <artifactId>spring-boot-starter-dubbo</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.14</version>
        </dependency>

接下来是代码:

dubbo-zookeeper-service 接口代码:

package com.example.service;

public interface DubboService {

    String getData(String name);
}

dubbo-zookeeper-provider 代码:

package com.example.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.example.service.DubboService;

@Service  // 注意,这里的service注解为dubbo下的
public class DubboServiceImpl implements DubboService {
    @Override
    public String getData(String name) {
        return "hello:"+name;
    }
}

dubbo-zookeeper-consumer 代码:

package com.example.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.example.service.DubboService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
public class Consumer {
    //这里必须用 dubbo 的 @Reference 注解
    @Reference
    private DubboService dubboService;

    @RequestMapping("/getInfo/{name}")
    public Map getInfo(@PathVariable String name){
        Map<String, Object> map = new HashMap<>();
        String res = dubboService.getData(name);
        map.put("success",res);
        System.out.println("result:" + res + ",调用成功!!!!!!!!");
        return map;
    }

}

最后是配置文件application.properties

服务提供方provider:

server.port=8081

########## dubbo 生产者配置 begin ##########
# 服务名称
spring.dubbo.application.name=test-provider
# 注册中心
spring.dubbo.registry.address=zookeeper://192.168.1.102:2181
# dubbo 协议
spring.dubbo.protocol.name=dubbo
# 端口
srping.dubbo.protocol.port=12345
# 声明需要暴露的服务接口
spring.dubbo.scan=com.example
########## dubbo 生产者配置 end ##########

服务消费方consumer:

server.port=8082


########## dubbo 消费者配置 begin ##########
# 服务名称
spring.dubbo.application.name=test-consumer
# 注册中心
spring.dubbo.registry.address=zookeeper://192.168.1.102:2181
# 告诉注册中心我需要什么服务
spring.dubbo.scan=com.example
########## dubbo 消费者配置 end ##########

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值