Netflix开源类库archaius(一)概述

微服务配置组件变色龙Archaius 介绍 如果我们要设计开发一套微服务基础架构,大家觉得哪个组件是最基础的?基于多年互联网分布式系统的实战经验,我的回答是配置中心以及配套的客户端。之前我在极客时间上的课程《微服务架构和实践160讲》中,已经深度剖析了携程开源的Apollo配置中心,Apollo是自带客户端的,它的客户端不错很灵活,但是实际上Netflix也开源了一个叫变色龙Archaius的配置中心客户端,而且Archaius可以... 阅读详情

[+]

archaius是什么,能做什么?

archaius是Netflix公司开源项目之一,基于java的配置管理类库,主要用于多配置存储的动态获取。主要功能是对apache common configuration类库的扩展。在云平台开发中可以将其用作分布式配置管理依赖构件。同时,它有如下一些特性:

  • 动态类型化属性
  • 高效和线程安全的配置操作
  • 配置改变时的回调机制
  • jmx
  • 组合配置(核心内容)

At the heart of Archaius is the concept of a Composite Configuration which can hold one or more Configurations. Each Configuration can be sourced from a Configuration Source such as: JDBC, REST, .properties file etc. Configuration Sources can optionally be polled at runtime for changes (In the above diagram, the Persisted DB Configuration Source; an RDBMS containing properties in a table, is polled every so often for changes).

The final value of a property is determined based on the top most Configuration that contains that property. i.e. If a property is present in multiple configurations, the actual value seen by the application will be the value that is present in the topmost slot in the hierarchy of Configurations. The hierarchy can be configured.

动态属性(Dynamic properties)

String prop = System.getProperty("myProperty");
int x = DEFAULT_VALUE;
try {
     x = Integer.parseInt(prop);
} catch (NumberFormatException e) {
    // handle format issues
}
myMethod(x);
// ...
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

更简洁的方式

DynamicIntProperty prop = 
    DynamicPropertyFactory.getInstance().getIntProperty("myProperty", DEFAULT_VALUE);
// prop.get() may change value at runtime
myMethod(prop.get());
   
  • 1
  • 2
  • 3
  • 4

同时,我们可以加入事件回调

prop.addCallback(new Runnable() {
    public void run() {
        // ...
    }
});
   
  • 1
  • 2
  • 3
  • 4
  • 5

动态属性如何实现动态,轮询框架

使用属性来源和定时器进行轮询

PolledConfigurationSource source = createMyOwnSource();
AbstractPollingScheduler scheduler = createMyOwnScheduler();
ConfigurationManager.install(new DynamicConfiguration(source, scheduler));
   
  • 1
  • 2
  • 3

目前框架核心默认实现了两种来源,JDBCConfigurationSource、URLConfigurationSource

发布上下文(Deployment context)

比如应用程序需要读取一个数据库配置文件database-*.properties,但是*可能是prod和test,我们要从中选一个,这时需要咨询发布上下文,我们可以调用发布上下文的一个方法DeploymentContext.getDeploymentEnvironment(),然后我们就可以取得实际的数据库配置文件database-${environment}.properties

Deployment context properties can be used in many ways. Archaius uses deployment context to load cascaded configuration files. Here is the use case:

Application defines a set of default properties 
At runtime, those properties should be overridden by deployment context specific values. 
For example, an application has a configuration file database.properties, which contains default set of database properties. It has two other properties file

database-prod.properties, which contains overridden values for “prod” environment 
database-test.properties, which contains overridden values for “test” environment 
To load any one of the above file, the ConfigurationManager will consult with DeploymentContext object set with it to determine what environment it is in (through DeploymentContext.getDeploymentEnvironment() method), and load additional database-${environment} file to override the default values.

高效和线程安全的配置

框架提供了高效和线程安全的config(apache common configuration),比如:ConcurrentMapConfiguration、ConcurrentCompositeConfiguration,支持高并发和组合配置

参考文献

https://github.com/Netflix/archaius

https://github.com/Netflix/archaius/wiki

http://www.tuicool.com/articles/uQRn6f

http://commons.apache.org/proper/commons-configuration/

http://commons.apache.org/proper/commons-configuration/userguide_v1.10/user_guide.html

样例附件

因没找到上传文件的地方,暂时不上传。

【微服务技术专题】Netflix动态化配置服务-微服务配置组件变色龙Archaius 前提介绍 如果要设计开发一套微服务基础架构,参数化配置是一个非常重要的点,而Netflix也开源了一个叫变色龙Archaius的配置中心客户端,而且Archaius可以说是比其他客户端具备更多生产级特性,也更灵活。 在NetflixOSS微服务技术栈中,几乎所有的其它组件(例如Zuul, Hystrix, Eureka, Ribbon等)都依赖于Archaius,可以说理解Archaius是理解和使用Netflix其它微服务组件的基础。 Archaius是什么 Netflix Arch 阅读详情

