应用于分布式系统-自定义扩展 dataid | 学习笔记

简介: 快速学习应用于分布式系统-自定义扩展 dataid。

开发者学堂课程【Spring Cloud Alibaba Nacos 详解(上)应用于分布式系统-自定义扩展 dataid】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/724/detail/12927


应用于分布式系统-自定义扩展 dataid

 

内容介绍

.自定义 Group

.自定义扩展的 Data ID 配置

.自定义扩展动态

.自定义共享动态 Data ID

 

.自定义 Group

学习自定义的配置方法,首先 Dacos 可以自定义 Group,我们已经学过自定义的Test group 包括 test 包括 Prod,当我们需要从指定的具体的 Group 当中来获取配置的时候,我们要知道配置文件的指定方法,配置文件指定的时候这里  Namespace Config 下面有一个 Namespace 的项目,这里就是指定具体的 Namespace

Group 就可以指定具体的测试组, DateID 是自动的拼装,根据项目的名称和扩展来拼装,如果我的配置文件不是这种 yqml 的格式是 properties,如果是Properties,那你就需要把你的扩展名改一下,这样就会自动拼接成Service1.properties,这就是它的方法,这就是自定义 Namespace group 配置以及配置的方法。

可以在文档里面看见这里面还有就是学习过 spring 的了解,在配置文件当中我们可以新建一个 application.yml,它俩的区别就是学过 springboot 的知道,

bootstrap 它加载的顺序要优先于 application.yml,所以这里面一定要记住针对 Nacos 配置管理里面的 config,包括地址管理的配置我们要把它写在 Bootstrap 里面,就是因为它是要优先加进去的,不要把这些配置原来弄过开发,弄一个 Application.ym l放进去,这就是自定义 Group Data ID 配置。

每一个微服务都对应一个配置文件 Service1

它是对应 Service1.yml 配置文件,这个配置文件在配置列表里面我们可以看见有,所有的微服务都会对应一个配置文件,有没有可能各个微服务公共一个配置信息,或者公共不止一个配置文件,它有多个配置文件,就是一个微服务不可能对应一个配置文件,它可能还对应另外多个配置文件,多个配置文件放公共的配置 Service1 可能要引用,Service2 可能要引用,这是一种情况,还有就是每个微服务可能不止一个配置文件还有多个,它自己需要,比如说我把数据库的配置文件放在测试组,完全可以,所以我们要思考。

 

.自定义扩展的 Data ID 配置

dataID 就是每个微服务自己对应一个 dataID  就是配置文件的名称,现在如何去扩展让我们每一个微服务可以扩展对应多个 dataID

这个时候就可以用到扩展 dataID 的功能,扩展 dataID,可以扩展多个所以扩展的 config 是以数组的形式配置,从0开始不要从1开始,具体的配置方法,在 config 下面扩展是0,下边可以写 data ID data ID 没有的话,就可以在下面建,没有指定group 对应的就是以后的 group,所以原来的配置文件 group,就是 test group,所以就这样来写,就是配置文件,

然后配置文件的内容根据

common.age 等于 12.common.addressbeijing

这个配置文件的内容只是因为我们测试需要我们把它定义一个内容,这个内容测试需要,但具体的配置文件的内容要根据具体的系统的需要,回到做具体的实际应用开发的时候,配置文件的内容一定是根据具体需要,而不是想当然的。

按照讲义把测试的结果配置内容写上,因为现在是 properties,所以这里面要选择propertiesage12,然后 Address 等于 bwijing,然后发布,这时发布是发布到第一批,它的默认的 group,扩展的配置它就是找到了当前 Navospeace 下边默认的这个 group,继续配置扩展多个再配,同一个可以对多个 Data ID

我们照样来仿照写,它的 group ID 会发现是另外一个新起的名,可以应用到新的文件,参数配置都一样,让各个微服务都扩展,这个组都可以大致理解这个组放的公共的,这个配置里面配了哪些东西,这是为了测试需要。

根据讲义来配置,common.brithday199011,现在这时候就是第二个配置的文件,配完了之后第三个我们拷贝,数组01.2组织的新建的,这个 refresh 是动态刷新配置,这里面加一个 Refresh,它的组名就叫 refresh_group ,它的内容按照讲义上来是 Common.fullnamezhangsanff 现在配置文件就弄好了,这是扩展的配置也就是说微服务不光读取 ysm,还读取其他三个,我们可以写一个程序来测试,因为前面我们写过这样的程序,叫 getconfig,就是读取配置。

我们可以参考来写一个,会发现我们把刚才配置的这些key都读取到,因为我们讲的就是扩展 Data ID ,如果能读取到说明我们扩展的 data ID在配置文件里面读取的这些配置文件就可以正常读取到,说明我们这个扩展配置成功,我们就可以访问其他的,其他的信息都有,都是刚才建立的,zhangsan 前面的是不一样的,三个配置文件,出生日期发布完毕之后如果不行,因为是第二个配置,需要重启,如果要加一个  Refresh:true 就可以支持动态刷新,现在来刷新,这就说明我们的动态配置都生效了,这就是自定义扩展动态 ID

 

.自定义扩展动态 ID

