问题标签 [spring-cloud]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
67 浏览

java - 如果服务器未运行,则终止 Spring Cloud 客户端

如果服务器未运行,是否有一种简单的方法可以在启动时终止 Spring Cloud Config Client?我无法在网上找到任何示例,我想知道是否已经存在一些可以重用的代码,或者这是否可以更好地根据具体情况进行处理?

0 投票
1 回答
556 浏览

java - Spring-data 是否支持 RepositoryMetadata 扩展?

我正在向所有存储库(JPA 模块)添加自定义行为以添加我们自己的查询 api/语法。我们希望从代码中外部化,以便可以在运行时更改它(目前这些是作为自定义注释添加到域类中的)。

例子:

  • 通过设置动态角色/列安全矩阵来确保数据安全(roleA 可以访问,即仅添加过滤器的一部分行,roleB 有一些敏感属性被屏蔽,...)

  • 启用/禁用功能以允许预加载代码以促进/或限制推出。

  • 覆盖模式名称(允许代码指向不同的目标沙箱表以进行各种测试)

在我的 Repository Impl 类中,我可以读取此配置并将其作为属性存储在这里,但我想知道扩展 Spring Data 域类元数据是否更有意义(并且如果支持)(认为这是 RepositoryMetadata 类)。

谢谢马克

0 投票
1 回答
8499 浏览

java - 功能区负载均衡器看不到服务器列表

我正在玩 Spring Cloud 1.0.0.M3。我有我的 Eureka 以及我的配置服务器工作。我还有两个微服务:fancyserver 和 fancyribbon。服务器代码是标准的 Hello World:

花式丝带代码也很简单。它试图发现 fancyserver 并返回它的结果:

不幸的是,这不起作用。功能区客户端看不到服务器列表。这意味着它没有看到fancyserver。但是我知道 fancyserver 和 fancy client 都在 Eureka 注册。我可以在我的尤里卡服务器地址下看到它们:

编辑:可以在 pastebin 上看到 eureka 输出:http: //pastebin.com/vua8f4XR

我还尝试手动调用负载均衡器:

这会导致相同的错误:

java.lang.IllegalStateException:无法找到服务的 ILoadBalancer:fancyserver 负载均衡器没有可用服务器:DynamicServerListLoadBalancer:{NFLoadBalancer:name=fancyserver,当前服务器列表=[],负载均衡器 stats=Zone stats:{},Server统计:[]}服务器列表:com.netflix.loadbalancer.ConfigurationBasedServerList@6a8dcefd

我的 application.yml 配置非常简单。对于花式服务器:

对于花式丝带:

bootstrap.yml 同样简单。对于花式服务器:

对于花式丝带:

我想知道我错过了什么。为什么fancyribbon 看不到fancyserver?

编辑:配置服务器包括尤里卡的链接:

0 投票
2 回答
3871 浏览

netflix - 带有 RestTemplate//Ribbon/Eureka 的 spring-cloud - 在服务器不可用时重试

我成功地让我的 RestTemplate 客户端使用 Eureka 发现远程服务,并使用功能区将调用转发给它,如文档中所述。基本上,只需在我的 Application 类中添加以下注释,然后让 Spring-Boot 的魔力完成剩下的工作:

(PS:您注意到我使用的是 spring-cloud:1.0.0-SNAPSHOT-BUILD 而不是 1.0.0.M3 - 但这似乎不会影响我的问题)。

当两个服务实例启动时,rest-template 客户端成功地对两者之间的请求进行负载均衡。但是,如果第一个实例在 Eureka 负载均衡器通知之前停止,客户端将不会回退到第二个实例,而是引发异常。

因此我的问题是:有没有办法配置 RestTemplate/Ribbon/Eureka 堆栈,如果第一个选择的实例不可用,则自动重试对另一个实例的调用?Zuul 代理和 feign 客户端“开箱即用”执行此操作,因此我相信该库拥有必要的功能......

任何想法/提示?

谢谢,/伯特兰

0 投票
1 回答
1098 浏览

java - 验证期间访问 JWT Token

我正在使用以下示例使用 Spring Cloud OAuth2 实现:

https://github.com/spring-cloud-samples/authserver

https://github.com/spring-cloud-samples/sso

