我在天蓝云上部署了两种不同的弹簧启动微服务。通过微服务,我还部署了尤里卡。当我在eureka上注册微服务时,它完成了。我的下一个任务是将数据从一个微服务发送到另一个微服务。我是Spring-boot的新手,因此,在本地系统上,我执行相同的任务并且工作正常但是在天蓝色的微服务上并没有相互通信。 我无法使用假装客户端和休息模板建立连接,因为IP和主机名是动态的。 请建议我为完成此任务需要进行哪些配置。
我做了什么
我已在其应用程序属性中配置了具有以下属性的eureka:
spring.application.name=eureka.azurewebsites.net
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
eureka.instance.hostname=eureka.azurewebsites.net
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
Azure中的Service1:
spring.application.name=service1.azurewebsites.net
eureka.client.registerWithEureka=true
eureka.client.serviceUrl.defaultZone=http://eureka.azurewebsites.net/eureka/
天蓝色的服务2:
spring.application.name=service2.azurewebsites.net
eureka.client.registerWithEureka=true
eureka.client.serviceUrl.defaultZone=http://eureka.azurewebsites.net/eureka/
现在,当我尝试将服务1中的rest api调用到另一个服务2时,获取unknowhost异常。
以下是代码段:
@RestController
@EnableAutoConfiguration
@ComponentScan
@SpringBootApplication
@EnableDiscoveryClient
public class Service2 {
private static final Logger LOG = LoggerFactory.getLogger(PLMBommsApplication.class);
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/")
public StringBuilder fromCall() throws URISyntaxException {
StringBuilder response = new StringBuilder();
URI uri = new URI("http://service1.azurewebsites.net/receiverPOST");
MultiValueMap<String, Object> mvm = new LinkedMultiValueMap<String, Object>();
mvm.add("abc", "Hello Part");
result = restTemplate.postForObject(uri, mvm, String.class);
response.append("successPost = " + result);
response.append("\n");
return response;
}
public static void main(String[] args) {
SpringApplication.run(Service2.class, args);
}