CF (자체 컨테이너의 각 서비스)에 두 개의 노드 서비스를 배포해야합니다. 앱이 통신해야합니다. 이 의사 소통을 구현하는 방법은 무엇입니까? CF에서 서비스 간 통신을 설명하는 가이드를 찾을 수 없으며 클라우드에 배포해야하므로 몇 가지 모범 사례가 필요합니다. 몇 가지 예가 도움이 될 것입니다.Cloud Foundry 용 서비스 - 서비스 통신
답변
답변은 앱간에 원하는 통신의 유형에 따라 달라집니다. 당신은 독립적 인, 세분화 된 비즈니스 기능을 수행하여 노드 서비스에 대한 microservice-based architecture 패턴, 즉 서버 코드를 배포 할 찾고 있다면
, 나는 docs here을 읽고 새로운 Bluemix Developer Console를 사용하여 시작하는 것이 좋습니다.
개방형 API 사양을 준수하는 API 끝점을 노출하고 옴니 채널 클라이언트 용 SDK를 자동 생성함으로써 서로 통신 할 수있는 클라우드 기본 앱을 이해하고 개발하는 데 사용할 수있는 패턴 및 시작점 세트가 늘어납니다. 응용 프로그램.
선택한 스타터를 다운로드 한 후 코드를 수정하여 필요한 비즈니스 로직을 수행하는 API를 노출 할 수 있습니다. 결과적으로 프로젝트를 컨테이너에서 로컬로 실행하거나 bx dev
명령 줄 도구를 사용하여 Bluemix에 배포 할 수 있습니다.
설정 한 후에는 마이크로 서비스와 클라이언트 응용 프로그램 사이에 언어와 독립적 인 플랫폼 간 플랫폼이 있습니다.
이것은 항상 모든 엔터프라이즈 응용 프로그램 통합 패턴을 해결하기 위해 나온 고전적인 질문이며 필요한 통합 유형이 무엇인지에 달려 있습니다.
동기식 통신에 실시간 응답을 받으려는 경우 RESTFul API는이 시대에서 가장 사랑받는 통합 스타일입니다. 그러나 거대한 수의 API (Microservices 기반 아키텍처로가는 단점)의 생성은 또한 세트를 유지하고 올바른 것을 찾는 거대한 오버 헤드를 초래한다는 것을 고려해야합니다. API 게이트웨이 및 서비스 검색 도구는 여기에서 도움이되어야합니다. 나는 Blue mix에 관한 초심자이지만 목적에 부합하기 위해 Spring-Cloud-Eureka
또는 Consul
기반 서비스 검색을 호스팅 할 수 있으며 마찬가지로 Spring Cloud Zuul
에 API 게이트웨이가 있습니다.
또 다른 간단한 캐치는 마이크로 서비스 세계 전체를 수용하기 위해 하나의 중앙 서비스를 뚱뚱한 spof로 구축하지 않고 문맥에 구속 된 마이크로 서비스를 제공하는 많은 서비스를 제공하는 것입니다. 필요가 비동기 통신을 가지고있는 경우 유사한 행에
는 메시지 브로커는 다음과 같은 - RabbitMQ, Kakfa 앱이 통신 할 최고의 간단한 통합 스타일이어야한다. SPOF 서비스를 구축하지 않는 대신 동일한 범위의 제한된 마이크로 서비스 집합에 대해 각각 별도의 서비스 인스턴스를 적용해야합니다. 더 넓은 통신을 위해 이러한 모든 인스턴스가 더 연합되어야합니다.
Cloud Foundry 앱 컨테이너 (Diego) 또는 Bluemix의 Docker 컨테이너를 의미합니까? –
@data_henrik - 앱 컨테이너 (Diego) –
여기에는 매우 비슷한 질문이 있습니다. (http://stackoverflow.com/questions/41781635/app-to-app-communication-in-cloud-foundry) 대답은 두 가지를 다룹니다. 메시지 브로커를 사용하거나 서비스 레지스트리를 사용하는 명백한 접근법. – Ben