微服务SpringCloud开弓之SpringCloud config分布式配置中心「十」

SpringCloud整合php、python示例 SpringCloud整合php、python示例代码已上传至: https://github.com/KeoZmy/SpringCloudDemo.git ,博客中没有写到网关 zuul,但是git中已上传前言最近一直在花时间研究微服务,各种开源组件组合一个framework到最后决定用springcloud这样成熟的framework。不得不说,springcloud确实很强大,还有Pivota 阅读详情

1、概述

地址

  • 分布式系统面临的问题–配置问题

在这里插入图片描述

  • 是什么

​ Springcloud config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供一个中心化的外部配置。

  • 能干嘛

​ 1、集中管理配置文件

​ 2、不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release

​ 3、运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一一拉取配置自己的信息

​ 4、当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置

​ 5、将配置信息以REST接口的形式暴露

  • 与GitHub整合配置

在这里插入图片描述

2、Config服务端配置与测试

  • 新建一个名为springcloud-config的新Respository

  • 新建Module模块cloud-config-center-3344它即为Cloud的配置中心模块cloudCofing Center

  • POM文件

    <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    </dependencies>
    
  • YML

    server:
      port: 3344
    
    eureka:
      client:
        service-url:
          defaultZone: http://eureka7001.com:7001/eureka
    spring:
      application:
        name: cloud-config-center
      cloud:
        config:
          server:
            git:
              uri: https://github.com/ClqStart/SpringCloud-config.git
              force-pull: true
              search-paths:
                - SpringCloud-config
    
          label: master
    
  • 主启动类

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

在这里插入图片描述

http://config-3344.com:3344/master/config-dev.yml

在这里插入图片描述

  • 总结

在这里插入图片描述

当启动我们的3344项目时,可以通过三种方法找到配置文件并读取

在这里插入图片描述

3、Config客户端配置与测试

  • 新建cloud-config-center-3355

  • POM

        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    </dependencies>
    
  • bootstrap.yml

    • 是什么

1、applicaiton. yml是用户级的资源配置项

2、bootstrap. yml是系统级的,优先级更加高

3、Spring Clould会创建一个“Bootstrap Context” , 作为Spring应用的Application Context的父上下文。初始化的时候,BootstrapContext’负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的Environment。

4、Bootstrap’属性有高优先级,默认情况下,它们不会被本地配置覆盖。 Bootstrap context’和Application Context有着不同的约定,所以新增了一个bootstrap.ymI文件, 保证Bootstrap Context’和Application Context配置的分离。

5、要将Client模块下的application.yml文件改为bootstrap.yml,这是很关键的,因为bootstrap.ym是比application.yml先加载的。bootstrap.yml优先级高于application.yml

​ 配置

server:
  port: 3355

spring:
  application:
    name: config-client
  cloud:
    config:
      label: master  #分支名称
      name: config  #配置文件名称
      profile: dev  #读取后缀名称   上述三个综合http://localhost:3344/master/config-dev.yml
      uri: http://localhost:3344  #配置中心的地址

eureka:
  client:
    register-with-eureka: true
    service-url:
      defaultZone: http://localhost:7001/eureka
  • 主启动层

    @RefreshScope
    @EnableEurekaClient
    @SpringBootApplication
    public class ConfigCenterMain3355 {
        public static void main(String[] args) {
            SpringApplication.run(ConfigCenterMain3355.class,args);
        }
    }
    
  • 业务层

    @RestController
    public class ConfigClientController {
        @Value("${config.info}")
        private String configInfo;  //要访问的3344上的信息
    
        @GetMapping("/configInfo")	//请求地址
        public String getConfigInfo(){
            return configInfo;
        }
    }
    
  • 测试

    修改config-dev.yml配置文件提交到GitHub中,比如加个age或者版本号version
    在这里插入图片描述

​ 结果

​ 这里我们返回从3344主配置中心获取的config.info配置值
在这里插入图片描述

4、Config客户端手动动态刷新

避免每次更新配置都要重启客户端微服务3355

  • 修改3355模块

  • POM引入actuator监控

  • 修改YML,暴露监控接口

    management:
      endpoints:
        web:
          exposure:
            include: "*"
    
  • @RefreshScope业务类Controller修改

    @RefreshScope
    @RestController
    public class ConfigClientController {
        @Value("${config.info}")
        private String configInfo;  //要访问的3344上的信息
        @GetMapping("/configInfo")	//请求地址
        public String getConfigInfo(){
            return configInfo;
        }
    }
    
  • 此时修改GitHub–>3344–>3355

    http://localhost:3355/configInfo

    3355没有改变

  • 解决

    必须是POST请求

    curl -X POST “http://localhost:3355/actuator/refresh”

