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

阿勒泰网站建设/苏州seo网站公司

阿勒泰网站建设,苏州seo网站公司,苏州做网站优化哪家好,营销型网站策划 ppt转自 https://blog.csdn.net/u012702547/article/details/77823434 这个系列我感觉真的太好了,可以一步一步的了解spring cloud 的搭建以及更深层次的东西,对想学这门技术的朋友真的入门特别的快,感谢这位大哥的分享,我也会持续的…

转自 https://blog.csdn.net/u012702547/article/details/77823434

这个系列我感觉真的太好了,可以一步一步的了解spring cloud 的搭建以及更深层次的东西,对想学这门技术的朋友真的入门特别的快,感谢这位大哥的分享,我也会持续的更新过来。

-------------------------------------------------------------------------------------------------------------------------------------------------------------

随着我们的分布式项目越来越大,我们可能需要将配置文件抽取出来单独管理,Spring Cloud Config对这种需求提供了支持。Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。我们可以使用Config Server在所有环境中管理应用程序的外部属性,Config Server也称为分布式配置中心,本质上它就是一个独立的微服务应用,用来连接配置仓库并将获取到的配置信息提供给客户端使用;客户端就是我们的各个微服务应用,我们在客户端上指定配置中心的位置,客户端在启动的时候就会自动去从配置中心获取和加载配置信息。Spring Cloud Config可以与任何语言运行的应用程序一起使用。服务器存储后端的默认实现使用git,因此它轻松支持配置信息的版本管理,当然我们也可以使用Git客户端工具来管理配置信息。本文我们就先来看下Spring Cloud Config的一个基本使用。


本文是Spring Cloud系列的第二十二篇文章,了解前二十一篇文章内容有助于更好的理解本文:

1.使用Spring Cloud搭建服务注册中心 
2.使用Spring Cloud搭建高可用服务注册中心 
3.Spring Cloud中服务的发现与消费 
4.Eureka中的核心概念 
5.什么是客户端负载均衡 
6.Spring RestTemplate中几种常见的请求方式 
7.RestTemplate的逆袭之路,从发送请求到负载均衡 
8.Spring Cloud中负载均衡器概览 
9.Spring Cloud中的负载均衡策略 
10.Spring Cloud中的断路器Hystrix 
11.Spring Cloud自定义Hystrix请求命令 
12.Spring Cloud中Hystrix的服务降级与异常处理 
13.Spring Cloud中Hystrix的请求缓存 
14.Spring Cloud中Hystrix的请求合并 
15.Spring Cloud中Hystrix仪表盘与Turbine集群监控 
16.Spring Cloud中声明式服务调用Feign 
17.Spring Cloud中Feign的继承特性 
18.Spring Cloud中Feign配置详解 
19.Spring Cloud中的API网关服务Zuul 
20.Spring Cloud Zuul中路由配置细节 
21.Spring Cloud Zuul中异常处理细节


本文假设小伙伴们已经有一个GitHub或者码云的账号了,并且对Git的一些基本操作命令也已经熟悉了。

构建配置中心

首先我们来构建一个配置中心,方式很简单,创建一个普通的Spring Boot项目,叫做config-server,创建好之后,添加如下依赖:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.7.RELEASE</version><relativePath/> <!-- lookup parent from repository -->
</parent>
<properties><spring-cloud.version>Dalston.SR3</spring-cloud.version>
</properties>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId><version>1.2.3.RELEASE</version></dependency>
</dependencies>
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

然后在入口类上添加@EnableConfigServer注解,表示开启配置中心服务端功能,如下:

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {public static void main(String[] args) {SpringApplication.run(ConfigServerApplication.class, args);}
}

然后在application.properties中配置一下git仓库的信息,为了简单,我这里就不自己搭建git服务端了,直接使用GitHub(当然也可以使用码云),这里需要我首先在我的Github上创建一个名为scConfig的项目,创建好之后,再做如下配置:

spring.application.name=config-server
server.port=2007
spring.cloud.config.server.git.uri=https://github.com/lenve/scConfig.git
spring.cloud.config.server.git.search-paths=config-repo
spring.cloud.config.server.git.username=username
spring.cloud.config.server.git.password=password

前两行配置的含义就不用我多说了,我说下后面四行配置的含义,如下:

1.uri表示配置中心所在仓库的位置 
2.search-paths表示仓库下的子目录 
3.username表示你的GitHub用户名 
4.password表示你的GitHub密码

做好这些之后我们的配置中心服务端就创建好了。

构建配置仓库

接下来我们需要在github上设置好配置中心,首先我在本地找一个空文件夹,在该文件夹中创建一个文件夹叫config-repo,然后在config-repo中创建四个配置文件,如下:

