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

dubbo+zookeeper安装及快速入门

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

dubbo+zookeeper安装及快速入门

环境安装 zookeeper

下载地址:(https://zookeeper.apache.org/doc/r3.4.14/)

1.运行apache-zookeeper-3.5.6-binbinzkServer.cmd

发现闪退,编辑zkServer.cmd文件末尾添加pause 。这样运行出错就不会退出,会提示错误信息,方便找到原因。

发现缺少zoo.cfg

2.将conf文件夹下面的zoo_sample.cfg复制一份改名为zoo.cfg即可。

注意几个重要位置:

dataDir=./ 临时数据存储的目录(可写相对路径)

clientPort=2181 zookeeper的端口号

3.修改完成后再次启动zkServer.cmd,使用zkCli.cmd测试

ls /:列出zookeeper根下保存的所有节点

输入create –e /aa 123

get /aa:获取/kuangshen节点的值

成功!

dubbo-admin

地址 :https://github.com/apache/dubbo-admin/tree/master

修改dubbo-admin-masterdubbo-admin-serversrcmainresourcesapplication.properties

添加

server.port=7001
spring.velocity.cache=false
spring.velocity.charset=UTF-8
spring.velocity.layout-url=/templates/default.vm
spring.messages.fallback-to-system-locale=false
spring.messages.basename=i18n/message
spring.root.password=root
spring.guest.password=guest

dubbo.registry.address=zookeeper://127.0.0.1:2181

在dubbo-admin-masterdubbo-admin-master文件下运行cmd

进入路径,然后执行mvn clean package -Dmaven.test.skip=true,等待成功

cmd进入dubbo-admin-masterdubbo-admin-distributiontarget

然后执行java -jar dubbo-admin-0.3.0.jar运行发现不行,

**注意,**这里需要先开启zookeeper服务,开启zkServer.cmd,再次执行java -jar dubbo-admin-0.3.0.jar

进入localohst:7071,用户名和密码都是root

springboot集成zookeeper+dubbo开发

创建新的空项目

创建服务端

TicketService.java

public interface TicketService {

    public String getTicket();
}

TicketServiceImpl.java

public class TicketServiceImpl implements TicketService {
    @Override
    public String getTicket() {
        return "《周杰伦演唱会》";
    }
}

创建消费者

public interface UserService {

    //想拿到票provider-server

}

修改服务端端口号为8081,消费者端接口号为8082

如何拿到票呢,首先在provider导入依赖

    
    
        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
       
   

注册服务端配置

# 应用名称
spring.application.name=provider-server
# 应用服务 WEB 访问端口
server.port=8081
#服务应用名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#哪些服务要被注册
dubbo.scan.base-packages=com.liu.service

在TicketServiceImpl开启注解

注意这里的@Service有两个

一般使用一个@Service一个@Component

package com.liu.service;

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

@Service //可以被扫描到,在项目一启动就会自己注册到注册中心
@Component
public class TicketServiceImpl implements TicketService {
    @Override
    public String getTicket() {
        return "《周杰伦演唱会》";
    }
}

启动zookeeper

启动ProviderServerApplication

检验是否启动成功,打开dubbo监控

**注意!**这里有个坑,dubbo和springboot项目会端口抢用,需要在服务者里添加端口

dubbo.protocol.port=20881

再次启动

加载进来了已经

消费者调用

导入zookeeper+dubbo+排除slf4j



    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
        
    

添加消费者配置

# 应用名称
spring.application.name=consumer-server
# 应用服务 WEB 访问端口
server.port=8082
#消费者去哪里拿并且暴露自己名字
dubbo.application.name=consumer-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

使用@Reference远程引用服务者

两种方法,一定义路口相同的路径接口名

创建UserService

package com.liu.service;


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

@Service //放到容器中
public class UserService {

    //想拿到票provider-server
    @Reference
    TicketService tickerService;
    public void buyTicket(){
        String ticket = tickerService.getTicket();
        System.out.println("在注册中心拿到"+ticket);
    }

}

测试类调用

@Autowired
UserService userService;
@Test
void contextLoads() {
    userService.buyTicket();
}

成功

特别注意:

使用dubbo的时候导入注解一定要看清楚是dubbo下的才行

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

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

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