deposit-voucher 内有两个feign接口 AccountVoucherClient的注解是@FeignClient(name = "account-voucher", path = "/account-voucher") @FeignClient(name = "deposit-voucher",path = "/deposit-voucher")的注解是 @FeignClient(name = "deposit-voucher",path = "/deposit-voucher") 消费方调用AccountVoucherClient 报Load balancer does not have available server for client: account-voucher
时间: 2024-04-21 18:24:01 浏览: 204
根据你提供的信息,似乎存在一些混淆。如果你的服务名是 "deposit-voucher",那么 `AccountVoucherClient` 的注解应该是 `@FeignClient(name = "deposit-voucher", path = "/account-voucher")` 而不是 `@FeignClient(name = "account-voucher", path = "/account-voucher")`。
在消费方调用 `AccountVoucherClient` 的时候报错 "Load balancer does not have available server for client: account-voucher",可能是由于服务名配置不正确导致的。请确保在调用 `AccountVoucherClient` 时使用的服务名与服务提供方的服务名一致,即 "deposit-voucher"。
如果问题仍然存在,请检查服务提供方是否正常运行,并确保服务注册和发现机制(如Eureka)已正确配置。另外,还可以检查服务提供方的日志,查看是否有其他错误信息。
相关问题
deposit-voucher 服务内有一个AccountVoucherClient的feign接口那么应该是 @FeignClient(name = "deposit-voucher",path = "/deposit-voucher")还是 @FeignClient(name = "account-voucher", path = "/account-voucher")
根据你提供的信息,假设你要调用的服务名是 "deposit-voucher",那么正确的注解应该是 `@FeignClient(name = "deposit-voucher", path = "/deposit-voucher")`。这样配置后,Feign将会使用 "deposit-voucher" 作为服务名,并且将请求路径的前缀设置为 "/deposit-voucher"。请确保服务名和路径与实际的服务配置相符。
消费端调用 Openfegin接口@FeignClient(name = "deposit-voucher",path = "/deposit-voucher") 内有接口@PostMapping(/insertDepositVoucher)
在消费端调用Feign接口,可以按照以下步骤进行操作:
1. 在消费端的`pom.xml`文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
```
2. 在消费端的配置类上添加`@EnableFeignClients`注解,以启用Feign客户端。
3. 创建一个接口,并使用`@FeignClient`注解指定要调用的服务名和路径。例如:
```java
@FeignClient(name = "deposit-voucher", path = "/deposit-voucher")
public interface DepositVoucherClient {
@PostMapping("/insertDepositVoucher")
void insertDepositVoucher(@RequestBody DepositVoucher depositVoucher);
}
```
在上面的例子中,`DepositVoucherClient`是一个用于调用`deposit-voucher`微服务的Feign客户端。其中,`@PostMapping("/insertDepositVoucher")`指定了要调用的接口路径,`void insertDepositVoucher(@RequestBody DepositVoucher depositVoucher)`定义了要传递的请求参数。
4. 在消费端的业务代码中注入`DepositVoucherClient`,并使用它来调用接口方法。例如:
```java
@Autowired
private DepositVoucherClient depositVoucherClient;
public void someMethod() {
DepositVoucher depositVoucher = new DepositVoucher();
// 设置参数值
depositVoucherClient.insertDepositVoucher(depositVoucher);
}
```
通过以上步骤,消费端就可以使用Feign客户端调用`deposit-voucher`微服务的`/insertDepositVoucher`接口了。
阅读全文