1.5.13.发布代码
Spring CloudEdgware.SR3
- Java8
Eureka客户端已启用且工作正常(我已测试,一切正常)
我的配置中的一些相关属性:
feign.hystrix.enabled=true
eureka.client.fetch-registry=true
spring.cloud.service-registry.auto-registration.enabled=true
service1.ribbon.listOfServers=https://www.google.com
我有一个应用程序,它使用外部客户端与其他3个服务进行通信。其中两个是通过Eureka服务发现发现的。这些都很有效。最后一个服务是一个带有单个静态主机名的外部服务,我不希望通过Eureka解决这个问题。由于我确实希望其中两项服务使用Eureka,因此我希望启用Eureka。
对于最后的服务,我尝试添加
service1。带子服务器列表=https://www.google.com
到应用程序。属性,但在调用外部客户端时,在运行时会出现以下错误:
Servlet。路径为[]的上下文中servlet[dispatcherServlet]的服务()引发异常[请求处理失败;嵌套异常为com.netflix.hystrix.exception.hystrix RuntimeException:Service1Client#test()失败,没有可用的回退。]根本原因定价|定价| com。netflix。客户ClientException:负载平衡器没有可用于客户端的服务器:service1 pricing|u 1|com。netflix。负载平衡器。LoadBalancerContext。getServerFromLoadBalancer(LoadBalancerContext.java:483)~[ribbon-loadbalancer-2.2.5.jar!/:2.2.5]
我的客户端配置如下:
@FeignClient("service1")
public interface Service1Client {
@GetMapping(value = "/")
String test();
}
提前谢谢你的建议。
因为我理解Ribbon的精神是充当客户端负载平衡器,在我的例子中,没有什么需要负载平衡的(我有一个固定的静态主机名,它在DNS中返回一个a记录)。Ribbon实际上感觉像是一个不必要的组件——我真正想要的是假客户端,因为我喜欢它抽象出较低级别的HTTP请求和对象序列化。因此,我想另一个后续问题是,我可以在没有ribbon的情况下使用feign吗?似乎使用ribbon是一种很好的开箱即用的行为,甚至
@FeignClient
注释的Javadoc都会说:
如果ribbon可用,它将用于负载平衡后端请求,并且可以使用与外部客户端同名(即值)的
@RibbonClient
配置负载平衡器。
这表明,尽管两者的目的不同,但它们之间的关系非常密切。
正如你提到的,有两种方法可以解决你的问题。
如果您在注释中指定了url属性,它将在没有Ribbon的情况下工作,如下所示。
@FeignClient(name = "service1", url = http://www.google.com)
public interface Service1Client {
@GetMapping(value = "/")
String test();
}
在这种情况下,您的另外两个Faign客户端仍将与Ribbon和Eureka一起工作。
使用带丝带和不带尤里卡的飞行
您在配置中缺少的是NIWSServerListClassName
。它的默认值是com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList
,它将使用Eureka检索服务器列表。如果您将功能区客户端(模拟客户端)的NIWSServerListClassName
设置为ConfigurationBasedServerList
,则只有该客户端将使用listOfServers
列表,而无需从Eureka检索服务器列表。其他假冒客户仍将与尤里卡合作。
service1:
ribbon:
NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
listOfServers: http://www.google.com
定义和启用虚拟服务器 FreeRADIUS默认启用了两个虚拟服务器。 它们位于FreeRADIUS配置目录的已启用站点的子目录下。 他们是: default:该名称几乎说明了虚拟服务器的功能。 此虚拟服务器处理未明确指定由virtual_server指令处理的所有缺省请求。 到目前为止,我们一直使用这个虚拟服务器。 inner-tunnel:此虚拟服务器用于某些隧道式EAP请求,如TTLS和PEA
我想使用并使其直接进入给定的url,而不是从ribbon配置中获取主机。 我知道在Spring,cloud-feign默认与ribbon和eureka一起出现。 根据这个:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#spring-cloud-ribbon-without-eure
问题内容: 我正在使用google map version3 api的google map应用程序,特别是google.maps.geometry.encoding中的实用程序方法,例如decodePath,encodePath,computeDistanceBetween,interpolate,以便计算位置 在Web应用程序的第一个版本中,大多数应用程序逻辑都在Web浏览器中,现在我想将一些逻
使用启用的虚拟服务器 创建和创建虚拟服务器尚未使用它。 我们必须明确地将其指定为virtual_server指令的值。
我正在尝试构建一个REST应用程序,有一天可能会有数百万客户机使用它。记住这一点,我们预计会收到很多请求。我想知道它是否会倾向于使用冬眠或Spring通量。我们的数据库模型是高度相关的,因此我们不得不拒绝mongo和其他非关系数据库。我有几个问题: spring-webflow和hibernate可以一起使用吗? 如果问题1的答案是否定的,Spring通量是否具有像hibernate这样的缓存功能
我最近注意到,就餐提供了使用服务器启动器的可能性。在本手册中报告: Repast Simphony 2.7中的新增功能是能够使用Web浏览器作为用户交互界面运行您的模型。基于浏览器的GUI具有以下功能: 列表项 2D网格、连续空间和地理(GIS)可视化(目前仅限于编辑样式) 标签式和自由形式可视化布局时间序列图 特工探测 模型参数设置 模型运行时交互(运行、停止、暂停等) 我试着用这种模式启动我的