在这里插入图片描述
获取最新结果:

在这里插入图片描述

springCloud整合python基于springBoot2.0.2 1背景 最近需求需要将一些python项目整合到web,项目架构基于springCloud。 通过sidecar将springCloud和第三方语言整合。Sidecar将第三方程序接口注册到SpringCloud中,然后就可以将第三方接口当作Java接口进行调用(通过springCloud去调用Sidecar,然后通过Sidecar转发程序请求)。 Sidecar是一个用于监听非JVM应用程... 阅读详情

相关推荐

SpringCloud集成Python-1017

springcloud集成python的web服务,springcloud版本为最新版本Finchley.SR1,python版本3.6.3,最新10月17号的项目源码。

【Spring Cloud 】进阶之Config配置中心

🎉🎉欢迎来到我的优快云主页!🎉🎉🏅我是平顶山大师,一个在优快云分享笔记的博主。📚📚🌟推荐给大家我的博客专栏《【SpringCloud】之远程消费(进阶使用)》。🎯🎯🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁版权声明:本文为优快云博主「平顶山大师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/m0_73647713/article/details/135429101。

m0_73647713的博客 1445

FreeSurfer预处理命令

比如将/source/kernel.tgz解压到 /source/linux-2.6.29 目录 tar zxvf /source/kernel.tgz -C /source/ linux-2.6.29 tar zxvf /home/tj/application/freesurfer/subjects/mindboggle/OASIS-TRT-20-1.tar.gz -C /home/tj/application/freesurfer/subjects (1)lh.thickness mri_surf2su

Dream19961996的博客 1506

(1)SpringCloud 整合Python

引言 什么是sidecar 1 Polyglot支持Sidecar官网描述 11 使用Sidecar步骤 12 Java调用非JVM程序接口 13 非JVM接口调用Java接口 2 Sidecar总结 Python和SpringCloud整合实例 1 定义Python服务 2 定义SpringCloud注册中心 3 定义sidecar 4 定义Java服务 5 服务相互调用 51 调用Java原生服

王培晓Carpenter 1万+

智能体评测技术与实践:从评估维度到DeepEval实战指南

智能体评测技术与实践:从评估维度到DeepEval实战指南 本文系统探讨了AI智能体的评测体系与实践方法。首先从四个关键维度构建评估框架:基础能力(意图理解、知识完整性)、复杂任务(多轮对话、动态工作流)、可靠性(幻觉抑制、安全合规)以及工具效率(参数填充、多工具协同)。其次分析了主流评测工具,包括xBench的动态双轨评估、DeepEval的全链路监控等解决方案。最后详细介绍了DeepEval的实战应用,涵盖环境配置、测试用例构建、指标配置及CI/CD集成,展示了如何通过代码化评估实现智能体质量的持续提升

Linda的自动化测试之旅 3413

ROS环境下UR机械臂与Realsense相机手眼标定实战指南

本文提供了在ROS环境下,对UR机械臂与Realsense相机进行手眼标定的完整实战指南。详细介绍了从环境搭建、软件包安装、硬件配置到分步数据采集与计算的完整流程,并分享了常见的避坑技巧与精度优化方法,旨在帮助开发者高效、准确地完成标定,为后续的机器人视觉应用奠定坚实基础。

sunny的博客 646

SpringCloud config详解与实例

统一配置中心概述 如果微服务架构中没有使用统一配置中心时,所存在的问题: 配置文件分散在各个项目里,不方便维护 配置内容安全与权限,实际开发中,开发人员是不知道线上环境的配置的 更新配置后,项目需要重启 Spring Cloud Config就是我们通常意义上的配置中心。Spring Cloud Config-把应用原本放在本地文件的配置抽取出来放在中心服务器,...

JinXYan的博客 2148

基于ST32 DAC7311数模转换器驱动代码及电路设计完整版

基于ST32的DAC7311模数转换器的电路设计及驱动代码完整版

qq_39626643的博客 3718

