이봐! 저는 Spring for Shutter의 공급 업체이며 오늘은 셔터 제품의 Spring에서 마이크로 서비스 커뮤니케이션을 관리하는 방법에 대해 이야기하고 싶습니다. 그것은 약간의 기술적 인 주제이지만 이해하기 쉬운 방식으로 분류하기 위해 최선을 다하겠습니다.


먼저, 셔터 비즈니스를 위해 봄에 마이크로 서비스 커뮤니케이션이 왜 중요한지에 대해 이야기 해 봅시다. 셔터 제조의 세계에는 다양한 구성 요소와 프로세스가 있습니다. 예를 들어, 우리는 있습니다롤러 셔터 사이드 프레임 90 °,,롤러 셔터 변속기 크라운, 그리고롤러 셔터 크랭크 휠. 이러한 각 부분은 스프링 기반 시스템의 다른 마이크로 서비스에 의해 관리 될 수 있습니다.
이 마이크로 서비스가 잘 전달 될 수 없을 때, 공장에 많은 사람들이 서로 이야기하지 않는 것과 같습니다. 당신은 지연, 실수 및 많은 두통으로 끝납니다. 따라서 이러한 마이크로 서비스가 정보를 원활하게 공유 할 수 있는지 확인해야합니다.
Spring에서 마이크로 서비스 통신을 관리하는 주요 방법 중 하나는 RESTful API를 통한 것입니다. REST (표현 상태 전송)는 웹 서비스를 구축하는 정말 인기있는 방법입니다. 셔터 시스템의 스프링에서는 각 마이크로 서비스에 대한 편안한 엔드 포인트를 만들 수 있습니다. 예를 들어, [롤러 셔터 사이드 프레임 90 °]의 인벤토리를 관리하는 마이크로 서비스가있는 경우 다른 마이크로 서비스가 재고 레벨을 확인하는 데 사용할 수있는 REST API를 노출시킬 수 있습니다.
다음은 봄에 편안한 API를 만드는 방법에 대한 간단한 예입니다. Spring Boot를 사용해 드리겠습니다. Spring Boot는 Spring 기반 응용 프로그램을 빠르게 구축하기위한 훌륭한 프레임 워크입니다.
org.springframework.boot.springApplication import; org.springframework.boot.autoconfigure.springbootapplication import; org.springframework.web.bind.annotation.getMapping; org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController Public Class ShutterInventoryService {public static void main (String [] args) {springApplication.run (shutterinventoryservice.class, args); } @getMapping ( "/inventory/roller shutter-side-frame-90") public int getRollersHutterSideFrame90Inventory () {// 여기에 실제로 데이터베이스를 쿼리하여 인벤토리 카운트 리턴 10을 가져옵니다. }}
이 코드에서는 [롤러 셔터 사이드 프레임 90 °]의 인벤토리 수를 반환하는 간단한 RESTFUL API를 만들었습니다. 그런 다음 다른 마이크로 서비스는 HTTP GET 요청을 사용하여 필요한 정보를 얻기위한 요청을 사용 하여이 API를 호출 할 수 있습니다.
마이크로 서비스 통신의 또 다른 중요한 측면은 메시지 기반 커뮤니케이션입니다. Spring은 Spring Cloud Stream과 같은 기술을 통해 메시지 기반 시스템을 지원합니다. 메시지 기반 통신을 통해 마이크로 서비스는 메시지를 비동기로 보내고받을 수 있습니다.
[롤러 셔터 크랭크 휠] 주문을 처리하는 마이크로 서비스가 있다고 가정 해 봅시다. 주문이 배치되면이 마이크로 서비스는 메시지 브로커 (Kafka 또는 RabbitMQ와 같은)에게 메시지를 보낼 수 있습니다. 인벤토리 관리 마이크로 서비스와 같은 다른 마이크로 서비스는 이러한 메시지를 듣고 그에 따라 재고를 업데이트 할 수 있습니다.
다음은 Spring Cloud Stream을 사용하여 메시지를 보내고받는 방법의 예입니다.
org.springframework.cloud.stream.annotation.enablebinding; import org.springframework.cloud.stream.annotation.input; org.springframework.cloud.stream.annotation.output import; import org.springframework.cloud.stream.annotation.streamlistener; org.springframework.messaging.messagechannel; org.springframework.messaging.support.messageBuilder; org.springframework.stereotyp.service; java.util.logging.logger import; 인터페이스 shutterOrderChannels {문자열 입력 = "셔터 - 순서 - 입력"; 문자열 출력 = "셔터 - 순서 - 출력"; @Input (입력) org.springframework.messaging.subscribablechannel input (); @output (output) MessageChannel output (); } @enableBinding (shutterOrderChannels.class) @Service public class shutterorderservice {private static final logger = logger.getLogger (shutterorderservice.class.getName ()); 개인 최종 ShutterOrderChannels 채널; public shutterorderservice (shutterorderChannels 채널) {this.channels = 채널; } public void sendOrderMessage (String Order) {channels.output (). send (messageBuilder.withPayLoad (Order) .build ()); } @StreamListener (shutterOrderChannels.Input) public void handlorderMessage (String Order) {logger.info ( "수신 순서 :" + order); // 여기에서 우리는 업데이트 인벤토리와 같은 순서로 무언가를 할 수 있습니다}}
이 코드에서는 셔터 주문과 관련된 메시지를 보내고받을 수있는 서비스를 만들었습니다. 이런 식으로, 다른 마이크로 서비스는 비동기 및 분리 된 방식으로 서로 통신 할 수 있습니다.
실제 세계 시나리오에서 마이크로 서비스 커뮤니케이션을 관리 할 때는 서비스 발견에 대해서도 생각해야합니다. 셔터 시스템의 큰 스프링에는 수십 또는 수백 마이크로 서비스가있을 수 있습니다. 각 마이크로 서비스가 통신 해야하는 다른 모든 마이크로 서비스의 정확한 위치 (IP 주소 및 포트)를 아는 것은 실용적이지 않습니다.
Spring Cloud Netflix Eureka는 서비스 발견을위한 훌륭한 도구입니다. 마이크로 서비스는 Eureka 서버에 스스로 등록 할 수 있으며 다른 마이크로 서비스는 Eureka 서버를 통해 필요한 서비스의 위치를 찾을 수 있습니다.
Spring Boot에서 Eureka Server를 설정하는 방법은 다음과 같습니다.
org.springframework.boot.springApplication import; org.springframework.boot.autoconfigure.springbootapplication import; org.springframework.cloud.netflix.eureka.server.enableeurekaserver; @SpringBootApplication @enableEureKaserver Public Class ShuttereureKaserver {public static void main (String [] args) {springApplication.run (shuttereurekaserver.class, args); }}
그리고 여기 마이크로 서비스가 Eureka 서버에 스스로 등록 할 수있는 방법은 다음과 같습니다.
org.springframework.boot.springApplication import; org.springframework.boot.autoconfigure.springbootapplication import; org.springframework.cloud.netflix.eureka.enableeurekaclient; @SpringBootApplication @enableEureKaclient Public Class ShuttermicRoservice {public static void main (String [] args) {springApplication.run (shuttermicroservice.class, args); }}
Eureka를 사용하면 마이크로 서비스는 서비스 위치를 강화하지 않고도 쉽게 서로를 찾고 의사 소통 할 수 있습니다.
결론적으로, 셔터 제품을위한 봄에 마이크로 서비스 통신을 관리하는 것은 비즈니스의 원활한 운영에 중요합니다. 편안한 API, 메시지 기반 커뮤니케이션 또는 서비스 발견을 통해 관계없이 우리는 처분 할 수있는 많은 도구가 있습니다.
셔터 제품을위한 고품질 스프링 시장에 있고 상위 품질과 효율성을 보장하기 위해 마이크로 서비스를 관리하는 방법에 관심이 있다면, 나는 당신과 대화를 나누고 싶습니다. 우리는 귀하의 특정 요구 사항과 귀하의 제품이 귀하의 비즈니스에 어떻게 적합 할 수 있는지 논의 할 수 있습니다. 주저하지 말고 조달 토론을 위해 연락하십시오.
참조
- 스프링 부츠 문서
- 스프링 클라우드 문서
- 편안한 API 디자인 모범 사례
- 메시지 - 분산 시스템의 기반 통신




