使用Spring云合同验证生产者和消费者之间的合同。在我的消费者控制器中,我正在使用Feign client调用另一个微服务方法来获取一些数据。但是现在在SpringCloud contract中,为这个微服务进行存根调用是不可能的。
使用Spring Cloud与Netflix OSS。
这是可能的,下面是我的JUnit测试(participantsservice
使用一个假客户机)
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureStubRunner(ids = {"com.ryanjbaxter.spring.cloud:ocr-participants:+:stubs"}, workOffline = true)
@DirtiesContext
@ActiveProfiles("test")
public class OcrRacesApplicationTestsBase {
@Autowired
protected ParticipantsService participantsService;
private List<Participant> participants = new ArrayList<>();
//Hack to work around https://github.com/spring-cloud/spring-cloud-commons/issues/156
static {
System.setProperty("eureka.client.enabled", "false");
System.setProperty("spring.cloud.config.failFast", "false");
}
@Before
public void setup() {
this.participants = new ArrayList<>();
this.participants.add(new Participant("Ryan", "Baxter", "MA", "S", Arrays.asList("123", "456")));
this.participants.add(new Participant("Stephanie", "Baxter", "MA", "S", Arrays.asList("456")));
}
@After
public void tearDown() {
this.participants = new ArrayList<>();
}
@Test
public void contextLoads() {
List<Participant> participantList = participantsService.getAllParticipants();
assertEquals(participants, participantList);
}
}
我对假装很陌生。今天就发现吧……当我读到Spring Cloud Feign时,我的第一个问题是:“您如何包装您的Fiign客户机?” 我举个例子。假设我们有2个微服务M1和M2。M2使用来自M1的endpoint。 null 也许我完全错了,请指正。 多谢!拜拜
在我的项目中,diffrent服务被部署为微服务,授权和身份验证在一个公共jar文件中处理,该文件作为依赖项添加到每个微服务项目中。 微服务之间的通信通过虚拟客户端完成 下面给出了这种服务的分级文件 在一个场景中,我强制使用OAuth库中的feign client来调用我的授权微服务,下面给出了jar的依赖文件 但是,当我用我的服务部署新的jar文件时,在我的jar文件中实现的假客户机不起作用,调
我需要多次调用服务(>50次)并聚合响应。因此,我决定使用,使用Async和CustomExecuter(它自己的线程池)来提高速度,而不是等待服务响应。 我在类路径上使用带有ApacheHTTP和Hystrix的feign客户机。我可以看到它有时是工作的,有时我得到例外,因为电路是开放的。
我有一个错误,当我注入feignClient接口在我的服务。这是我使用的Spring引导和Spring云版本: 组织。springframework。启动:spring启动程序父级:2.0.6。发布spring云版本:Finchley。SR2 但是当我在我的类服务中创建一个虚假客户端bean时,它就工作了。 创建客户外部客户端: 我把这个假冒的客户注入军队 输出
假客户端支持可选请求参数吗? 例如,我有一个endpoint,但我没有找到一种方法,可以使用feign client使param1成为可选的。