SpringCloud 入门教程(四): 分布式环境下自动发现配置服务
前一章, 我们的Hello world应用服务,通过配置服务器Config Server获取到了我们配置的hello信息“hello world”. 但自己的配置文件中必须配置config server的URL(http://localhost:8888), 如果把config server搬到另外一个独立IP上, 那么作为一个client的hello world应用必须修改自己的bootstrap.yml中的config server的URL地址。这明显是不够方便的。
既然config server已经注册到了eureka服务中心,能否让服务中心自动帮hello world应用找到它需要的config server呢? 答案是肯定的。我们的hello world应用只需要提供它需要的配置所在在的config server的名字就可以了, 在前面例子中,配置服务的名字就是“config-server”。那我们现在就把之前的服务和应用稍作修改, 来达到自动发现服务的方案。下图是Spring Cloud提供的服务发现机制。Config-server是其中的Service Provider, Config-client是Service Consumer, 它们都注册到服务中心Eureka Server。
1. 将config-server注册到服务中心
config-server本身就是一个Spring Boot应用, 可以直接参考Spring Cloud 入门教程(一): 服务注册, 将config-server注册到eureka server中。访问http://localhost:8761, 可以看到我们的config-server已经注册。
2. 修改hello world应用的配置
1).同样,需要将Hello 我让你的应用注册到eureka 服务中心, 配置方法同前面一样, 不在赘述。
2).修改配置文件,将config-server的URL硬编码机制改成,通过服务中心根据名字自动发现机制, 修改bootstrap.yml
1 eureka:2 client:3 serviceUrl:4 defaultZone: http://localhost:8761/eureka/5 spring:6 application:7 name: config-client8 cloud:9 config:
10 label: master
11 profile: dev
12 # uri: http://localhost:8888/
13 discovery:
14 enabled: true
15 serviceId: config-server
16 management:
17 security:
18 enabled: false
19 server:
20 port: 8881
我们注释掉了硬编码的config-server的URL配置, 取而代之的是服务注册中心的地址http://localhost:8761/eureka/以及配置服务的名字“config-server”, 同时打开自动发现机制discovery.enable = true. 我们在运行一下hello world应用, 可以发现, GIT里面的内容依然可以访问。此时我们的hello world应用已经完全不知道配置服务的地址,也不知道配置的内容, 所有这些都通过服务注册中心自动发现。
3. 当服务很多时,都需要同时从配置中心读取文件的时候,这时我们可以考虑将配置中心做成一个微服务,并且将其集群化,从而达到高可用,架构图如下:
参考资料:http://blog.csdn.net/forezp/article/details/70037513
http://blog.sina.com.cn/s/blog_493a84550102wkp2.html
SpringCloud 入门教程(四): 分布式环境下自动发现配置服务相关推荐
- 本机php环境搭建教程:windows环境下wampserver的配置教程——超级详细
转载自:http://youchunyan5.blog.163.com/blog/static/5896062020123474456352/ 本机php环境搭建教程:windows环境下wampse ...
- SpringCloud 入门教程(一): 服务注册
1. 什么是Spring Cloud? Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁 ...
- LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库
LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库 前言: 阅读前,请确保你至少拥有以下条件: 已实现显示API(教程一已实现, 链接:LittleVGL (LVGL)入门教程一之 ...
- 分布式环境下,互斥性与幂等性问题,分析与解决思路
欢迎关注方志朋的博客,回复"666"获面试宝典 随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问.海量数据处理的场景也越来越多.如何用较低成本实 ...
- mysql集群session_集群/分布式环境下5种session处理策略
前言 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A.B两台服务器,用户在第一次访问网站时,Ngin ...
- Arduino可穿戴开发入门教程Arduino开发环境介绍
Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...
- 分布式精华问答:分布式环境下如何保持数据一致性的?| 技术头条
分布式开发的时代实际上早已悄悄地成为了时代的主流,今天,我们就来看看关于分布式的精华问答吧! 1 Q:分布式系统中主要是用到了服务化,消息中间件,数据库拆分,便于横向扩展和维护,但分布式系统中的拆分的 ...
- 面试官:分布式环境下,如何实现session共享
点击关注公众号,实用技术文章及时了解 先了解一下为什么会出现这种session共享的解决方案? 随着互联网公司的项目在微服务和分布式的环境下进行的搭建,导致一个项目可能分别部署在几个甚至很多的服务器集 ...
- Spring-Redis实现分布式环境下主子域名Session共享
背景: 之前一直采用通过注解的方式配置Spring环境下的子域名共享,其基本思路是通过将session放入redis中,然后将使用HTTPSESSION更改为使用SpringSession的方式,使得 ...
最新文章
- favicon.png vs favicon.ico - 我为什么要使用PNG而不是ICO?
- 2010年第一届蓝桥杯省赛 —— 第一题
- 嵌入式C语言编程课件,嵌入式系统C语言编程基础PPT课件
- Android逆向笔记-查看app的log打印(含调试方式打开)
- frame中src怎么设置成一个变量_OpenCV图像人脸检测及视频中的人脸检测(附源码)...
- 崩溃!还未修复的 Bug,凌晨三点遭到黑客 DDoS 攻击 | 技术头条
- 【安装包】android-studio
- Dev cpp出现段错误的原因之一
- 浅聊使用PHP实现微信公众号登录
- php 字符相似度比较,php 比较两个字符串的相似度
- VS Code(8)- 终端模拟器
- c++二维矩阵顺时针和逆时针旋转
- 【python ++ opencv + pytorch 】车牌提取、分割、识别
- Windows 下PowerShell 美化之旅(极其简单)
- Tableau 2022.3的Table Extension到底怎么用?
- 三元运算符的基本用法
- 【喜讯】Apache DolphinScheduler 荣获 “2020 年度十大开源新锐项目”
- android,java判断密码强度
- 市场调研-全球与中国JEDEC托盘市场现状及未来发展趋势
- Qt的LGPL协议是否意味着可以自由用QT开发商业软件?
热门文章
- python实例 69,70
- 数据采集与清洗基础习题(二)Python爬虫常用模块,头歌参考答案
- C/C++混淆点-左移右移操作符
- Tomcat配置解析
- 谈谈枚举和 那啥 那啥来着 哦 对对对 泛型!
- python 全栈开发,Day36(作业讲解(大文件下载以及进度条展示),socket的更多方法介绍,验证客户端链接的合法性hmac,socketserver)...
- Mqtt协议IOS端移植3
- 折叠菜单,选择下拉(手风琴)
- android ListView控件滑动时出现黑色背景问题解法方案
- Shell基本命令汇总