当前位置: 首页 > wzjs >正文

做网站技术方法有seo搜索优化培训

做网站技术方法有,seo搜索优化培训,兰州市最新疫情,网站效果图用什么软件做Spring Boot 读取 ZooKeeper (ZK) 属性的总结指南,涵盖配置定义、绑定、初始化和使用: 1. 在配置文件中定义 ZK 属性 在 application.properties 或 application.yml 中添加 ZK 相关配置: application.properties # 单源配置示例 zookeep…

Spring Boot 读取 ZooKeeper (ZK) 属性的总结指南,涵盖配置定义、绑定、初始化和使用:

1. 在配置文件中定义 ZK 属性

application.propertiesapplication.yml 中添加 ZK 相关配置:

application.properties
# 单源配置示例
zookeeper.source.default.rootnode=/democonfig
zookeeper.source.default.servers=192.168.124.1:2181,192.168.124.2:2181
zookeeper.source.default.acls=root:iiot!@#zk$# 多源配置示例(可选)
zookeeper.source.backup.rootnode=/backup-config
zookeeper.source.backup.servers=192.168.124.3:2181
application.yml
zookeeper:source:default:rootnode: /democonfigservers: 192.168.124.1:2181,192.168.124.2:2181acls: root:iiot!@#zk$backup:rootnode: /backup-configservers: 192.168.124.3:2181

2. 创建配置类绑定属性

使用 @ConfigurationProperties 绑定 ZK 配置:

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Map;@Component
@ConfigurationProperties(prefix = "zookeeper")
@Getter
@Setter
public class ZookeeperConfig {private Map<String, SourceProperties> source = new HashMap<>();@Getter@Setterpublic static class SourceProperties {private String rootnode;private String servers;private String acls;}
}

3. 初始化 ZK 客户端

在 Spring 容器中初始化 ZK 客户端,确保配置已注入:

import org.apache.zookeeper.ZooKeeper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;@Component
public class ZookeeperClient {private static final int SESSION_TIMEOUT = 5000;private final ZooKeeper zooKeeper;@Autowiredpublic ZookeeperClient(ZookeeperConfig zookeeperConfig) {try {// 获取默认源配置ZookeeperConfig.SourceProperties source = zookeeperConfig.getSource().get("default");if (source == null) {throw new IllegalArgumentException("ZooKeeper source 'default' not configured");}this.zooKeeper = new ZooKeeper(source.getServers(),SESSION_TIMEOUT,null);} catch (IOException e) {throw new RuntimeException("Failed to connect to ZooKeeper", e);}}public ZooKeeper getZooKeeper() {return zooKeeper;}
}

4. 使用配置属性

在任意 Spring Bean 中注入 ZookeeperConfigZookeeperClient,并读取属性:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class MyService {@Autowiredprivate ZookeeperConfig zookeeperConfig;@Autowiredprivate ZookeeperClient zookeeperClient;public void printZkConfig() {// 直接读取配置ZookeeperConfig.SourceProperties source = zookeeperConfig.getSource().get("default");System.out.println("ZK Root Node: " + source.getRootnode());System.out.println("ZK Servers: " + source.getServers());// 通过客户端使用 ZK 连接ZooKeeper zk = zookeeperClient.getZooKeeper();System.out.println("ZK Session ID: " + zk.getSessionId());}
}

5. 多源配置支持

如果需要切换不同的 ZK 源(如 defaultbackup),可扩展 ZookeeperClient

@Component
public class ZookeeperClient {private final Map<String, ZooKeeper> clients = new HashMap<>();@Autowiredpublic ZookeeperClient(ZookeeperConfig zookeeperConfig) {zookeeperConfig.getSource().forEach((name, config) -> {try {clients.put(name, new ZooKeeper(config.getServers(),SESSION_TIMEOUT,null));} catch (IOException e) {throw new RuntimeException("Failed to connect to ZooKeeper source: " + name, e);}});}public ZooKeeper getClient(String sourceName) {return clients.getOrDefault(sourceName, clients.get("default"));}
}

6. 注意事项

  1. 配置文件路径:确保 application.propertiesapplication.yml 在类路径下(src/main/resources)。
  2. 属性键命名规则
    • 使用 kebab-case(如 zookeeper.source.default.servers)。
    • 绑定到 @ConfigurationProperties 时,自动转换为驼峰命名(如 source.default.serverssource.get("default").getServers())。
  3. 优先级
    • 系统属性(-D 参数) > 配置文件 > 代码默认值。
  4. 异常处理:在 ZK 客户端初始化时捕获 IOException,并提供友好的错误提示。
  5. 单例与依赖注入:避免在 Spring 容器初始化前手动创建 ZookeeperClient(如在 main 方法中),应通过 @Autowired 注入。

对比:传统属性读取 vs Spring Boot 原生方式

方式优点缺点
传统 PropertyConfig简单直接,无需 Spring 依赖不支持自动刷新、类型安全、配置校验
Spring Boot @ConfigurationProperties类型安全、支持校验、自动刷新(需配置)需要定义配置类,学习成本略高

通过以上步骤,你可以在 Spring Boot 中优雅地读取和管理 ZooKeeper 的配置属性。

http://www.dtcms.com/wzjs/229248.html

相关文章:

  • 长江证券官方网站下载crm系统网站
  • 西安php网站建设站长分析工具
  • 数码港 太原网站开发公司谷歌浏览器免费入口
  • 防腐木用什么名字做网站网页设计大作业
  • 报价网站制作武汉大学人民医院怎么样
  • 定制版网站建设费用谷歌代理
  • 找百度公司做网站怎么样google关键词搜索量
  • 做水印的网站百度网页版登录首页
  • 网站建设方案书应急处置方案seo排名赚app多久了
  • wordpress站点管理今日国内新闻大事20条
  • 做网站怎么收集资料产品推广方案怎么做
  • 做地方网站论坛赚钱百度快照是什么意思?
  • 常州个人做网站网站优化网络推广seo
  • 做网站的公司叫什么问题今日国际新闻10条
  • 网站检索功能怎么做最靠谱的十大教育机构
  • wordpress 慢途网主题seo产品是什么意思
  • 网站底部备案网站新站整站排名
  • 南通宏仁建设工程有限公司招聘网站怎么给自己的公司建立网站
  • 如何管理网站域名外贸公司一般怎么找客户
  • wordpress计划本东莞seo报价
  • 网站做视频一个月有多少钱收入天津seo数据监控
  • 宁夏银川做网站的公司实体店营销策划方案
  • 文成网站建设微平台推广
  • 网站建设管理理论网络营销图片素材
  • 石家庄规划建设局网站关键词排名代发
  • 做网站价格和配置免费推广app
  • 做明星个人资料网站爱站网长尾关键词
  • 深圳企业网站制作公司查询国际军事新闻
  • 怎么做购物平台网站seo搜索引擎优化简历
  • 帮妈妈做家务作文网站seo优化师培训