windows idea 整合dubbo zookeeper bug记录

这篇具有很好参考价值的文章主要介绍了windows idea 整合dubbo zookeeper bug记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先说两句题外话

激动地心!颤抖的手!恨不得在此刻,半夜两点仰天长啸!我特码运行起来辣!!!!

别问,问就是一个小问题debug8个小时精神恍惚瞎猫碰上死耗子把问题解决了,只能说,麻了

回归正题,接下来简述一下springboot整合zookeeper 和 dubbo的流程和途中碰到问题

zookeeper环境搭建

 首先去官网下载zookeeper压缩包,我这里使用的是3.4.14版本的

windows idea 整合dubbo zookeeper bug记录,java-zookeeper,spring boot,dubbo

下载完毕解压之后,点进去找到conf目录,里面有个zoo.conf文件,打开,修改其中的dataDir和dataLogDir路径,是zookeeper的数据存储和日志存储相关的配置参数。

windows idea 整合dubbo zookeeper bug记录,java-zookeeper,spring boot,dubbo

修改后再找到bin目录,里面有zkCli.cmd和zkServer.cmd,前者是zookeeper的客户端,后者是服务端,后面配置好了dubbo再讲这个,至此zookeeper的环境搭建就完成了

引入dubbo

刚开始弄这个分布式的还没搞懂什么是父项目,研究了一下原来和eclipse里面的包中包再放项目差不多,就是新建项目选择一个空项目,这个就是父项目。

(这里要有一个父项目的目的一是为了在pom里设置dubbo的依赖,可以让多个子项目全局使用,不用额外引用。二是为了各个子项目之间的引用更加方便。)

父项目需要引入的依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>
        <!-- dubbo -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>
        <!-- zookeeper -->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.8</version>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
    </dependencies>

然后在空项目的根目录那里点击新建,选择新模块(Module),这里就和正常创建一个项目一样了。选择你需要的项目的类型,我们这里是简单的做一个微服务,所以也都选择一个空项目

这里有一个老版本关于log4j12和slf4j的坑(不引入的话我会报错,虽然不影响运行),引入依赖来解决(在 zookeeper 的依赖中排除了 slf4j-log4j12。这是为了避免与项目中可能使用的 SLF4J(Simple Logging Facade for Java)和 Log4j 版本发生冲突。这样可以确保项目使用的 SLF4J 和 Log4j 版本与 ZooKeeper 的版本兼容。)

<!-- 引入zookeeper -->
<dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-framework</artifactId>
   <version>2.12.0</version>
</dependency>
<dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-recipes</artifactId>
   <version>2.12.0</version>
</dependency>
<dependency>
   <groupId>org.apache.zookeeper</groupId>
   <artifactId>zookeeper</artifactId>
   <version>3.4.14</version>
   <!--排除这个slf4j-log4j12-->
   <exclusions>
       <exclusion>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
       </exclusion>
   </exclusions>
</dependency>

环境配置好了,现在注入代码

第一个子项目:api

里面只需要放置一个接口就可以,如图

windows idea 整合dubbo zookeeper bug记录,java-zookeeper,spring boot,dubbo

第二个子项目:服务消费者(comsumer)

新建两个类和一个application即可

windows idea 整合dubbo zookeeper bug记录,java-zookeeper,spring boot,dubbo

创建一个控制器

切记使用dubbo的@reference注解

package com.example.controller;

import api.HelloService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @com.alibaba.dubbo.config.annotation.Reference
    private HelloService helloService;

    @RequestMapping("sayHello")
    public String sayHello(String message){
        return helloService.sayHello(message);
    }
}

启动类

package com.example;

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

@SpringBootApplication(scanBasePackages = "com.example.controller")
@EnableDubboConfig
public class consumerMainApplication {

    public static void main(String[] args) {
        SpringApplication.run(consumerMainApplication.class,args);
        System.out.println("=============this is consumer===============");
    }
}

application环境配置

server:
  port: 9001
dubbo:
  application:
    # 服务名称,随便写写
    name: server-consumer
    # zookeeper地址,用于向其注册服务
  registry:
    protocol: zookeeper
    address: zookeeper://127.0.0.1:2181
#要对照自己zookeeper的注册地址来写,我这里zookeeper的地址是2181
  scan:
    base-packages: com.example.controller

第三个子项目:服务提供者(provider)

还是只需要写两个类和一个配置

windows idea 整合dubbo zookeeper bug记录,java-zookeeper,spring boot,dubbo

实现接口

这里的service切记依赖dubbo的Service

package com.example.service;

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

@Service(interfaceClass = HelloService.class)
@Component
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello(String message) {
        return "hello:"+message;
    }
}

启动类

package com.example;

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

@SpringBootApplication(scanBasePackages = "com.example.controller")
@EnableDubboConfig
public class consumerMainApplication {

    public static void main(String[] args) {
        SpringApplication.run(consumerMainApplication.class,args);
        System.out.println("=============this is consumer===============");
    }
}

application配置

server:
  port: 8080
dubbo:
  application:
    name: server-provider
  registry:
    protocol: zookeeper
    address: zookeeper://127.0.0.1:2181
#    group: api.HelloService/providers  # 指定注册到的分组,这里不需要,这是之前为解决bug做出的尝试
  protocol:
    name: dubbo
    port: 7777
  scan:
    base-packages: com.example.service

Idea的布置大概就是这些,然后就是微服务,启动!