第一个是 OAuth 服务器,它在对用户进行身份验证时生成 JWT 令牌。第二个是正在消耗的资源。该资源根据 OAuth 规范将用户的身份验证中继到 authserver。

一切似乎都很好,导致我提出其他问题:

  1. 在 authserver 中,在身份验证期间,如何访问 clientId 和 clientSecret?
  2. 我能否确定用于生成 JWT 令牌的值?
  3. 在 SSO 中,一旦用户通过身份验证,我如何访问令牌的内容(例如主体)?
0 投票
1 回答
2295 浏览

spring-security - 通过 Eureka 发现 Oauth 服务器

查看以下示例https://github.com/spring-cloud-samples/sso,授权/身份验证服务器的 URL 是在 application.yml 中预定义的。

问题是,如果我的架构中有配置服务器和 eureka,SSO 服务能否通过 Eureka 发现 authserver,而不是在配置文件中预定义它?

我尝试使用服务名称而不是 localhost:8080 来更改配置文件。它没有用。

沿着同样的思考过程,我可以直接通过配置服务器填充公钥,而不是向 JWT 提供 keyUri 吗?语法是什么?

编辑:经过更多测试,似乎 tokenUri 和 authorizationUri 很容易被发现。我可以使用服务名称而不是 localhost:8080。现在唯一的问题是如何处理 keyUri。

0 投票
0 回答
2681 浏览

spring-cloud - 带有 Feign/Ribbon/Eureka 的 spring-cloud - 无法发现服务实例

我的 feign 客户端目前无法使用 Eureka 发现服务实例。我的配置包括以下注释:

我包括以下依赖项(spring-cloud 1.0.0-BUILD-SNAPSHOT):

据我所知,feign 客户端使用 a ,因此需要在配置文件(属性)ConfigurationBasedServerList中明确指定可用服务实例的地址。ribbon.serverList

但是,如果我明确指定,一切正常:

我的测试应用程序还使用了基于 Spring RestTemplate 的客户端,该客户端自动配置为使用启用了 Eureka 的 Ribbon 实现。奇怪的是,如果首先调用 RestTemplate,Feign 客户端工作正常(即找到服务实例)。看起来 RestTemplate 设置在某处执行了一些(静态)初始化,然后对 feign 客户端有利。

我是否错过了应该如何配置 Feign 支持的内容?

0 投票
1 回答
120 浏览

java - 从配置服务器获取客户端端口

我想知道是否可以通过从配置服务器获取它们来为 Spring Boot 客户端配置服务器端口。我确实意识到我可以手动获取每个客户端代码中的端口并配置服务器的连接器类,但也许有更好的方法(可以在我的应用程序属性中直接替换 server.port 的东西)。在我的项目中,我有多个客户端在单个主机上运行,​​我想从一个中心位置(配置服务器)管理所有端口

0 投票
1 回答
3822 浏览

reverse-proxy - Zuul反向代理语言理解

我在玩 Zuul,但似乎有些基本的东西我不明白。

根据文档(http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html),以下 Zuul 配置应导致对“/myusers”的所有 http 调用转发给“用户” “ 服务。

我有类似的情况,但它根本不起作用。我的配置是:

服务 ID 是“stores”,它有一个名为“/hello”的 URL。当我击中:

我收到 Spring Boot 404 错误消息。但是,如果我将 california 替换为 store,则效果会很好,从而产生以下配置:

在这种情况下,如果我打电话

一切都很好。因此,看起来 URL 的前缀必须与服务的 ID 匹配。这是预期的行为吗?我错过了什么?

我正在使用 Zuul 1.0.0.BUILD-SNAPSHOT。顺便说一句,我确实注意到发现客户端现在内置在 Zuul 中。如果我不想运行 Eureka,有没有办法禁用它?

0 投票
1 回答
13435 浏览

spring-cloud - 尤里卡 - 无法得到响应 - 无法联系任何尤里卡节点

我有一个在端口 8761 (localhost:8761/eureka) 上运行的 Eureka 服务器,并且我有一个想在 eureka 注册的 Zuul 应用程序,但我一直收到同样的错误:

这是我的 zuul 应用程序的 application.yml:

我是否只是弄乱了这些值之一,因此 zuul 无法看到尤里卡服务器?好像没有正确注册。也许我错过了 application.yml 文件中的一个关键参数?