Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 如何配置云上的微服务以便相互通信_Azure_Spring Boot_Microservices_Azure Cloud Services_Netflix Eureka - Fatal编程技术网

Azure 如何配置云上的微服务以便相互通信

Azure 如何配置云上的微服务以便相互通信,azure,spring-boot,microservices,azure-cloud-services,netflix-eureka,Azure,Spring Boot,Microservices,Azure Cloud Services,Netflix Eureka,我在azure云上部署了两个不同的spring boot微服务。使用micro service,我还部署了eureka。当我在eureka上注册两个微服务时,它就完成了。我的下一个任务是将数据从一个微服务发送到另一个微服务。我是spring boot的新手,所以在本地系统上我执行相同的任务,并且工作正常,但在azure micro服务上,它们彼此之间没有通信。由于IP和主机名是动态的,所以我无法使用外部客户端和rest模板建立连接。请建议我需要进行什么配置才能完成此任务 我所做的 我已在eure

我在azure云上部署了两个不同的spring boot微服务。使用micro service,我还部署了eureka。当我在eureka上注册两个微服务时,它就完成了。我的下一个任务是将数据从一个微服务发送到另一个微服务。我是spring boot的新手,所以在本地系统上我执行相同的任务,并且工作正常,但在azure micro服务上,它们彼此之间没有通信。由于IP和主机名是动态的,所以我无法使用外部客户端和rest模板建立连接。请建议我需要进行什么配置才能完成此任务

我所做的

我已在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/
spring.application.name=service2.azurewebsites.net
eureka.client.registerWithEureka=true
eureka.client.serviceUrl.defaultZone=http://eureka.azurewebsites.net/eureka/
azure中的服务2:

spring.application.name=service1.azurewebsites.net
eureka.client.registerWithEureka=true
eureka.client.serviceUrl.defaultZone=http://eureka.azurewebsites.net/eureka/
spring.application.name=service2.azurewebsites.net
eureka.client.registerWithEureka=true
eureka.client.serviceUrl.defaultZone=http://eureka.azurewebsites.net/eureka/
现在,当我尝试从服务1调用RESTAPI到另一个服务2时,会出现未知主机异常

下面是代码片段:

@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);
       } 
@RestController
@启用自动配置
@组件扫描
@SpringBoot应用程序
@EnableDiscoveryClient
公共类服务2{
私有静态最终记录器LOG=LoggerFactory.getLogger(PLMBommsApplication.class);
@豆子
@负载平衡
RestTemplate RestTemplate(){
返回新的RestTemplate();
}
@自动连线
rest模板rest模板;
@请求映射(value=“/”)
public StringBuilder fromCall()抛出URI语法异常{
StringBuilder响应=新建StringBuilder();
URI=新的URI(“http://service1.azurewebsites.net/receiverPOST");
MultiValueMap mvm=新链接的MultiValueMap();
mvm.add(“abc”、“你好部件”);
结果=restTemplate.postForObject(uri、mvm、String.class);
response.append(“successPost=“+result”);
响应。追加(“\n”);
返回响应;
}
公共静态void main(字符串[]args){
run(Service2.class,args);
} 

您可以添加错误的堆栈跟踪吗?@stephall我没有关于此程序的任何错误,微服务已在eureka上注册,但它们之间没有通信。我引用您的话“现在,当我尝试从服务1调用rest api到另一个服务2 get unknowhost exception时。”应该在某个地方有堆栈跟踪。