spring clud config分布式配置中心的简单使用

stb-translator-data-repository.zip - Web 版翻译者资料库项目源码 本项目是由 VB6/Qt 桌面版《翻译者资料库》移植而来的 Web 版本,采用 Spring Boot 3.3 + Thymeleaf + Bootstrap 5.3 + MySQL 8.0 技术栈,面向翻译与写作场景提供一站式资料管理底座。系统涵盖资料管家、分类词库、句库、文本处理器、中英对照制作、通用查找、数据备份恢复及旧库迁移等核心模块,完整继承桌面版的编号连续、引号规范化、查重、RTF 附件同步等关键业务规则。前端采用服务端渲染配合本地静态资源,支持离线使用;通过 run.bat 一键完成环境检查、建库、编译与启动,访问 http://localhost:8080 即可使用。 立即下载

一、spring cloud config简介

微服务架构为什么要用配置中心?

  • 配置的管理问题,没有配置中心的话,多个服务需要多次修改并依次启动,另外我们也希望修改配置后可以实时生效
  • 配置内容的安全性,有些配置涉及保密等问题
  • 配置的修改需要重启

开源的配置中心有:Diamond(super或淘宝)、Apoll(携程)、spring cloud config、nacos(alibaba)(nacos提供服务注册、配置中心,长轮询 )、zookeeper

开源的配置中心的差异化对比:

  • 权限管理
  • 高可用特性
  • 通信协议
  • 数据更新的方式(pull或push)
  • 是否支持多语言
  • 是否支持灰度等等

spring cloud config包含:

  • config server
  • config client

spring cloud config配置中心获取配置的后缀说明:

/{application}/{profile}/{label}

application:应用名称

profile:不同的分组

label:分支

二、通过demo来学习

我们新建一个maven模块项目,项目名称叫:springcloudnetflix。springcloudnetflix项目一共包含三个项目模块,有注册中心模块、订单中心模块、配置中心模块。

首先看一下我们springcloudnetflix模块的pom依赖

1、springcloudnetflix模块pom.xml依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>spring-cloud-netflix</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <module>config-service-9090</module>
        <module>eureka-service-8080</module>
        <module>user-service-7070</module>
        <module>order-service-6060</module>
    </modules>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
        <spring-boot.version>2.3.4.RELEASE</spring-boot.version>
    </properties>

    <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>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

 

2、eureka-service注册中心项目

(1)、pom.xml依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example</groupId>
        <artifactId>spring-cloud-netflix</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <groupId>com.example.eurekaservice</groupId>
    <artifactId>eureka-service-8080</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-service-8080</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 

(2)、application.properties配置

server.port=8081
spring.application.name=eureka-service
#指向服务注册中心的地址
eureka.client.service-url.defaultZone=http://localhost:8081/eureka
#设置服务提供者不发起注册
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
#关闭自我保护,确保注册中心将不可用的实例删除
eureka.server.enable-self-preservation=false

#eureka server刷新readCacheMap的时间,注意,client读取的是readCacheMap,这个时间决定了多久会把readWriteCacheMap的缓存更新到readCacheMap上
#默认30s
eureka.server.responseCacheUpdateIntervalMs=3000
#eureka server缓存readWriteCacheMap失效时间,这个只有在这个时间过去后缓存才会失效,失效前不会更新,过期后从registry重新读取注册服务信息,registry是一个ConcurrentHashMap。
#由于启用了evict其实就用不太上改这个配置了
#默认180s
eureka.server.responseCacheAutoExpirationInSeconds=180

#启用主动失效,并且每次主动失效检测间隔为3s
#默认60s
eureka.server.eviction-interval-timer-in-ms=3000

#服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
#注意,EurekaServer一定要设置eureka.server.eviction-interval-timer-in-ms否则这个配置无效,这个配置一般为服务刷新时间配置的三倍
#默认90s
eureka.instance.lease-expiration-duration-in-seconds=15
#服务刷新时间配置,每隔这个时间会主动心跳一次
#默认30s
eureka.instance.lease-renewal-interval-in-seconds=5
#eureka client刷新本地缓存时间
#默认30s
eureka.client.registryFetchIntervalSeconds=5
#eureka客户端ribbon刷新时间
#默认30s
ribbon.ServerListRefreshInterval=1000
eureka.instance.preferIpAddress=true

 

