
享学Archaius
Netflix Archaius 是一个功能强大的配置管理库,它是几乎所有的Netflix OSS组件的基石,所以对它的理解具有非常重要的意义,否则举步维艰。本系列教程追本溯源,从最底层的Commons Configuration到原生Archaius,再到和Spring Cloud的高级整合使用。
YourBatman
也许当我老了,也一样写代码。不为别的,只为了爱好。
展开
-
[享学Archaius] 十七、Spring的Environment是如何整合进Archaius从而实现全局共享的?
上篇文章主要介绍了`Archaius`和`Spring Cloud`的整合工程`spring-cloud-starter-netflix-archaius`的内容,本文将继续,会将站在**实用的角度**,深度分析`ArchaiusAutoConfiguration`该自动配置类到底做了哪些事,以及最后给出具体代码示例来体会一把Spring环境抽象`Enviroment`和`Archaius`整合的效果。你可带着疑问阅读本文:为何Ribbon、Hystrix明明是使用`Archaius`管理自己的配置,而原创 2020-04-18 23:15:48 · 2328 阅读 · 1 评论 -
[享学Archaius] 二、Apache Commons Configuration:你身边的配置管理专家
为了给讲解Netflix的`Archaius`做铺垫,本专栏首当其冲的先拿`Apache Commons Configuration`开刷,因为它是基础,不掌握它有点寸步难行之感。`Commons Configuration`软件库提供了一个**通用的配置接口**,该接口使Java应用程序可以从**各种来源**读取配置数据。支持从一下来源来读取配置:1. **Properties属性文件**2. XML文件3. ~~Windows INI文件~~ 4. ~~属性列表文件(plist)~~ 5.原创 2020-02-17 20:32:30 · 3449 阅读 · 0 评论 -
[享学Archaius] 一、初识Archaius的简单使用及高级使用
Archaius是一个配置管理库,其重点是来自多个配置存储的动态属性。它包括一组用于Netflix的Java配置管理API。它主要实现为`Apache Commons Configuration`库的扩展。提供的主要功能有:1. 动态、类型属性2. 高吞吐量和线程安全的配置操作3. 一个轮询框架,允许用户获取对配置源的属性更改4. ...5. 对于愿意使用**基于约定的**属性文件位置的应用程序(以及大多数web应用程序),提供开箱即用的**复合配置**(这是强大功能之一),对于符合配置官网给了一原创 2020-04-16 10:52:58 · 3556 阅读 · 0 评论 -
[享学Archaius] 十六、Archaius和Spring Cloud的集成:spring-cloud-starter-netflix-archaius
截止到上篇文章,其实关于`Netflix Archaius`的内容都已经讲述完了,理论上你现在应该可以没有障碍的使用它了。本来本文我是没有打算去写的,因为掌握了核心后,去集成任何技术都是不算太难的一件事。但是,但是,但是,奈何`Spring Boot/Cloud`如此之火,现在一门技术如果不谈和它的整合,都不好意思说自己出道了。基于此,本文就接着介绍下`Netflix Archaius`它和Spring Cloud的整合工程:`spring-cloud-starter-netflix-archaiu原创 2020-02-25 18:14:16 · 1785 阅读 · 0 评论 -
[享学Archaius] 十五、Archaius如何对多环境、多区域、多云部署提供配置支持?
在当下日益复杂的互联网云环境中,对应用APP的**灵活部署**要求越来越高:同样的一份代码在**不同环境、不同区域...**需要有不同表现(逻辑不同、性能不同...),同时高可用方面的**多机房、多云灾备**亦体现出了部署的复杂性。通过前几篇文章关于`Netflix Archaius`的学习,相信你已经完全掌握了它是如何处理组合配置、如何让属性动态化的。在它的属性抽象`com.netflix.config.Property`中,有一个非常重要的子类`DynamicContextualProperty`原创 2020-02-24 20:46:22 · 3589 阅读 · 3 评论 -
[享学Archaius] 十四、Archaius属性抽象Property和PropertyWrapper详解
上篇文章介绍了`Archaius`动态属性`DynamicProperty`,并且通过`DynamicPropertyFactory`间接的体验了一把它天生的动态性。在案例过程中,你可能已经发现,操作属性时实际与使用者打交道的并不是`DynamicProperty`或者其子类,而是诸如`DynamicIntProperty、DynamicStringProperty`这类API。那么本文将一起进入`Netflix Archaius`的属性抽象:`com.netflix.config.Property`,原创 2020-02-24 16:12:36 · 1281 阅读 · 0 评论 -
[享学Archaius] 十三、Archaius动态属性DynamicProperty原理详解(重要)
上篇文章了解到了`Netflix Archaius`它提供的两个支持类:配置管理器`ConfigurationManager`和动态属性支持`DynamicPropertySupport`。特别是`DynamicPropertySupport`它提供了对动态属性的支持,原理便是通过`PropertyListener`来完成。本文将深入了解`Netflix Archaius`动态属性相关内容,它用`DynamicProperty`表示一个动态k-v属性值,再结合`DynamicPropertySuppor原创 2020-02-23 15:20:00 · 2918 阅读 · 3 评论 -
[享学Archaius] 十二、Archaius配置管理器ConfigurationManager和动态属性支持DynamicPropertySupport
上面文章介绍了`Netflix Archaius`对`Commons Configuration`核心API `Configuration`的扩展实现,知道了`Netflix Archaius`依赖于`Commons Configuration`并且在其基础上做了扩展和增强。本文将继续夯实基础,聊聊它的另外两个核心API:配置管理器`ConfigurationManager`和动态属性支持`DynamicPropertySupport`。原创 2020-02-23 11:16:21 · 1380 阅读 · 0 评论 -
[享学Archaius] 十一、Archaius对Commons Configuration核心API Configuration的扩展实现
上篇文章体验了一把`Netflix Archaius`的使用,感受到了它对配置管理上的便捷性。或许有小伙伴会说,配置管理上它和`Apache Commons Configuration`功能上有点重叠,其实不然。他俩的关系不是功能重叠,而是`Netflix Archaius`是对`Apache Commons Configuration`的一种延伸,并且前者依赖于后者的实现。因此本文将探讨下`Netflix Archaius`它对`Apache Commons configuration`的扩展,在A原创 2020-02-22 22:25:57 · 1008 阅读 · 0 评论 -
[享学Archaius] 十、Archaius配置管理库:初体验及基础API详解
Netflix是一家互联网流媒体播放商,是美国视频巨头,随着Netflix转型为一家云计算公司,它也开始积极参与开源项目,并且提供了众多好用的开源产品,比如耳熟能详的就有:- `Netflix/zuul`:网关- `Netflix/hystrix`:断路器- `Netflix/ribbon`:客户端负载均衡器- `Netflix/archaius`:配置管理- `Netflix/feign`:Http客户端- `Netflix/eureka`:配置中心- `Netflix/conductor`原创 2020-02-22 21:01:26 · 1684 阅读 · 0 评论 -
[享学Archaius] 九、Apache Commons Configuration2.x相较于1.x使用上带来哪些差异?
`Commons Configuration`作为一个优秀的配置管理库,凭借着优秀的设计以及提供了热加载等使用功能,被不少其它组件作为基础配置管理组件使用,流行度较高。从2004年发展至今,它一共有两个大版本:1.x和2.x。这两个大版本之前因为改过包名,并且GAV坐标也不一样,因此他俩:**互不兼容,可以共存**。虽然2.x早已成为主流,但前面解释过1.x版本也有学习的意义,所以避免不了共存的情况。因此本文将从多个方面,站在使用的角度比较两者的诸多不同,让同学们可以同时驾驭。原创 2020-02-21 22:56:25 · 1714 阅读 · 0 评论 -
[享学Archaius] 八、Apache Commons Configuration2.x如何实现文件热加载/热更新?
成功的路上并不拥挤,因为坚持的人不多。能坚持的人不一定有成就,但要想有成就那就必须得坚持。–> 返回专栏总目录 <–代码下载地址:https://github.com/f641385712/netflix-learning目录前言正文总结声明前言正文总结声明原创不易,码字不易,多谢你的点赞、收藏、关注。把本文分享到你的朋友圈是被允许的,但拒绝抄袭。你也可【左边扫码...原创 2020-02-21 21:25:28 · 1516 阅读 · 0 评论 -
[享学Archaius] 七、Apache Commons Configuration2.x快速构建工具Parameters和Configurations
[上篇文章]完整的介绍了`Commons Configuration`的Builder机制,并且辅以示例介绍了如何使用。`Commons Configuration2.x`推荐我们使用Builder去构建一个`Configuration`实例,但奈何实际使用起来着实比较麻烦,怎么破?本文将介绍两个“工具类”:`Parameters`和`Configurations`,分别能够简化你对参数的构建和对Builder构建器创建过程,当然还包含一步到位的直接构建出`Configuration`实例的方法。原创 2020-02-21 00:44:43 · 985 阅读 · 0 评论 -
[享学Archaius] 六、Apache Commons Configuration2.x别样的Builder模式:ConfigurationBuilder
在文初已经知道:`Configuration`是最最最重要的接口,所以构建它的实例自然就非常重要。在1.x时,绝大多数情况下均使用`new`的方式来创建`Configuration`实例,而作为“更时髦”的2.x版本,显然得尽量避免出现`new`关键字,那么怎么办?这就是本文要介绍的Builder模式。`Builder`模式相信大家已经很熟悉了,虽然`ConfigurationBuilder`接口在1.x版本里也存在,但是一般情况下并不使用它。而2.x版本对它进行了全新的设计,并且提供了更多的实用子类原创 2020-02-20 22:50:47 · 996 阅读 · 0 评论 -
[享学Archaius] 五、Apache Commons Configuration2.x文件定位系统FileLocator和FileHandler
上一篇讲述了`Commons Configuration2.x`它全新的事件-监听基础,一方面体会到了相较于1.x的改动之大,另一方面也能感受到2.x在可扩展性方面是有所增强的。2.x作为现行的主流版本,因此本文仍着眼于它。本文将要讲述的是它的**文件定位系统**,其中最重要的两个API是`FileLocator`和`FileHandler`,需要引起关注。第一篇文章就已经介绍了`Commons Configuration`它的配置来源可以有多种,虽然并不强要求必须来自文件,但其实平时我们99%情况下原创 2020-02-19 09:39:47 · 1375 阅读 · 0 评论 -
[享学Archaius] 四、Apache Commons Configuration2.x全新的事件-监听机制
前面文章重点介绍了`Apache Commons Configuration1.x`的使用以及原理,作为2013就已经停更的技术,本确实没有太大必要再去学它,但就因为Netflix一直还依赖它,所以这就变成了有必要。然而作为当下的主流的2.x版本,自然也不能忽略。它几乎完全重写了1.x的代码,所以自然是不向下兼容的,并且因为包名都不一样,所以**2.x和1.x是可以共存的**。由于在实际使用中,那是`100%`推荐使用2.x版本,因此花点时间精力去了解它就变得更加具有现实意义了。本篇文章将以事件-监原创 2020-02-18 17:13:50 · 1181 阅读 · 0 评论 -
[享学Archaius] 三、Apache Commons Configuration事件监听机制及使用ReloadingStrategy实现热更新
[上篇文章]概要性的介绍了`Apache Commons Configuration`,并且了解了它的核心API以及使用。但它带给我们的功能还不仅于此,比如本文要讲到的事件监听机制和热更新。 **事件-监听**机制:能在“修改”(增删改)属性值的时候发送对应事件,让感兴趣的监听者执行其对应的逻辑。**热更新**这个词各位开发者肯定不陌生,在实际生产中经常会遇到有类似的需求场景。原创 2020-02-17 21:01:56 · 1514 阅读 · 0 评论