指点成金-最美分享吧

登录

Zookeeper的日志配置

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了Zookeeper的日志配置相关的知识,希望对你有一定的参考价值。

参考技术A zookeeper使用广泛,作为接近于开箱即用的一个服务,其日志的配置貌似没有作得很方便,接下来我们总结下这个日志配置的方法

我们的目的是配置zk的日志产生在我们设定好的目录中。

我们需要将其中的 "-Dzookeeper.log.dir=$ZOO_LOG_DIR" 和 "-Dzookeeper.log.file=$ZOO_LOG_FILE" 去掉。

SpringBoot-整合Dubbo+Zookeeper

文章目录

    • 一、添加依赖和日志配置
      • 1、依赖
      • 2、日志配置
    • 二、Dubbo架构
    • 三、提供者服务
      • 1、编写服务接口
      • 2、提供者服务配置
      • 3、dubbo-admin监控查看服务
    • 四、消费者服务
      • 1、编写消费者使用提供者的方法
      • 2、配置
      • 3、运行主程序查看服务
      • 4、测试类测试远程调用

整合dubbo和zookeeper的时候遇到了各种乱七八糟的错误,分享一下

版本控制

  • SpringBoot2.5.2

一、添加依赖和日志配置

1、依赖

<dependency><groupId>com.github.sgroschupfgroupId><artifactId>zkclientartifactId><version>0.1version><exclusions><exclusion><groupId>org.apache.zookeepergroupId><artifactId>zookeeperartifactId>exclusion>exclusions>dependency><dependency><groupId>org.apache.dubbogroupId><artifactId>dubbo-spring-boot-starterartifactId><version>2.7.8version>dependency><dependency><groupId>org.apache.curatorgroupId><artifactId>curator-frameworkartifactId><version>2.12.0version>dependency><dependency><groupId>org.apache.curatorgroupId><artifactId>curator-recipesartifactId><version>2.12.0version>dependency>

依赖试了狂神那一套报错,然后自己找了很多博客,最后好了,一直报错
不是依赖报错,就是启动报错

注意:

  1. curator依赖一定要添加,现版本zookeeper需要通过curator进行连接
  2. zkclient一定要排除zookeeper,否则会报错

2、日志配置

dubbo和zookeeper默认使用log4j作为日志,在resources目录下创建log4j.properties进行配置

log4j.rootLogger=info,ServerDailyRollingFile,stdoutlog4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.ServerDailyRollingFile.DatePattern="."yyyy-MM-ddlog4j.appender.ServerDailyRollingFile.File=var/log/chinaamc/management-cockpit2.loglog4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p [%c] - %m%nlog4j.appender.ServerDailyRollingFile.Append=truelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d yyyy-MM-dd HH:mm:ss %p [%c] %m%n

二、Dubbo架构


调用关系说明

  • 服务容器负责启动,加载,运行服务提供者。
  • 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

Dubbo 架构具有以下几个特点,分别是连通性、健壮性、伸缩性、以及向未来架构的升级性。

其中注册中心有很多,但是我们这里使用zookeeper,一般也常用这个,因为服务都需要通过网络在注册中心里注册服务以及寻找所需服务,所以反应一般挺慢的

Dubbo官网:架构说明链接

三、提供者服务

目录结构

1、编写服务接口

@DubboService//发布服务@Component//放入容器public class TicketServiceImpl implements TicketService {    @Override    public String getTicket() {        return "跟着狂神学Java";    }}

2、提供者服务配置

服务者需要将提供的服务扫描,交给注册中心

dubbo:  application:    ##1.当前服务名    name:  provider-service  registry:    # TEST环境    ##2.注册中心地址    address: zookeeper://127.0.0.1:2181    protocol: zookeeper    check: false  ##3.扫描需要注册的服务  scan:    base-packages: com.chime.proper.serviceserver:  port: 8001

注意:address的ip //不要写成/

3、dubbo-admin监控查看服务

  1. 打开zookeeper服务:zkServer.cmd
  2. java -jar xxx.jar:运行dubbo-admin监控jar包
  3. 然后就可以访问 localhost:7001查看服务了(这个服务要部署,运行主程序)

服务成功注册

四、消费者服务

项目目录

1、编写消费者使用提供者的方法

@Servicepublic class BuyTicketService { //远程引用指定服务,可通过全类名进行匹配,可以写模仿提供者服务的服务结构编写一个假接口给他 //真正生效的是提供者服务的接口    @DubboReference    TicketService ticketService;    public String buyTicket(){        return "在注册中心买到了"+ticketService.getTicket();    }}

2、配置

server.port=8002#服务名dubbo.application.name=consumer-service#注册中心地址dubbo.registry.address=zookeeper://127.0.0.1:2181

3、运行主程序查看服务

4、测试类测试远程调用

@SpringBootTestclass ConsumerServiceApplicationTests {@AutowiredBuyTicketService buyTicketService;@Testvoid contextLoads() {System.out.println(buyTicketService.buyTicket());}}

两个项目直接调用服务

以上是关于Zookeeper的日志配置的主要内容,如果未能解决你的问题,请参考以下文章