(3)、项目代码

package com.example.eurekaservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class EurekaServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServiceApplication.class, args);
    }

}

 

3、order-service订单中心项目

    我们的order-service也是一个maven多模块项目,包含order-service-api和order-service-provider项目。api项目是一个maven项目,用来定义订单项目接口,以及open-feigin对外接口的封装,这样我们在其他项目中需要调用订单项目的接口时,我们只需要引入order-service-api依赖包就可以了。provider项目是一个spring项目,用来实现api接口,处理项目业务逻辑。

(1)、order-service项目pom.xml依赖配置

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <parent>
    <artifactId>spring-cloud-netflix</artifactId>
    <groupId>com.example</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>order-service-6060</artifactId>
  <packaging>pom</packaging>

  <name>order-service-6060</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <modules>
    <module>order-service-api</module>
    <module>order-service-provider</module>
  </modules>

</project>

 

(2)、order-service-api项目pom.xml依赖

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>order-service-6060</artifactId>
        <groupId>com.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>order-service-api</artifactId>

    <name>order-service-api</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </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-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

    </dependencies>

</project>

 

(3)、order-service-api项目代码

package com.example.dto;


public class OrderDto {

    private String orderId;

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
}
package com.example.service;

import com.example.dto.OrderDto;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

public interface OrderService {

    @GetMapping("orders")
    String orders();

    @PostMapping("/insertOrder")
    int insert(OrderDto dto);
}
package com.example.clients;

import com.example.clients.impl.OrderServiceFeignClientImpl;
import com.example.service.OrderService;
import org.springframework.cloud.openfeign.FeignClient;

@FeignClient(value = "order-service",fallback = OrderServiceFeignClientImpl.class)
public interface OrderServiceFeignClient extends OrderService {
    //封装提供open-feign的对外访问接口
}
package com.example.clients.impl;

import com.example.clients.OrderServiceFeignClient;
import com.example.dto.OrderDto;
import org.springframework.stereotype.Component;

@Component
public class OrderServiceFeignClientImpl implements OrderServiceFeignClient {
//open-feign的熔断降级处理,接口请求失败提供默认返回参数
    @Override
    public String orders() {
        System.out.println("查询订单失败,请稍后重试!");
        return "查询订单失败,请稍后重试!";
    }

    @Override
    public int insert(OrderDto dto) {
        System.out.println("新增订单失败,请稍后重试!");
        return -1;
    }
}

 

(4)、order-service-provider项目pom.xml依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example</groupId>
        <artifactId>order-service-6060</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>order-service-provider</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>order-service-provider</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>order-service-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-kafka</artifactId>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-actuator</artifactId>-->
<!--        </dependency>-->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 

(5)、order-service-provider项目bootstarp.yml配置

spring:
  profiles:
    active: prd
  application:
    name: order-service
  cloud:
    config:
      discovery: #开启配置中心的服务发现以及配置中心的服务id
        enabled: true
        service-id: config-service
    bus: #开启消息总线配置
      enabled: true
      trace:
        enabled: true
      refresh:
        enabled: true
  kafka: #配置kafka服务
    bootstrap-servers: localhost:9092
    consumer:
      group-id: order-service
eureka: #配置eureka注册中心
  client:
    service-url:
      defaultZone: http://localhost:8081/eureka
server:
  port: 6061
#management:
#  endpoints:
#    web:
#      exposure:
#        include: refresh

 

(6)、order-service-provider项目代码

package com.example.orderserviceprovider.service.impl;

import com.example.dto.OrderDto;
import com.example.service.OrderService;
import org.springframework.stereotype.Service;

@Service
public class OrderServiceImpl implements OrderService {

    public String orders() {

        return "获取到了全部的订单信息";
    }

    public int insert(OrderDto dto) {
        return 0;
    }
}

 

package com.example.orderserviceprovider.controller;

import com.example.dto.OrderDto;
import com.example.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class OrderController {

    @Value("${server.port}")
    private int port;

    @Autowired
    private OrderService orderService;

    @GetMapping("getOrder")
    public String getOrder(){
        return "获取订单信息,服务端口:"+port;
    }

    @GetMapping("orders")
    public String orders(){
        return orderService.orders();
    }

    @PostMapping("insertOrder")
    public int insertOrder(){
        OrderDto orderDto = new OrderDto();
        orderDto.setOrderId("1");
        return orderService.insert(orderDto);
    }

}

