我正在使用 spring boot 构建基于云的微服务架构。我们只使用嵌入式容器,它是用于 spring boot 的 tomcat。此外,我们还向 jvm 密钥库添加了证书。
为了使它更简单,我只创建了两个 Spring Boot 应用程序。
1) Spring boot Eureka Server
2) Spring boot Eureka client
两者都具有与上述相同的配置,当我在 https 上启动 Eureka 服务器时,它成功启动而没有任何问题,之后我启动了 Eureka 客户端,运行良好,直到它请求注册到 Eureka 服务器,然后它开始失败。
有趣的是,当我将 Eureka 服务器保持在非安全端口上,即保持在 http 上时,我所有启用 ssl 的 eureka 客户端都可以毫无问题地连接,但我的架构中并不真正需要它,因为我也使用 zuul 作为单个入口点我所有的微服务。
当它是 http 时一切正常,但在启用 https 和 SSL 时它开始失败。
这是我的 Eureka 服务器配置。
eureka.instance.hostname= localhost
eureka.client.registerWithEureka= false
eureka.client.fetchRegistry= false
server.port= 8761
server.ssl.enabled = true
server.ssl.key-store=classpath:ssl.keystore
server.ssl.key-store-password=changeit
and my Eureka Client Configuration.
server.port=8181
spring.application.name=my-client
eureka.instance.hostname=localhost
eureka.instance.securePort = 8181
eureka.instance.securePortEnabled = …Run Code Online (Sandbox Code Playgroud) ssl-certificate spring-boot spring-cloud netflix-eureka spring-cloud-netflix
我目前正在开展一个项目,我们的应用程序需要在该项目中连接到 Amazon RDS 实例。到目前为止,我一直在使用以下文档进行设置:https : //cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html#_sdk_credentials_configuration。
根据文档第 7.3 节,我应该将 application.properties 文件设置为:
cloud.aws.credentials.accessKey=XXXXXXXXXXXXXXX
cloud.aws.credentials.secretKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
cloud.aws.credentials.instanceProfile=true
cloud.aws.region.static=us-east-2
cloud.aws.rds.instanceNameTest
cloud.aws.rds.instanceNameTest.password=chownTestPW
cloud.aws.rds.instanceNameTest.username=dataTest1
cloud.aws.rds.instanceNameTest.databaseName=testDB
Run Code Online (Sandbox Code Playgroud)
但是,当我运行应用程序时,我收到以下错误:
Caused by: java.lang.IllegalArgumentException: Password must not be null
at org.springframework.util.Assert.notNull(Assert.java:193) ~[spring-core-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.cloud.aws.jdbc.datasource.DataSourceInformation.<init>(DataSourceInformation.java:65) ~[spring-cloud-aws-jdbc-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.fromRdsInstance(AmazonRdsDataSourceFactoryBean.java:187) ~[spring-cloud-aws-jdbc-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createDataSourceInstance(AmazonRdsDataSourceFactoryBean.java:153) ~[spring-cloud-aws-jdbc-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createInstance(AmazonRdsDataSourceFactoryBean.java:130) ~[spring-cloud-aws-jdbc-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createInstance(AmazonRdsDataSourceFactoryBean.java:45) ~[spring-cloud-aws-jdbc-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:141) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1765) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1702) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
... 30 common frames omitted
Run Code Online (Sandbox Code Playgroud)
我不知道为什么当上面的设置看起来不错时,它告诉我密码为空。
任何的意见都将会有帮助。如果我需要提供其他任何东西,请告诉我。
谢谢。
我正在学习 springboot 和微服务。我创建了 3 个服务,并且一切正常。现在我已经创建了发现服务器,使用 start.spring.io 通过添加“Eureka Server”作为依赖项。
我的 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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>io.springboot.microserices</groupId>
<artifactId>discovery-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>discovery-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我的主要课程如下:
package io.springboot.microserices.discoveryserver;
import org.springframework.boot.SpringApplication; …Run Code Online (Sandbox Code Playgroud) 我正在研究 Spring 云框架。所以我的每个微服务都必须在 Eureka 服务器上注册,所以 Eureka 知道唯一的 id 或应用程序名称。
(1) 我必须在 Eureka 注册多个相同微服务的实例,我该如何实现?微服务部署在 Cloud Foundry 中。
(2) 当所有来自同一个微服务的实例都注册到 Eureka 时,Eureka 如何知道哪些实例是活动的,哪些不是?Eureak 知道的频率以及 Eureka 如何获取这些信息。
spring microservices spring-cloud netflix-eureka spring-cloud-netflix
我在 pom.xml 上使用下面的内容,但由于错误我无法启动应用程序我不想降级 spring boot starter 父版本。有什么解决方案吗?
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
</parent>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
org.springframework.beans.factory.BeanCreationException:创建在类路径资源[org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]中定义的名为“configurationPropertiesBeans”的bean时出错:合并bean定义的后处理失败;嵌套异常是 java.lang.IllegalStateException:无法从 ClassLoader [sun.misc.Launcher$AppClassLoader@659e0bfd] 内省类 [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans]
maven spring-boot spring-cloud netflix-eureka spring-cloud-netflix
我正在学习 Spring Cloud Config v3.0.5。我在学习文档的时候时,我发现文档提到了这一点
\n\n\n例如,您可能希望将配置标签与您的分支对齐,但将其设为可选(在这种情况下,请使用 spring.cloud.config.label=myfeature,develop)。
\n
我不知道 \xe2\x80\x99t 知道\xe2\x80\x9calign 配置标签\xe2\x80\x9d是什么意思。但我猜应该是修改url中{label}的默认值(默认值为master)\n
但是,当我设置spring.cloud.config.label=dev并访问 http://localhost:3344/config-dev.yml 时,我仍然在 master 分支上获取数据。\n
\n
\n
\n
\n
\n
\n那么 spring.cloud.config.label 属性有什么作用呢?文档中提到的“将配置标签与您的分支对齐”是什么意思?
当我的假客户端尝试访问我的其他服务时,我试图为他们设置超时。为了测试我的断路器方法。这是我的基本设置。我正在使用 spring-boot 3.0.2 和 spring cloud 版本 2022.0.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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>e-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>e-service</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
<spring-cloud.version>2022.0.1</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-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</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>
<build>
<plugins> …Run Code Online (Sandbox Code Playgroud) spring-boot spring-cloud spring-cloud-feign openfeign spring-cloud-circuitbreaker
我想要一个解决方案,允许管理 json 对象、调用 SOAP 服务以及通过一组 lambda 服务上的 Spring 数据访问数据库。但在网上我读到 lambda 函数应该非常简单。也许 Spring Cloud 是解决方案?
问候
spring-cloud ×8
spring-boot ×7
spring ×2
amazon-rds ×1
aws-lambda ×1
java ×1
jdbc ×1
maven ×1
openfeign ×1
spring-cloud-circuitbreaker ×1
spring-data ×1