第三章 Getting Started with the Zookeeper API(开始学习Zookeeper API)【上】

本文介绍如何通过命令行编译并使用Zookeeper,包括设置ZookeeperClassPath、创建会话及实现Watcher监听器的过程。同时提供两种实践方法:命令行编译和使用Eclipse工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:

1、设置Zookeeper ClassPath

为方便命令行编译,我们都知道编译过程需要依赖于第三方jar,这里就是依赖于Zookeeper的jar,一般我们都是依赖IDE进行编译了(常用例如eclipse),今天也尝试一下通过命令行编译java。问题来了,我们怎么知道Zookeeper依赖那些jar,你是否记得bin目录下有zkEnv.cmd文件(window系统下用),这个就是启动客户端和服务端的设置一些变量,当然包括必须要的jar包。可以打开看一下:


可以试一下:(window系统不区分大小写)


2、创建一个Zookeeper会话

构造函数

Zookeeper(String connectString, int sessionTimeout, Watcher watcher)

注释:

  • connectString:所有主机名和端口组成字符串
  • sessionTimeout: 会话超时时间(单位毫秒)在这段时间内没有与服务器交互,服务器会自动关闭会话。
  • watcher: 就是相当于信使,将服务器端的消息状态传递给客户端,Watcher是接口需要具体实现

3、实现一个Watcher(监听器)

public interface Watcher {
    void process(WatchedEvent event);
}
只有一个未实现的方法
import java.io.IOException;

import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;

public class Master implements Watcher{

	ZooKeeper zk;
	String hostPort;
	Master(String hostPort){
		this.hostPort = hostPort;
	}
	void startZK() throws IOException{
		zk = new ZooKeeper(hostPort, 15000, this);
	}
	public void process(WatchedEvent e) {

		System.out.println(e);
	}
	public static void main(String[] args) throws Exception {
		Master m = new Master(args[0]);
		m.startZK();
		Thread.sleep(60000);
	}

}
总结:

  • 1、先实例化一个Watcher,再实例化ZooKeeper,因为Zookeeper实例化之后需要回调Watcher。
  • 2、线程休眠60秒,为可以看很多打印信息,注意只要完成连接,这个线程就是守护线程,也就程序退了,线程还存在。

方法一:

步骤1:首先启动Zookeeper服务器, zkServer.cmd (也就是运行Zookeeper的bin目录的zkServer.cmd文件)


步骤2:通过命令行来编译以上代码,为方便将代码放置在bin目录下



如果一下情况,说明你没有配置日志文件,将log4j.properties复制到配置文件中。

log4j:WARN No appenders could be found for logger
(org.apache.zookeeper.ZooKeeper).
log4j:WARN Please initialize the log4j system properly.
方法二:采用IDE工具(Eclipse)

这里采用的是Maven工程,需要手动引用jar包,当然还有日志文件

<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.10</version>
</dependency>
<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
代码还是不变,可能

然后选择Master右键Run as....配置一下参数就好

总结:如果连接失败之后,不要重新创建新会话,Zookeeper起来之后会自动检测断开连接会话,重试重连。


1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值