下面代码中“@RefreshScope”是关键,它用来实现配置、实例的热加载,没有它,实例配置无法更新。

package com.example.orderserviceprovider.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RefreshScope
@RestController
public class ConfigController {

//hello和env配置都是我们远程配置中心的配置
    @Value("${hello}")
    private String txt;

    @Value("${env}")
    private String env;

    @GetMapping("config")
    public String config(){
        return txt;
    }

    @GetMapping("env")
    public String env(){
        return env;
    }
}

 

4、config-service配置中心项目

(1)、pom.xml依赖配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example</groupId>
        <artifactId>spring-cloud-netflix</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <groupId>com.example.configservice9090</groupId>
    <artifactId>config-service-9090</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>config-service-9090</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <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.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-monitor</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 

(2)、application.properties配置

spring.application.name=config-service
server.port=9090
#配置远程配置中心地址、账号、密码,这里我们配置在gitee
spring.cloud.config.server.git.uri=https://gitee.com/spring-cloud-learning/spring-cloud-config-server.git
spring.cloud.config.server.git.username=你的gitee登录账号
spring.cloud.config.server.git.password=你的gitee登录密码
spring.cloud.config.server.git.default-label=git分支 #不配置默认是master分支

eureka.client.service-url.defaultZone=http://localhost:8081/eureka
#配置actuator手动刷新配置接口名称
management.endpoints.web.exposure.include=bus-refresh
#启动bus消息总线
spring.cloud.bus.enabled=true
spring.cloud.bus.trace.enabled=true
spring.cloud.bus.refresh.enabled=true

spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=config-service

 

(3)、项目代码

spring boot项目入口类添加“@EnableConfigServer”配置,启动config服务

package com.example.configservice9090;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@EnableConfigServer
@SpringBootApplication
public class ConfigService9090Application {

    public static void main(String[] args) {
        SpringApplication.run(ConfigService9090Application.class, args);
    }

}

 