解决了一个服务对应一个配置文件的问题,可以对应多个配置文件,并且可以把公共的配置文件放在一个配置夹里面,由各个微服务来引用,但其实还有一个功能叫自定义共享 Data ID配置。

 

.自定义共享 Data ID

也可以将很多配置文件也可以放在同一个微服务当中来叠加,这个配置就是引用了配置文件,如果要引用三个配置文件就要动态分割,把动态名加上就可以了,重启可以加载多个动态 ID,刷新多个配置文件。

重启完了之后现在来刷新,就有两个配置信息 Null,一个 Birthday 一个 Fullname

它们分别在 Group 里面 一个在 Refresh group 里面,前两个有值,因为前两个都在 Deeault  group 里面,也就是说我们写的程序会发现第一个配置文件在 Deeault group 所以可以刷新出来,所以后面两个是空的,我们现在操作的只认 Deeault的东西,所以其他的 group 不认识,这是总结出来的问题,建议引用之前的方法,用扩展的方法。

扩展 Data ID 讲了两种,一种是扩展 Data ID 以这一种数组的方式扩展,另外一种是共享 Data ID 的方式,都可以实现让一个微服务对应多个共享ID,而且把配置公共的部分放在一个配置文件当中,由不同的微服务去引用,但是我们发现共享的 Data ID 方式是只支持 Deeault group ,而自定义扩展 ID 方式会发现它是可以灵活的配置这个扩展的文件方式。

相关文章
|
1月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
43 5
|
2月前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
3月前
|
存储 NoSQL Java
分布式session-SpringSession的应用
Spring Session 提供了一种创建和管理 Servlet HttpSession 的方案,默认使用外置 Redis 存储 Session 数据,解决了 Session 共享问题。其特性包括:API 及实现用于管理用户会话、以应用容器中性方式替换 HttpSession、简化集群会话支持、管理单个浏览器实例中的多个用户会话以及通过 headers 提供会话 ID 以使用 RESTful API。Spring Session 通过 SessionRepositoryFilter 实现,拦截请求并转换 request 和 response 对象,从而实现 Session 的创建与管理。
分布式session-SpringSession的应用
|
3月前
|
存储 NoSQL Java
分布式session-SpringSession的应用
Spring Session 提供了一种创建和管理 Servlet HttpSession 的方案,默认使用外置 Redis 存储 Session 数据,解决 Session 共享问题。其主要特性包括:提供 API 和实现来管理用户会话,以中立方式替换应用程序容器中的 HttpSession,简化集群会话支持,并在单个浏览器实例中管理多个用户会话。此外,Spring Session 允许通过 headers 提供会话 ID 以使用 RESTful API。结合 Spring Boot 使用时,可通过配置 Redis 依赖和支持缓存的依赖实现 Session 共享。
分布式session-SpringSession的应用
|
2月前
|
缓存 网络协议 API
分布式系统应用之服务发现!
分布式系统应用之服务发现!
|
3月前
|
存储 运维 应用服务中间件
阿里云分布式存储应用示例
通过阿里云EDAS,您可以轻松部署与管理微服务应用。创建应用时,使用`CreateApplication`接口基于模板生成新应用,并获得包含应用ID在内的成功响应。随后,利用`DeployApplication`接口将应用部署至云端,返回"Success"确认部署成功。当业务调整需下线应用时,调用`ReleaseApplication`接口释放资源。阿里云EDAS简化了应用全生命周期管理,提升了运维效率与可靠性。[相关链接]提供了详细的操作与返回参数说明。
|
3月前
|
Dubbo Java 应用服务中间件
分布式(基础)-RMI简单的应用
分布式(基础)-RMI简单的应用
|
4月前
|
开发者 云计算 数据库
从桌面跃升至云端的华丽转身:深入解析如何运用WinForms与Azure的强大组合,解锁传统应用向现代化分布式系统演变的秘密,实现性能与安全性的双重飞跃——你不可不知的开发新模式
【8月更文挑战第31天】在数字化转型浪潮中,传统桌面应用面临新挑战。本文探讨如何融合Windows Forms(WinForms)与Microsoft Azure,助力应用向云端转型。通过Azure的虚拟机、容器及无服务器计算,可轻松解决性能瓶颈,满足全球用户需求。文中还提供了连接Azure数据库的示例代码,并介绍了集成Azure Storage和Functions的方法。尽管存在安全性、网络延迟及成本等问题,但合理设计架构可有效应对,帮助开发者构建高效可靠的现代应用。
36 0
|
4月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
111 0
|
4月前
|
机器学习/深度学习 TensorFlow 数据处理
分布式训练在TensorFlow中的全面应用指南:掌握多机多卡配置与实践技巧,让大规模数据集训练变得轻而易举,大幅提升模型训练效率与性能
【8月更文挑战第31天】本文详细介绍了如何在Tensorflow中实现多机多卡的分布式训练,涵盖环境配置、模型定义、数据处理及训练执行等关键环节。通过具体示例代码,展示了使用`MultiWorkerMirroredStrategy`进行分布式训练的过程,帮助读者更好地应对大规模数据集与复杂模型带来的挑战,提升训练效率。
113 0