Spring Cloud Config配置中心(内网实用版native)

                                     Native本地配置文件简介 在接触微服务的时候就了解到config可以配置集成svn、git、DB、缓存数据库等,同时也支持修改配置无需重新启动等强大功能。 然则,我们的现实是我们是内网,给客户部署的无需svn 、git等,同时热加载配置文件也可以暂时不采用(需要引入其他的组件,对于部署 也就增加的运维时间成本)  ...

十年呵护的专栏 1万+

电源芯片MPQ3431A

MPQ3431A是一款具有宽输入范围的固定频率为450kHz的高度集成的升压转换器,其输入电压低至2.7V,采用恒定关断时间(COT)的控制拓扑,可提供快速的瞬态响应。芯片支持通过MODE管脚配置PSM(pulse-skip mode)、FCCM(forced continuous conduction mode)和USM(ultrasonic mode);还支持通过电流限制配置来达到精确的过流保护;同时芯片欠压保护(UVLO)和过温保护(OTP)。MPQ3431A采用QFN-13(3mmx4mm)封装。保

qflook的博客 1556

【PCIe 总线及设备入门学习专栏 6.1 -- PCIe MCTP】

MCTP 是由 DMTF(Distributed Management Task Force)定义的协议,用于提供设备和主机间基于不同传输层(如 PCIe、I²C、USB 等)的管理消息通信能力。在 PCIe 环境下,MCTP 消息作为的一种特殊形式传输,并被赋予唯一的 VDM Code 值0000b,以区别于其他 VDM。MCTP 在 PCIe 环境中作为一种基于 Type 1 VDM 的管理通信协议,提供了设备与主机之间的灵活数据传输能力。

CodingCos的博客 2127

微服务SpringCloud开弓之SpringCloud Bus消息总线「十一」

文章目录SpringCloud Bus消息总线1、针对问题:2、概述3、RabbitMQ环境配置4、SpringCloud Bus动态刷新全局广播5、Springcloud Bus动态刷新定点通知 SpringCloud Bus消息总线 1、针对问题: 每次微服务都要执行一次post请求,手动刷新 可否广播?一次通知,处处生效 我们想大范围的自动刷新 2、概述 1、分布式自动刷新配置功能 2、SpringCloud Bus配合Springcloud Config使用可以实现配置的动态刷新 是什么 s

python_start的博客 259

025、空间降噪与时域降噪:噪声抑制与细节保留的平衡艺术

《降噪技术的平衡艺术:空间与时域降噪的协同优化》 本文深入探讨了图像处理中空间降噪与时域降噪的技术原理与工程实践。空间降噪通过像素级处理提升单帧质量,而时域降噪则利用帧间信息增强稳定性。文章揭示了两种方法在实际应用中的矛盾点:过度降噪会导致细节损失,影响后续算法性能。作者结合车载环视系统等实战案例,详细分享了参数调优经验,包括运动自适应策略、边缘保持技巧和嵌入式平台优化方案。特别强调降噪的最终目标应服务于下游算法需求,而非单纯追求图像美观。文章为工程人员提供了从理论到实践的完整指导,展现了降噪技术在效果与性

sundong_81的博客 186

微服务SpringCloud开弓之SpringCloud Alibaba Seata处理分布式事务「十五」

文章目录SpringCloud Alibaba Seata处理分布式事务1、分布式事务问题2、Seata-Server安装3、订单/库存/账户业务数据库准备4、订单/库存/账户业务微服务准备5、Seata之原理简介再次回顾 SpringCloud Alibaba Seata处理分布式事务 1、分布式事务问题 分布式前 单机单库没这个问题 从1:1 -> 1:N -> N: N 分布式之后 一句话 一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题

python_start的博客 498

获取抖音中x-secsdk-csrf-token的方法

获取抖音中x-secsdk-csrf-token的方法

sh_moranliunian的博客 2016

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

spring cloud config 统一配置中心 读取本地文件配置

spring cloud config 统一配置中心 读取本地文件配置 服务端 提供配置信息 微服务客户端 获取配置信息 服务端 1.引入springcloud maven 的依赖 &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;/groupId&...

zhuwj114的博客 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring Cloud Config---server端和client端开发详细步骤

