Spring Cloud学习笔记-011
分布式配置中心:安全保护
由于配置中心存储的内容比较敏感,做一定的安全处理是必需的。为配置中心实现安全保护的方式有很多,比如物理网络限制、OAuth2授权等。由于微服务应用和配置中心都构建与Spring Boot基础上,所以与Spring Security结合使用会更加方便。
1. 只需要再配置中心的pom.xml中加入Sprign Security依赖,不需要做任何其他改动就能实现对配置中心访问的安全保护。默认情况下,可以获得一个名为user的用户,并且在配置中心启动的时候,在控制台打印出该用户的随机密码:
2. 大多数情况下,并不会使用随机生成密码的机制。可以在配置文件中指定用户和密码:
3. 此时,如果连接到配置中心的客户端中没有设置对应的安全信息,在获取配置信息时会返回401错误。所以,需要通过配置的方式在客户端加入安全信息来通过校验:
分布式配置中心:高可用配置
当要将配置中心部署到生产环境中时,与服务注册中心一样,也应该是一个高可用的应用。Spring Cloud Config实现服务端的高可用非常简单,主要有以下两种方式:
◆ 传统模式:不需要为这些服务端做任何额外的配置,只需要遵守一个配置规则,将所有的Config Server都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护。而客户端在指定Config Server位置时,只需要配置Config Server上层的负载均衡设备地址即可。
◆ 服务模式:将Config Server作为一个普通的微服务应用,纳入Eureka的服务治理体系中。这样微服务应用就可以通过配置中心的服务名来获取配置信息,这种方比起传统的实现模式来说更加有利于维护,因为对于服务端的负载均衡配置和客户端的配置中心指定都通过服务治理机制一并解决了,既实现了高可用,也实现了自维护。
接下来介绍如何将Config Server注册到服务中心,并通过服务发现来访问Config Server并获取Git仓库中的配置信息。基于demo-config-server和demo-config-client两个工程来进行改造。
1. 在demo-config-server的pom.xml中增加Eureka依赖:
2. 在demo-config-server的application.yml文件中指定服务注册中心位置:
3. 在demo-config-server的启动类中启用eureka客户端:
4. 启动该服务,登录注册中心查看:
5. 在demo-config-client的pom.xml中增加Eureka依赖:
6. 在demo-config-client的bootstrap.properties文件中指定服务注册中心的位置:
其中通过eureka.client.serviceUrl.defatulZone参数指定服务注册中心,用于服务的注册与发现;再将spring.cloud.discovery.enabled参数设置为true,开通通过服务来访问Config Server的功能;最后利用spring.cloud.config.discovery.serviceId参数来指定Config Server注册的服务名。
7. 在demo-config-client的启动类中启用Eureka客户端:
8. 启动该服务,登录注册中心查看:
9. 访问客户端应用提供的服务http://localhost:8002/from,此时,会返回Git仓库中application-dev.properties文件中配置的from属性内容:“git-dev-1.0”
Spring Cloud学习笔记-011的更多相关文章
- Spring Cloud学习笔记--Spring Boot初次搭建
1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都 ...
- Spring Cloud学习笔记【十】配置中心(消息驱动刷新配置)
上一篇中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用 Webhook 的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案 ...
- Spring Cloud 学习笔记 (一)-- Eureka 服务器
开局一张图,截取了本人学习资料中的一张图,很好地展示了Eureka的架构. Eureka服务器 管理服务的作用.细分为服务注册,服务发现. 所有的客户端在Eureka服务器上注册服务,再从Eureka ...
- Spring Cloud 学习笔记(二)——Netflix
4 Spring Cloud Netflix Spring Cloud 通过自动配置和绑定到Spring环境和其他Spring编程模型惯例,为Spring Boot应用程序提供Netflix OSS集 ...
- Spring Cloud 学习笔记(一)——入门、特征、配置
[TOC] 0 放在前面 0.1 参考文档 http://cloud.spring.io/spring-cloud-static/Brixton.SR7/ https://springcloud.cc ...
- Spring Cloud学习笔记-006
服务容错保护:Spring Cloud Hystrix 在微服务架构中,我们将系统拆分成了很多服务单元,各单元的应用间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的进程中运行,依赖通过远程调 ...
- Spring Cloud学习笔记-005
服务消费者 之前已经搭建好了微服务中的核心组件——服务注册中心(包括单节点模式和高可用模式).也有了服务提供者,接下来搭建一个服务消费者,它主要完成两个目标,发现服务以及消费服务.其中,服务发现的任务 ...
- Spring Cloud学习笔记-002
搭建Spring Cloud注册中心:Eureka 服务注册:在服务治理框架中,通常都会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口号.版本号.通信协议等一些附加信息告诉注 ...
- Spring Cloud学习笔记-007
声明式服务调用:Spring Cloud Feign Feign基于Netflix Feign实现,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两 ...
随机推荐
- 最简单的原生js和jquery插件封装
最近在开发过程中用别人的插件有问题,所以研究了一下,怎么封装自己的插件. 如果是制作jquery插件的话.就将下面的extend方法换成 $.extend 方法,其他都一样. 总结一下实现原理: 将 ...
- nginx 静态目录配置规则
1.子目录匹配 如下配置 location / { root /data/www; } 访问http://127.0.0.1/时,配匹配/data/www 访问http://127.0.0.1/ima ...
- laravel之url跳转
1.先写一下路由 2.在写a标签跳转
- Python函数式编程之闭包
-------------------------函数式编程之*******闭包------------------------ Note: 一:简介 函数式编程不是程序必须要的,但是对于简化程序有很 ...
- SDKmanager的位置
最近学习Android Studio 因为配置的问题,需要查找SDKmanager的位置 一下是查找方法: 查找到啦~
- Python基础之模块+异常
一.模块相关概念 1.定义:包含一系列数据.函数.类的文件,通常以.py结尾. 2.作用:让一些相关的数据,函数,类有逻辑的组织在一起,使逻辑结构更加清晰.有利于多人合作开发. 3.模块导入方式(三种 ...
- 升讯威微信营销系统开发实践:微信接口的 .NET 封装
GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...
- Apache Storm 核心概念
前言: Storm读取实时数据流,并传递给处理单元,最终输出处理后的数据. 下图描述了storm的处理数据的主要结构. 元组(Tuple) : 元组是Storm提供的一个轻量级的数据格式, ...
- Javascript高级编程学习笔记(88)—— Canvas(5)绘制文本
绘制文本 同样的,canvas也为绘制文本提供了相应的方法. 2D上下文提供的文本绘制方法主要有两个: fillText() strokeText() 这两个方法都接受四个参数 要绘制的文本字符串 绘 ...
- [Swift]LeetCode265.粉刷房子 II $ Paint House II
There are a row of n houses, each house can be painted with one of the k colors. The cost of paintin ...