相关推荐

[享学Archaius] 一、初识Archaius的简单使用及高级使用

Archaius是一个配置管理库,其重点是来自多个配置存储的动态属性。它包括一组用于Netflix的Java配置管理API。它主要实现为`Apache Commons Configuration`库的扩展。提供的主要功能有: 1. 动态、类型属性 2. 高吞吐量和线程安全的配置操作 3. 一个轮询框架,允许用户获取对配置源的属性更改 4. ... 5. 对于愿意使用**基于约定的**属性文件位置的应用程序(以及大多数web应用程序),提供开箱即用的**复合配置**(这是强大功能之一),对于符合配置官网给了一

架构师:通透,才能写出好代码! 4068

JDBCConfigurationSourceTest

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34402090的博客 271

手把手教你用Matlab/Simulink搭建PMSM的SMO无感FOC仿真(附相位补偿与离散化代码)

本文详细介绍了基于滑模观测器(SMO)的永磁同步电机(PMSM)无传感器FOC控制方法,通过Matlab/Simulink平台实现从理论到实践的完整流程。内容涵盖SMO核心原理、离散化处理、转子位置估算与相位补偿技术,以及双闭环控制系统搭建,为工程师提供了一套完整的无传感器控制解决方案。

weixin_27038245的博客 254

SILE Typesetter 部署指南:在 Linux 系统上快速搭建排版环境

SILE Typesetter(Simon’s Improved Layout Engine)是一款强大的排版引擎,能够帮助用户轻松创建专业的文档布局。本指南将详细介绍如何在 Linux 系统上快速部署 SILE Typesetter,让你迅速掌握这一高效排版工具。 ## 准备工作:安装必要依赖 在开始部署 SILE Typesetter 之前,需要确保系统中安装了必要的依赖包。不同的 Lin

gitblog_00477的博客 539

AMD显卡跑MiniMax H3提速30%:SageAttention ROCm适配全记录

在Transformer架构的视频生成模型中,注意力计算往往是性能瓶颈,尤其当显存资源受限时,低精度量化与内核优化成为关键突破口。SageAttention通过将QK^T矩阵乘法量化为INT8,并以FP16/INT4表达注意力概率矩阵,在保证画质的前提下显著降低访存与计算开销,相比传统FlashAttention具备更高速度上限。这一技术价值在本地部署场景尤为突出——当用户使用非NVIDIA显卡运行大型视频模型时,通用优化库常因依赖CUDA而失效。本文聚焦AMD ROCm平台下的MiniMax H3视频生成

weixin_32238157的博客 282

雷达系统仿真——非相参累积和相参累积检测

非相参累积和相参累积检测 在雷达回波检测中,在特殊情况下,才会根据单个脉冲来进行检测判决。通常,雷达会从每个目标接收几个到几百个成串脉冲,在做出判决之前,要先对脉冲串进行处理。对脉冲串进行处理的方法有5种: 相参累积(Coherent Integration); 非相参累积(Nocoherent Integration); 二进制累积; 累计检测; 反馈累积器。 1 非相参累积 也叫“检波后累积”,或者“视频累积”(Video Integration),比检波前累积更容易完成,因为不需要保存回波的相位。

little_soldier的专栏 1万+

Netflix的archaius

archaiusintropombasicsconfig.properties overridemore configurations and overriding intro archaius是Netflix oss(open source software)的配置核心。它有很强大的功能,可以读配置文件的配置,系统的配置,还有zookeeper的配置等等的。 archaius原意是一种变色龙,那么含义就是根据环境的不同可以改变配置。 我们会讲一下它的基本用法和各个配置的覆盖。 pom 各种依赖冲突把我折腾

weixin_43810802的博客 782

Odoo 入门 | 什么是 Odoo?

Odoo是一套全球开源的ERP/CRM系统,最初的名字为TinyERP,08年5月之后称之为OpenERP,之后又改为Odoo。

洛阳泰山的博客 6208

Netflix开源类库Archaius

1、Archaius是什么? Archaius实际上是对Apache Common Configuration Library的一个封装和扩展,提供了一组基于Java的配置API,主要的特性包括: 配置可动态调整 配置支持类型(Int、Long、Boolean等) 高性能和线程安全 提供一个拉(pulling)配置的框架,可以从配置源动态拉取变更的配置 支持回调(callback)机制,在配置变更时自动调用 支持JMX MBean,可以通过JConsole查看配置和修改配置 Achaius的核心是一个

hxt的博客 1208

【网络与爬虫 61】移动端App爬虫终极指南:Android-iOS应用数据提取黑科技全解析