文章目录1 统一配置中心整体架构1:背景2:存在的问题3:统一配置中心架构2 开发统一配置中心的server端1 :准备工作2:配置统一配置中心的全局配置文件3:测试server端3 开发统一配置中心的client端1. 配置中心server端 没向Eureka 注册中心注册2. server端 向Eureka 注册中心注册了4 存在的问题 1 统一配置中心整体架构 1:背景 已经写了prod...

lililuni的博客 3563

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

spring cloud :五、分布式配置中心(spring cloud config)

在分布式系统中,每一个功能模块都能拆分成一个独立的服务,一次请求的完成,可能会调用很多个服务协调来完成,为了方便服务配置文件统一管理,更易于部署、维护,所以就需要分布式配置中心组件了,在spring cloud中,有分布式配置中心组件spring cloud config,它支持配置文件放在在配置服务的内存中,也支持放在远程Git仓库里。引入spring cloud config后,我们的外部配置...

凡夫编程 9万+

Spring Cloud之 Spring Cloud Config(一)

 一、介绍 Spring Cloud Config在分布式系统中提供服务端和客户端去支持额外的外部配置。配置服务中心(Config Server)为所有应用提供各种环境的外部配置。默认采用Git的方式存储配置文件,因此我们很容易部署修改,有助于对环境配置进行版本管理。 二、构建config server 创建一个spring boot 项目,在pom.xml添加spring-cloud-co...

冰清雪酷的专栏 4460

spring cloud config使用与原理分析

spring cloud config基本使用 spring cloud config是一个基于http协议的远程配置实现方式。通过统一的配置管理服务器进行配置管理,客户端通过https协议主动的拉取服务的的配置信息,完成配置获取。 spring cloud config的使用方式非常简单,spring cloud config server默认的实现方式是git管理配置,官方文档介绍已经详细...

嘎嘎的博客 2万+

python 微服务开发实例-Python写的微服务如何融入Spring Cloud体系?

前言在今天的文章中小码哥将会给大家分享一个目前工作中遇到的一个比较有趣的案例,就是如何将Python写的微服务融入到以Java技术栈为主的Spring Cloud微服务体系中?也许有朋友会有疑问,到底什么样的场景需要用Python写一个微服务,并且还要融入以Java技术栈为主的Spring Cloud微服务体系中呢?大致情况是这样的,小码哥目前所在的公司后端技术栈基本上是以Java为主,并且整个后...

weixin_37988176的博客 627

spring cloud config配置中心总结篇+从本地获取配置文件

1、配置中心就是一个spring boot项目 ,可以直接暴露url 让其它微服务获取配置,也可以注册到eureka注册中心,其它微服务从注册中心获取配置 2、配置中心可以从git、本地、svn获取配置文件 ,这三个地方的文件名字,采用{application}-{profile}.yml 或者{application}-{profiles}.properties   例如web-dev.pro...

qq_27886997的博客 1万+

文末送书|Python写的微服务如何融入Spring Cloud体系?

前言最近这几天工作和生活都比较忙碌,公众号没有得到及时的更新,还希望各位读者朋友们多多包涵!作为这几天文章更新不及时的弥补,小码哥决定出血给大家赠送一本我的好朋友"@程序...

无敌码农 827

python之自动化部署SpringCloud,且脱离python环境运行

文件结构如上图 删除镜像 import re from 连接linux主机 import Host def delete_images(): host117 = Host('172.17.20.117', 'root', '123456') host118 = Host('172.17.20.118', 'root', 'qweqaz123') host120...

Good Luck 8万+

SpringCloud学习系列之四-----配置中心(Config)使用详解

前言 本篇主要介绍的是SpringCloud中的分布式配置中心(SpringCloud Config)的相关使用教程。 SpringCloud Config Config 介绍 Spring Cloud Config项目是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client通过接口获取数据...

weixin_34015336的博客 4266

SpringCloud 整合 Python - Flask

前言 该篇文章分享如何将Python Web服务融入到Spring Cloud微服务体系中,并调用其服务,Python Web框架用的是Flask 方案 Sidecar+ Flask,在这里,我们会使用Sidecar将Python接口注册到SpringCloud中,将Python接口当作Java接口进行调用(通过SpringCloud去调用Sidecar,然后通过Sidecar去转发我们的程序请求...

Maggieq8324的博客 2651
上一篇: 微服务SpringCloud开弓之Gateway新一代网关「九」
下一篇: 微服务SpringCloud开弓之SpringCloud Bus消息总线「十一」
漂吧
博客等级 码龄8年 15粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值