本章将要讨论的主题包括:
口由 Spring Cloud Config Server公开的HTTP API。
口服务器端的不同类型的存储库后端。
口与服务发现集成。
口使用SpringCloudBus和消息代理自动重新加载配置。
HTTPAPI资源简介
===========
Config Server将提供HTTP API,它可以通过各种方式调用。以下端点都是可用的。
口application}/profle}[/{lbel}]: 以JSON格式返回数据; label 参数是可选的。
口/application}- {profile}.yml:返回YAML格式。
口/{abel}/application)- {profile}.yml: 这是前一个端点的变体,开发人员可以传递一个可选的label参数。
口/{application}-{profile}. properties: 返回properties 文件使用的简单键/值格式。
口 /{abel}/application)- {profile} .properties: 这是前一个端点的变体,开发人员可以传递一个可选的label参数。
从客户端的角度来看,aplication 参数是应用程序的名称,它取自spring. aplication.name或springconfig.name的属性,profile 是活动配置文件或以逗号分隔的活动配置文件列表。最后一个可用的参数label是一个可选属性,只有在使用Git作为后端存储时才很重要。它将设置Git分支的名称以进行配置,默认为master.
现在可以从最简单的基于文件系统后端的例子开始。默认情况下,Spring Cloud Config Server将尝试从Git存储库获取配置数据。要启用原生配置文件,开发人员应该将spring profiles active选项设置为native来启动服务器。它将搜索存储在以下位置的文件:classpath:/. casspath:/config. fle:/. fle:/config. 这意味着properties 或YAML文件也可以放在JAR文件中。为测试起见,我们已经在src/main/resourcee中创建了一个 config文件夹。我们的配置文件将存储在该位置中。现在需要回到本书第4章的示例中。在第4章中已经介绍了集群发现环境的配置,该环境中的每个客户端服务实例都在不同的区域中启动。它有3个可用区域和3个客户端实例,每个实例都在application.yml文件中有自己的配置文件。该示例的源代码在config分支中可用,以下是其链接。
https://gi thub。com/piomin/
sample-spring-cloud-netflix/tree/config
我们当前的任务是将该配置迁移到Spring Cloud Config Server.这里不妨自我提醒一下这个示例的属性。以下是用于客户端应用程序的第一个实例的配置文件设置。根据所选的配置文件,有一个修改实例运行的端口、默认发现服务器URL和区域名称。
—
spring:
profiles: zonel
eureka:
instance :
metadataMap :
zone: zonel
client :
serviceUrl:
defaultZone: http://localhost:8761/eureka/
server:
port:
$(PORT:80811}
在前面所介绍的示例中,为简单起见,已经将所有配置文件设置放在单个aplication.yml文件中。该文件也可以分为3个不同的文件,其名称包括配置文件application
zonel.yml.pplicao-zone2.ymo和pplication zone3.yml.当然,这样的名称对于单个应用程序来说是唯一的,因此,如果决定将文件移动到远程配置服务器中,则应该注意它们的名称。客户端应用程序名称是从spring.aplication.name 注入的,在这种情况下,它是client-service。因此,总而言之,笔者已经在src/main/resources/config目录中创建了名为client-service-zone[n].yml的3个配置文件,其中,[m]是实例的编号。现在,当开发人员调用http:oh/o:/88/clie/ service/zone端点时,将接收到以下JISON格式的响应。
{
“name”:“client-service”,
“profiles”:[" zone1"],
“label” :null ,
“version” :null,
“state”" :nul1,
“propertySources”:[{
“name” :“classpath:/config/client- service-zonel . yml”,
“source”:{
“eureka . instance . metadataMap . zone” :“zone1”,
“eureka. client. serviceUrl . defaultZone” :“http://localhost: 8761/eureka/”,
“server . port”:“$ {PORT:8081}”
}
}]
}
还可以为第二个实例调用
ht:t/t/los5/888/client-servicee -zone2.properties,它将以下响应作为属性列表返回。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/e84f69f5d2e3a36c0d887ccc978d9488.jpeg)
最后
为什么我不完全主张自学?
①平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。
②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。
除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。
我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
哪些技术才能达到企业的要求?(下图总结)**
[外链图片转存中…(img-V5cMlW8p-1713632730578)]
[外链图片转存中…(img-7ufHmTbV-1713632730578)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!