本文全面解析移动端App爬虫技术,涵盖Android和iOS两大平台的数据提取方法。从基础的网络抓包到高级的代码注入,从自动化测试框架到反调试技术绕过,为开发者提供移动端数据采集的完整解决方案和实战经验。

熵数实验室 3027

UNet 改进(39):结合残差连接与CBAM注意力机制的unet模型

本文提出了一种改进的UNet架构,通过融合残差连接和CBAM注意力机制来增强医学图像分割性能。该网络保留UNet的U形结构,但将基础模块替换为ResidualBlock和CBAM的组合:残差块通过快捷连接解决梯度消失问题,CBAM模块结合通道和空间注意力机制突出重要特征。整体架构采用编码器-解码器设计,包含5个下采样和上采样阶段,通过跳跃连接融合多尺度特征。实验表明,这种改进显著提升了原始UNet的性能,特别适用于需要精细边界的医学图像分割任务。

2401_82355416的博客 1025

spring cloud 系列之Netflix Archaius

在之前的系列讲过Hystrix的核心实现源码,多次提及到Archaius(Netflix公司开源项目之一),其实Netflix的所有组件都是通过它获取配置。Archaius主要用于多配置存储的动态获取,基于对apache common configuration类库的扩展。本文基于hystrix-core1.4.26(最新的1.5.18会有些差别)。 //比如Hystrix有使用 publi...

布道 2378

python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法

出现该Bug的原因主要是 账号密码无法登录,但原先使用该代码测试qq或者163的时候是可以通过的!问题在于各个公司邮件所处理的代码方式不一样

码农研究僧的博客 3503

使用Netflix Archaius进行配置管理

在这篇文章中,我们将讨论Archaius,一个非常酷且易于使用的Netflix配置管理工具。 通常我们都是如何读取配置变量的呢? 一种是使用System.getProperty()方法获得JVM系统属性。例如下面这样: String prop = System.getProperty("myProperty"); int x = DEFAULT_VALUE; try { x = Integer...

王浩的技术博客 4995

PID、模糊PID、SkyHook、LQR、H2/H∞、ADRC等悬架控制合集

PID、模糊PID、SkyHook、LQR、H2/H∞等悬架控制合集

Mr.邹的博客 2013

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

第十三篇: SpringBoot整合Netflix Archaius实现配置管理

Archaius是什么?Archaius是Netflix公司开源项目之一,基于java的配置管理类库,主要用于多配置存储的动态获取。主要功能是对apache common configuration类库的扩展。在云平台开发中可以将其用作分布式配置管理依赖构件。同时,它有如下一些特性:动态类型化属性高效和线程安全的配置操作配置改变时的回调机制轮询框架JMX,通过Jconsole检查和调用操作属性组合...

mzh_cn的博客 9118

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Resolving ‘No URLs Polled‘ Warnings in Netflix Archaius: Configuration Strategies Explained

本文详细解析了Spring Cloud Netflix应用中常见的'No URLs Polled'警告的成因与解决方案。该警告源于Netflix Archaius库的默认动态配置源查找行为,当未找到`config.properties`文件或未设置`archaius.configurationSource.additionalUrls`系统属性时触发。文章提供了三种核心解决策略:通过排除依赖彻底移除Archaius、创建默认配置文件满足其期望,或配置系统属性以启用真正的动态配置轮询功能。

weixin_29213827的博客 380

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【Archaius技术专题】「Netflix原生态」动态化配置服务之微服务配置组件变色龙

如果要设计开发一套微服务基础架构,参数化配置是一个非常重要的点,而Netflix也开源了一个叫变色龙Archaius的配置中心客户端,而且Archaius可以说是比其他客户端具备更多生产级特性,也更灵活。在NetflixOSS微服务技术栈中,几乎所有的其它组件(例如Zuul, Hystrix, Eureka, Ribbon等)都依赖于Archaius,可以说理解Archaius是理解和使用Netflix其它微服务组件的基础。archaius仅允许一个AbstractConfiguration的实现类。

夏壹分享 1153

Netflix 的 RSS 阅读器配方:利用 Netflix 开源组件的实践示例

Netflix 的 RSS 阅读器配方:利用 Netflix 开源组件的实践示例 recipes-rss RSS Reader Recipes that uses several of the Netflix OSS components ...

gitblog_00029的博客 677

Netflix Archaius 分布式配置管理依赖构件

Archaius 配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。 概述archaius是Netflix公司开源项目之一,基于java的配置管理类库,主要用于多配置存储的动态获取。主要功能是对apache common configuration类库的扩展。在云平台开发中可以将其用作分布式配置管理依赖构件。同时,它有如下一些特性: 动态类型化

高广超的博客 2160
上一篇: 微服务:spring-cloud-archaius 起步
下一篇: 使用Spring Cloud Consul实现服务的注册和发现
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值