三、总结

    至此,我们的项目代码就全部完成了。由于我们的项目依赖kafka来实现消息总线机制,所以我们需要先启动一个kafka服务,启动kafka服务点击此链接。启动kafka服务后,我们依次启动注册中心、配置中心、订单中心服务,通过访问order-service的“config”或“env”接口,可以看到,我们已经获取到了远程配置,或者也可以访问config-service来查看我们的远程配置(http://localhost:9090/order-service.yml)。

1、动态刷新配置文件

    但是如果我们在gitee修改了我们的配置以后,我们会发现如果我们不重启我们的应用服务,我们修改的配置只有配置中心有更新,我们的order-service应用却没有更新。这时候我们就需要spring-cloud-starter-bus消息总线机制来动态更新我们的应用配置,这里我们使用了kafka,有喜欢的同学也可以使用rabbitMQ(spring-cloud-starter-amqp)或其他。引入bus后,我们在配置更新之后,我们只需要刷新config-service配置中心,将更新的消息发送给它的订阅用户,既我们的应用,然后我们的config-client端就会在收到消息后刷新配置。

   我们可以向配置中心发送一个post请求:http://localhost:9090/monitor,这个请求需要携带一个json请求参数:其中“*”其实是一个通配符,可以针对所有的应用去更新,如果我们将“*”替换成order-service,它将只针对订单服务去更新远程配置

{
    "path":"*"
}

我们再刷新我们的应用服务,就会发现我们的配置已经更新了。

    那么我们每次更改远程配置都需要手动请求更新吗?当然是不需要了,gitee提供了一个WebHooks钩子,使我们在远程配置更改后,可以自动调用我们的刷新。当然,我们的地址要用花生壳之类的内网穿透软件映射成外网地址。

2、spring-cloud-config的安全认证

(1)、config配置中心项目添加security依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

(2)、config配置中心项目——配置文件新增配置

spring.security.user.name=qz
spring.security.user.password=qzpassword

重启config配置中心项目,访问发现以及开启了安全认证

(3) 、在客服端项目的配置文件中新增配置

spring:
  cloud:
    config:
      uri: http://localhost:9090 #config配置中心项目地址
      username: qz #配置中心设置的账号
      password: qzpassword #配置中心设置的密码

这样,我们客户端就可以访问配置中心并动态获取配置文件了。

利用LQR反馈控制器在不同风况下模拟风力涡轮转速控制的MATLAB.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户、开放平台解决方案,亦可作为普通项目的基础开发框架使用

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户(SaaS架构)、开放平台解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现数据库隔离、字段隔离等租户隔离方案。

每天学点SpringCloud(九):SpringCloud最常用配置详解

Eureka 属性名 说明 默认值 eureka.server.enable-self-preservation 关闭注册中心的保护机制,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者,如果关闭服务注册中心将不可用的实例正确剔除 false eureka.instance.prefer-ip-address 不使用主机名来定义...

diansheshi4163的博客 590

【无人机控制】基于MATLAB的侧风扰动抑制与风力模型构建:位置误差评估及风场感知路线规划系统设计 MATLAB 无人机侧风扰动抑制|风力模型与位置误差评估

内容概要:本文档围绕无人机在侧风扰动下的飞行稳定性问题,构建了一个基于MATLAB的完整仿真框架,涵盖风力建模、无人机运动仿真、侧风抑制控制、风场感知路线规划及位置误差评估。项目通过五种独立机制(平均风速、风向投影、阵风、湍流、定位噪声)生成具有物理意义的模拟数据,构建二维无人机运动模型,并设计包含比例-积分-前馈的复合控制器以抑制侧风引起的横向漂移。路线规划采用融合距离、风场与转弯代价的A*算法,实现抗扰路径选择。系统提供多层次误差评价体系,并支持结果可视化与模型部署,适用于低空飞行任务的抗风性能分析与优化。; 适合人群:具备MATLAB编程基础,从事无人机控制、路径规划或自动化系统开发的研发人员,尤其适合工作1-3年、希望深入理解环境扰动建模与控制系统协同设计的工程师。; 使用场景及目标:①研究侧风环境下无人机航迹跟踪的误差来源与抑制方法;②对比不同控制策略(如无补偿、积分补偿、前馈补偿)在侧风扰动中的性能差异;③实现融合风场代价的智能路径规划,提升任务安全性与能效;④基于模拟数据训练误差预测模型,支持数据驱动的飞行优化。; 阅读建议:此资源强调可复现性与工程实用性,建议读者结合代码逐模块运行,重点关注风场建模机制、控制律设计、路线代价函数构建及多指标评估方法。应通过调整参数(如风场权重、控制增益)观察系统响应变化,并利用提供的GUI界面进行交互式调试,以深化对各模块协同机制的理解。

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

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

weixin_34015336的博客 4266

高校技术转移办公室人员如何提升技术成果的推介效果和市场转化率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

agent-browser 实战资源包:给 AI Agent 装上浏览器(open/snapshot/click 最小复现 + smoke 脚本 + 中文README)

agent-browser(Vercel Labs 开源、Apache-2.0)实战配套包。本包全部脚本与示例页为作者自写(MIT),不含浏览器二进制、不含任何账号密码。 内容包含: - 中文 README:环境要求、安装、open→snapshot→click 循环讲解、安全注意、许可声明 - scripts/smoke.sh:对本地 samples/ 示例页离线跑通「打开→快照→点击→核对→关闭」,附 out/smoke-output.txt 实测留档 - scripts/demo-csdn.sh:真实站点(优快云 首页)最小演示,ref 动态解析 - package.json + package-lock.json:锁定 agent-browser 0.41.2,便于复现(Node >= 24) 实测环境:agent-browser 0.41.2 / Chrome for Testing 157 / Linux x86_64 / Node 24。 Chrome 需使用者自行 agent-browser install 下载(约 190MB,本包不代分发)。 关联博客:https://blog.csdn.net/mtl1994/article/details/170340810

spring-cloud中config配置中心使用(基本使用)

config server的基本用法,注意其中git仓库文件的说明,以及spring cloud配置信息加载顺序的说明。

BuquTianya的专栏 3922

两相交错并联BuckBoost变换器仿真模型(Simulink仿真实现)

内容概要:本文档系统整合了电力电子与新能源领域的Simulink仿真资源,聚焦于两相交错并联Buck-Boost变换器的双闭环PWM控制建模与仿真,同时涵盖多种典型拓扑结构,包括交错并联Boost、PFC功率因数校正、LLC谐振变换器、双向CLLC、DAB变换器、VIENNA整流器等。资源体系完整,包含仿真模型、设计报告、计算书、PPT说明文档及Matlab/Python代码,覆盖从基础建模到高级控制策略(如软开关技术、谐波抑制、状态估计、双闭环控制)的全流程。此外,还拓展至状态估计(卡尔曼滤波、粒子滤波)、智能优化算法、机器学习、信号处理、路径规划等多个交叉学科方向,构建了一个面向科研与工程应用的综合性技术平台。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等专业的硕士博士研究生、高校科研人员,以及从事新能源发电、智能电网、电动汽车、电力传动等领域技术研发的工程师。; 使用场景及目标:①开展电力电子变换器(如Buck-Boost、LLC、DAB、PFC等)的建模、控制与仿真研究;②支撑课程设计、学位论文、科研项目中的系统仿真与算法验证;③学习并复现高水平期刊(如EI)提出的先进控制策略,如基于KKT条件的最优控制、扩展移相调制、恒压恒流双环竞争控制等;④结合智能算法(如粒子群、秃鹰算法)进行微电网调度、储能配置、路径规划等多目标优化问题的研究与快速原型开发。; 阅读建议:建议依据提供的资源目录循序渐进地查阅资料,优先选取与自身研究方向高度契合的内容进行深入学习;应结合仿真模型与配套文档动手实践,调试参数并分析结果,充分利用百度网盘与公众号渠道获取完整资源,提升科研工作的系统性、规范性与创新性。

springcloud常用配置(持续更新)

springcloud的优点不言而喻。在学习和工作中,在我们使用springcloud进行开发时,会涉及到众多技术栈的配置,那么本文就整理了日常所经常用到的一些配置信息。也会一直更新下去的。 注:该篇文章的格式是采用properties配置文件的类型进行描述的。如果使用yml文件,请自行修改格式。例如 eureka:      client:        fetch-registry ...

sinat_36684502的博客 5411

【基于Zernike矩的良性和恶性肿块的分类】应用于乳腺癌诊断中的快速相反权重学习规则(Matlab代码实现)

内容概要:本文详细介绍了基于Plecs软件构建的全桥LLC谐振变换器仿真模型,重点阐述了其在软开关技术条件下的建模方法与仿真分析过程。该模型能够精确模拟LLC谐振变换器在不同运行工况下的动态响应特性,涵盖开环与闭环控制策略的设计与实现,适用于研究变换器的效率优化、谐振参数匹配、系统稳定性及软开关性能等问题。相较于Simulink等传统仿真工具,Plecs在高频电力电子系统仿真中展现出更高的仿真速度与数值精度,尤其适合用于复杂电力电子拓扑的快速原型验证与优化设计。; 适合人群:具备扎实电力电子技术基础和仿真经验,从事高频功率变换器设计、新能源电源开发、电力电子系统研究的研发工程师及高校研究生。; 使用场景及目标:①深入理解全桥LLC谐振变换器的工作原理与软开关实现机制;②掌握在Plecs环境中搭建高精度、高效率电力电子系统仿真模型的方法;③开展变换器控制策略(如变频控制、闭环稳压)的仿真验证与参数优化;④为科研课题、学位论文或工业项目提供可靠的仿真平台与技术支持。; 阅读建议:建议结合相关电力电子教材与LLC变换器设计指南,深入掌握谐振参数计算与系统稳定性分析方法,并通过反复调试仿真模型,观察关键波形(如原边电流零点切换、副边整流波形),以全面理解软开关过程的物理本质与控制实现细节。

产业园区运营负责人如何提升园区内技术成果与企业需求的精准对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

SpringCloud笔记(五)——Spring Cloud Config

运行时配置线上管理——神奇的配置中心配置中心的作用配置中心介绍配置中心搭建配置文件仓库配置中心服务器微服务端配置手动刷新配置自动刷新配置 配置中心的作用 最重要的是可以动态调整配置参数,更改配置不停服务。 微服务数量比较多的时候,便于集中管理。 可以管理不同环境的配置。 配置中心介绍 分布式配置中心包括3个部分: 配置文件存储仓库:如git,svn等。 config server。从仓库中拉取配置文件。 config client。微服务作为客户端从config server拉取配置信息。 ![配置中

yuyangbaby的博客 321

国央企创新负责人如何利用数智平台提升核心技术攻关与成果转化协同能力?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

极高画质需要什么配置_SpringCloud 微服务为什么需要使用分布式配置中心?

作者:波波烤鸭dpb-bobokaoya-sm.blog.csdn.net/article/details/93652805一、 为什么需要使用配置中心1 服务配置的现状2 常用的配置管理解决方案的缺点3 为什么要使用 spring cloud config 配置中心?4 spring cloud config配置中心,它解决了什么问题?二、 编写配置中心入门案例1.编写配置中心的服务端...

weixin_42504833的博客 138

高校技术转移办公室人员如何高效完成技术成果的筛选与推介?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

里面有DoTweenPro

里面有DoTweenPro

两相交错并联Buck/Boost变换器仿真模型(Simulink仿真实现)

内容概要:本文提供了一个两相交错并联Buck/Boost变换器的Simulink仿真模型,旨在通过高精度建模实现对这类双向DC-DC变换器的动态特性分析与控制策略验证。该仿真模型详细构建了主电路拓扑结构,包含两个交错并联的Buck/Boost单元、电感、开关器件及滤波元件,并集成了闭环控制模块,如电压/电流双闭环PI控制器、PWM调制单元以及驱动逻辑,支持升压(Boost)与降压(Buck)两种工作模式的平滑切换。模型充分体现了交错并联技术在减小输入输出电流纹波、提升系统效率与功率密度方面的优势,适用于研究均流控制、软开关实现、动态响应优化等关键技术问题。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生、科研人员以及从事新能源发电、电动汽车、储能系统等领域研发的工程技术人员。; 使用场景及目标:①掌握两相交错并联Buck/Boost变换器的工作原理与建模范式;②设计与验证针对此类变换器的先进控制算法(如均流控制、模式切换平滑控制);③分析系统在负载突变、输入电压波动等工况下的动态性能与稳定性;④为实际硬件开发提供前期理论仿真与参数优化依据。; 阅读建议:使用者应具备一定的电力电子变换器基础知识和Simulink/MATLAB操作能力,建议在学习过程中结合相关文献深入理解控制策略的设计逻辑,并尝试修改电路参数或控制算法以观察系统响应变化,从而加深对变换器动静态特性的理解。

三电平维也纳VIENNA双闭环控制整流器仿真(Simulink仿真实现)

内容概要:本文档详细介绍了一个基于Simulink的三电平维也纳(VIENNA)整流器双闭环控制系统仿真模型,重点实现了电压外环与电流内环的双闭环PI控制策略,并结合空间矢量脉宽调制(SVPWM)技术实现中点电位平衡控制。该模型全面涵盖了三相三电平整流器的数学建模、坐标变换(如abc/dq)、控制器设计、调制算法实现及系统稳定性分析,能够有效验证整流器在高功率因数、低谐波畸变和稳定直流电压输出方面的优异性能,适用于电力电子系统中的高性能整流应用研究与教学演示。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、高校教师、科研人员以及从事新能源变换器、工业电源系统开发的工程技术人员。; 使用场景及目标:①深入理解三电平VIENNA整流器的工作原理与拓扑优势;②掌握双闭环PI控制器在dq坐标系下的设计方法与参数整定技巧;③学习SVPWM调制技术在中点电位平衡控制中的实现机制;④支撑科研课题、学位论文仿真验证、课程设计或实际工程项目的技术预研。; 阅读建议:建议结合《电力电子技术》《现代控制理论》等教材同步学习,重点关注仿真模型中各模块的信号流向与控制逻辑,建议动手调整PI参数、负载条件及电网扰动,观察动态响应波形,深入掌握系统鲁棒性与控制精度之间的权衡关系。

上一篇: spring cloud eureka的简单使用
下一篇: 使用VirtualBox、Vagrant搭建centos服务器
红姬茄子
博客等级 码龄16年 8238粉丝 55原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值