首先启动上面zookeeper提到的zkServer.cmd,然后启动dubbo -admin,(不启动zkServer的话admin会死循环报错),通过admin留下的端口去浏览器访问“localhost:端口号”,输入账号密码(一般都是root),即可通过admin客户端查看有哪些微服务了

咱们这个流程走下来启动应该是这个效果

windows idea 整合dubbo zookeeper bug记录,java-zookeeper,spring boot,dubbo

windows idea 整合dubbo zookeeper bug记录,java-zookeeper,spring boot,dubbo

(最后切记把启动类放在com.example或者更深层,6个小时的血与泪啊5555,虽然知识很简单,但是让不知道的人去了是真无从下手。因为最后在admin里面看到自己的消费者信息,找不到提供者信息,把provider和cosumer的demo和配置一行一行的看,去zkCli里面把zookeeper的注册信息都看麻了,最后找到真是provider没有注册到,但不知道原理。真是在网上把别人布置微服务的坑都看了一遍硬是没反应过来自己问题在哪儿,已经走投无路开摆了调了一下结构,居然神奇的运行起来了,这也是基础不牢固,经过今晚的这个折磨,感觉这个启动类的位置知识俺能记一辈子)

                                                                                                    -----被zookeeper折磨后的随手一记文章来源地址https://www.toymoban.com/news/detail-764213.html

到了这里,关于windows idea 整合dubbo zookeeper bug记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记录 Dubbo+Zookeeper 学习Demo

    结合Dubbo官网学习如何完成SpringBoot+Dubbo+Zookeeper集成的学习,本次采用环境如下: 开发工具:IntelliJ IDEA Community Edition 2023.2.5 (IDEA社区版 2023.2.5) 开发环境:JDK 1.8,Windows 11 Dubbo 3.2.0-beta.4,SpringBoot 2.7.8, Zookeeper 3.8.4 辅助程序:dubbo-admin-develop 下载地址:https://zookeeper.apache.

    2024年03月15日
    浏览(61)
  • SpringBoot整合Dubbo和Zookeeper分布式服务框架使用的入门项目实例

    Dubbo是一个 分布式服务框架 ,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求。其本质上是个远程服务调用

    2024年01月21日
    浏览(51)
  • 【记录Bug】IDEA提示“Error:java: 错误: 不支持发行版本 17”

    开发工具:IDea 后端框架:SpringBoot 在rebuild或运行项目时提示“Error:java: 错误: 不支持发行版本 17”。 这个错误表明你的IDEA版本不支持使用Java 17。你需要将项目编译运行环境设置为更低版本的Java,或者升级你的IDEA版本以支持Java 17。 构建项目时选择了高版本的Java,而IDea的版

    2024年02月08日
    浏览(62)
  • Windows下安装Zookeeper(图文记录详细步骤,手把手包安装成功)

    Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护。Zookeeper 可以用于实现分布式系统中常见的发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。它具有以下特性: 顺序一致性:从一个客户端发起的事务请

    2024年02月08日
    浏览(56)
  • Dubbo+Zookeeper使用_dubbo zookeeper配置

    } ?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"? 4.0.0 server: port: 8081 spring: application: name: dubbo-consumer dubbo: registry: address: zookeeper://localhost:2181 # 连接到注册中心 protocol: name: dubbo # 指定的协议 port: 28081 # 指定的端口 scan: basePackages: com.hzy.controller # 接口列表和接口中的方法列表 server: port: 8082 spring:

    2024年04月15日
    浏览(34)
  • 记录一个IDEA中使用GIT的严重BUG,导致测试分支合并到主分支,以及代码恢复解决方案

    在做项目时遇到了一个问题,就是不知道什么操作,无缘无故把test分支代码合并到了master,导致花了好长时间去恢复master分支的代码,所以研究了一下,到底是什么原因导致的这个问题 PS: 后来分析出来根本原因,确定这确实是IDEA的一个BUG,在下面会有详细描述 当我们在test分支时,

    2023年04月14日
    浏览(74)
  • 【精简】2023年最新Windows安装GPU版本的tensorflow(含bug记录及解决)

    1、cmd进入命令行,输入: -n:自定义的虚拟环境名,我的虚拟环境为py38; 后选定python版本,选择python 3.8; 1、激活已创建好的虚拟环境,命令行输入: 2、命令一:用于检查当前的cuda版本号 3、命令二:用于检查当前的cudnn版本号 1、选择最终的cuda和cudnn搭配组合: 同时,G

    2023年04月16日
    浏览(34)
  • 【bug记录】-Linux与Windows中的文件换行符不同导致的格式问题

    当你从Windows移动文件到Linux系统时,可能会遇到文件格式问题。这通常涉及到文本文件的换行符(line endings)格式。 在Windows中,换行符是\\\"rn\\\"(Carriage Return + Line Feed) 而在Linux中,换行符是\\\"n\\\"(Line Feed)。 解决这个问题的方法之一是使用工具来转换文本文件的换行符格式。

    2024年02月04日
    浏览(48)
  • 记录Bug:idea连接数据库报错DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045]

    报错信息: DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045] Access denied for user \\\'root\\\'@\\\'localhost\\\' (using password: YES). 报错原因: Mysql数据库用户的密码不正确。 解决方法: 修改数据库密码。

    2024年02月03日
    浏览(58)
  • Dubbo+Zookeeper使用

    说明:Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。 本文介绍Dubbo的简单使用及一些Dubbo功能特性,注册中心使用的是ZooKeeper,可在官网下载。 (另外,在阿里巴巴发出的《微服务治理技术白皮

    2024年02月14日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包