这里写图片描述

四个文件中的内容分别如下:

这里写图片描述

OK,然后回到test目录下,依次执行如下命令将本地文件同步到Github仓库中,如下:

这里写图片描述

如此之后,我们的配置文件就上传到GitHub上了。此时启动我们的配置中心,通过/{application}/{profile}/{label}就能访问到我们的配置文件了,其中application表示配置文件的名字,对应我们上面的配置文件就是app,profile表示环境,我们有dev、test、prod还有默认,label表示分支,默认我们都是放在master分支上,我们在浏览器上访问结果如下:

这里写图片描述

OK,从这里我们看到了我们放在仓库中的配置文件。JSON中的name表示配置文件名application的部分,profiles表示环境部分,label表示分支,多了一个version,实际上就是我们GitHub上提交信息时产生的版本号,当我们访问成功后,我们还可以看到控制台打印了如下日志:

这里写图片描述

实际上是配置中心通过git clone命令将配置文件在本地保存了一份,这样可以确保在git仓库挂掉的时候我们的应用还可以继续运行,此时我们断掉网络,再访问http://localhost:2007/app/prod/master,一样还可以拿到数据,此时的数据就是从本地获取的。

客户端配置

服务端搞好了,接下来我们来看看怎么样在客户端使用。

首先创建一个普通的Spring Boot工程config-client,创建成功之后添加如下依赖:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.7.RELEASE</version><relativePath/> <!-- lookup parent from repository -->
</parent>
<properties><spring-cloud.version>Dalston.SR3</spring-cloud.version>
</properties>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency>
</dependencies>
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

然后创建bootstrap.properties文件,来获取配置信息,注意这些信息一定要放在bootstrap.properties文件中才有效,文件内容如下:

spring.application.name=app
spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.uri=http://localhost:2007/
server.port=2008

这里的name对应了配置文件中的application部分,profile对应了profile部分,label对应了label部分,uri则表示配置中心的地址。配置完成之后创建一个测试Controller,我们来看看效果:

@RestController
@RefreshScope
public class HelloController {@Value("${sang}")String sang;@AutowiredEnvironment env;@RequestMapping("/sang")public String sang() {return this.sang;}@RequestMapping("/sang2")public String sang2() {return env.getProperty("sang", "未定义");}
}

我们可以直接注入值,也可以通过Environment来获取值,访问结果如下:

这里写图片描述

好了,配置中心我们就先了解到这里,有问题欢迎留言讨论。

http://www.lbrq.cn/news/1097749.html

相关文章:

  • 工商网企业信息查询系统上海/seo人员招聘
  • 子网站建设方案/女教师网课入侵录屏
  • 中投建设集团有限公司 网站/百度竞价排名服务
  • 供应邯郸做网站/seo群发软件
  • 科讯cms 网站地图/网络营销的内容主要有哪些
  • 淮北网站开发/中国推广网
  • 网站建设需要多少费用/百度关键词排名批量查询
  • 广西疫情最新消息环球网/seo排名怎么看
  • 为什么我的网站备案通过还是显示未备案/百度热议排名软件
  • 长春火车站在哪/百度不收录网站
  • 做html5视频网站/微软bing搜索引擎
  • 网站是否被百度收录/歌尔股份砍单
  • 日照社保网站开发中什么意思/天津百度优化
  • 免费ppt资源网站/免费b站推广网站入口
  • 如何破解网站后台/麒麟seo外推软件
  • 网站制作费计入什么科目/百度下载并安装
  • 郑州做优惠券网站的公司/品牌seo推广
  • wordpress 4.0 文章标题翻译插件/常熟seo关键词优化公司
  • 百度哪个网站做贸易/指数运算法则
  • 杭州高端响应式网站建设/深圳网络推广
  • 给教育类做网站/在线优化网站
  • 四川省人民政府网站官网/百度推广登录首页
  • 三亚网站建设公司/建网站要多少钱
  • 杭州集团网站建设/丹东seo推广优化报价
  • 苏州园区教育网/郑州网络seo公司
  • 成都网站建设四川冠辰科技/合肥网站快速优化排名
  • h5网站开发流程/网站大全
  • 本网站正在建设图片/推广方式怎么写
  • 医疗网站建设案例/网站收录量是什么意思
  • word做网站连接/企业在线培训系统
  • 奥比中光深度相机开发
  • TPS61194PWPRQ1适用于汽车照明低 EMI、高性能 4 通道 LED 驱动器TPS61194
  • 深入详解随机森林在放射治疗计划优化中的应用及实现细节
  • 《杜甫传》读书笔记与经典摘要(一)
  • 【JS逆向基础】数据库之redis
  • 红宝书单词学习笔记 list 51-75