programing

스프링 부트 - 다른 시스템(eureka, zuul, 리본, nginx 등)은 무엇에 사용됩니까?

starjava 2023. 3. 18. 08:12
반응형

스프링 부트 - 다른 시스템(eureka, zuul, 리본, nginx 등)은 무엇에 사용됩니까?

나는 와 함께 일해 왔습니다.spring그리고 지금 배우고 싶다.spring boot을 사용하다 말인지 알겠다microservice이치노.microservices spring boot정말 혼란스럽네요

아래에 시스템 목록과 질문을 제시하겠습니다.

  1. Netflix Eureka - 서비스 디스커버리 플랫폼인 것으로 알고 있습니다.모든.services will will will will 。eureka및 all " " " 。microserviceseureka클라이언트에 접속할 수 있습니다.API 게이트웨이가 없으면 이 서비스 레지스트리에 어떤 의미가 있을까요?이는 서비스 레지스트리의 실제 사용법을 이해하기 위한 것입니다.
  2. ZUULAPI 게이트웨이 - 기본적으로 로드밸런서인 API 게이트웨이로 사용할 수 있습니다.요청 URL에 대응하는 적절한 마이크로 서비스를 호출합니다.iS 그 가정이 맞습니까?API 게이트웨이는 적절한 마이크로 서비스를 얻기 위해 Eureka와 상호 작용합니까?

  3. NGINX - 읽은 적이 있습니다.NGINXAPI api api 、 API api api api api api api?게가 ?? 그 .NGINX레지스트리로 할 수 즉, !의 할 수 있습니다.래서어 어떤? ???API api api 、 API api??? ???알고 있습니다.nginx는 웹 이며 웹 서버입니다.reverse proxies를 파워풀하게 설정할 수 있습니다.

  4. AWS api gateway - AWS api gateway를 대신할 수도 있습니까?ZUUL무슨 일입니까?

  5. 리본 - 어떤 용도ribbon★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★!

  6. AWS ALB- 로드밸런싱에도 사용할 수 있습니다.그래서 주울이가 있어야 되는 건가요?AWS ALB

제발 도와주세요.

API 게이트웨이가 없는 경우 이 서비스 레지스트리에 어떤 의미가 있습니까?

예. 예를 들어, 모든 마이크로 서비스의 (IP 및 포트)를 찾는 데 사용할 수 있습니다.이것은 Devops 타입의 작업에 편리합니다.예를 들어 제가 작업했던 프로젝트에서는 Eureka를 사용하여 마이크로 서비스의 모든 인스턴스를 검색하여 상태를 ping했습니다(/health, /info).

ZUUL은 기본적으로 로드 밸런서인 API 게이트웨이로 사용할 수 있는 것으로 알고 있습니다.이 게이트웨이는 요청 URL에 대응하는 적절한 마이크로 서비스를 호출합니다.iS의 가정이 맞습니까?

네, 하지만 더 많은 것을 할 수 있어요.기본적으로 Zuul은 마이크로 서비스로 전환하는 프레임워크/라이브러리에 가깝기 때문에 코드화할 수 있으며, 어떤 종류의 라우팅 로직이라도 구현할 수 있습니다.그런 의미에서 그것은 매우 강력하다.예를 들어 하루 중 시간이나 기타 외부 요인에 따라 라우팅 방법을 변경하려고 합니다. Zuul을 사용하면 라우팅 방법을 변경할 수 있습니다.

API 게이트웨이는 적절한 마이크로 서비스를 얻기 위해 Eureka와 상호작용합니까?

네, 주울이 유레카를 가리키도록 설정해 주세요.Eureka의 클라이언트가 되어, Eureka에 등록해 실시간 갱신(가입 또는 탈퇴한 인스턴스)을 실시합니다.

NGINX도 API 게이트웨이로 사용할 수 있다고 읽었습니다.또한 나는 NGINX와 같은 다른 곳에서 서비스 레지스트리로 사용될 수 있는, 즉 Eureka의 대안으로 읽는다!그래서 어떤 게 옳은가?API 게이트웨이 또는 서비스 레지스트리 또는 둘 다?

Nginx는 매우 강력하며 API 게이트웨이 유형의 작업을 수행할 수 있습니다.하지만 몇 가지 큰 차이점이 있습니다.AFIK, 마이크로서비스는 Nginx에 동적으로 등록할 수 없습니다.잘못됐으면 정정해주세요...유레카에게 할 수 있는 것처럼요둘째, Nginx가 설정 가능성이 매우 높은 것을 알고 있습니다만, 그 설정 능력은 Zuul의 라우팅 기능에 미치지 못할 것으로 생각됩니다(Zuul 내에서 Java 언어 전체를 자유롭게 사용하여 라우팅 로직을 코드화할 수 있기 때문입니다).Nginx와 연동되는 서비스 디스커버리 솔루션이 있을 수 있습니다.따라서 Nginx는 라우팅 등을 처리하지만 서비스 디스커버리에는 여전히 해결책이 필요합니다.

이것도 ZUUL의 대체품으로 사용할 수 있나요?

예, AWS API 게이트웨이를 Zuul 대체품으로 사용할 수 있습니다.여기서의 문제는 Nginx와 마찬가지로 서비스 디스커버리입니다.AWS API 게이트웨이를 통해 라우팅에 논리를 적용할 수 있습니다.주울이처럼 오픈이 되진 않았지만

리본은 어떤 용도로 사용됩니까?

리본 라이브러리는 직접 사용할 수 있지만 대부분 Zuul의 내부 의존관계로 간주됩니다.Zuul이 하는 간단한 부하 밸런싱에 도움이 됩니다.이 프로젝트는 유지보수 모드이므로 더 이상 권장되지 않습니다.

이는 로드 밸런싱에도 사용할 수 있습니다.AWS ALB가 있으면 ZUUL이 필요한 건가요?

ECS(탄성 컨테이너 서비스)와 함께 ALB를 사용하여 Eureka/Zuul을 대체할 수 있습니다.ECS는 서비스 디스커버리를 대행하여 특정 서비스의 모든 인스턴스를 타깃 그룹에 매핑합니다.다음으로 ALB 라우팅 테이블은 단순한 라우팅 규칙에 따라 타깃그룹으로 라우팅 할 수 있습니다.ALB의 라우팅 규칙은 매우 간단하지만 시간이 지남에 따라 개선됩니다.

다른 시스템을 사용하여 작업을 수행할 수 있습니다.microservices스프링 부츠와 함께 제공됩니다.

  1. Eureka: 아마도 최초로 가동된 마이크로 서비스일 것입니다.Eureka는 서비스 레지스트리입니다.즉, 어떤 마이크로서비스가 실행되고 있는지, 어떤 포트로 동작하고 있는지 알 수 있습니다.Eureka는 정밀한 애플리케이션으로 도입하고 있으며,@EnableEurekaServer주석과 함께@SpringBootAPplication앱을 유레카 서버로 만들 수 있습니다.그래서 우리의 유레카 서비스 등록은 가동되고 있습니다.다음부터는 모든 마이크로서비스가 다음을 사용하여 이 Eureka 서버에 등록됩니다.@EnableDiscoveryClient주석과 함께@SpringBootAPplication모든 배포된 마이크로 서비스에 적용됩니다.

  2. 주울: 주울이는load balancer,routing응용 프로그램 및reverse proxy서버도 사용할 수 있습니다.이전에는 역프록시용으로 Apache를 사용했지만 현재는 마이크로서비스용으로 ZUUL을 사용할 수 있습니다.ZUL에서는 /customer/*가 이 마이크로서비스에 접속하는 경우와 같이 설정을 프로그램적으로 설정할 수 있습니다.또한.ZUUL는 로드 밸런서로서도 기능할 수 있습니다.이것에 의해, 라운드로빈 방식으로 적절한 마이크로 서비스가 선택됩니다.그렇다면 ZUUL은 마이크로 서비스의 세부사항을 어떻게 알고 있을까요? 답은 Eureka입니다.와 함께 동작합니다.eureka이치노이은 실제로 이기도 합니다.이 클라이언트에서는, 「ZUUL」의 「Eureka」를 사용해 합니다.이 클라이언트에서는, 다음과 같이 마크 할 필요가 있습니다.@EnableDiscoveryClient이렇게 해서 이 두 앱(유레카와 주울)이 연결되었습니다.

  3. 리본: 로드밸런싱에 리본 사용.이것은 ZUUL 내부에서 이미 사용 가능하며, ZUUL에서는 로드밸런싱에 리본이 사용되고 있습니다.마이크로 서비스는 속성 파일에서 service-name으로 식별됩니다.1개의 마이크로 서비스의 2개의 인스턴스를 다른 포트로 실행하면 Eureka에 의해 식별되며 Ribbon(Inside zuul)과 함께 요청은 균형 있게 리다이렉트됩니다.

  4. AWS ALB, NGINX, AWS API 게이트웨이 등:위에 언급된 모든 것들에 대한 대안이 있습니다.AWS에는 자체 로드 밸런서, 서비스 디스커버리, api 게이트웨이 등이 있습니다. AWS뿐만 아니라 Azure와 같은 모든 클라우드 platofrms에도 이러한 기능이 있습니다.어떤 걸 쓰느냐에 달렸어요.

  5. 일반적인 질문도 추가합니다.「이러한 마이크로 서비스간의 통신 방법:사용 방법」Resttemplate ★★★★★★★★★★★★★★★★★」Feignclient하거나 "rest API"와 같은 를 호출할 수 .Rabbit MQ수 .

Eureka 할 수 NGINX매우 강력한 조합으로 이어집니다.

에 사용하고 있습니다.AWS EC2★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★NGINX는 용 i i용었 i i i i i 。Spring Cloud Gateway 그 전에Zuul에 ····························Spring Cloud Gateway AWS에서 .t3.medium ★★★★★★★★★★★★★★★★★」t3.largeNGINX를 사용하고 .t3.micro 쓸 수 거의 t3.nano('16') 인스턴스 단, 예기치 않은 사태가 발생하지 않도록 하고 싶었습니다.

아래는 Eureka 생태계에서 NGINX를 연결하기 위해 수행해야 하는 높은 수준의 단계입니다.자세한 내용은 스프링 클라우드 게이트웨이 또는 Zuul 기사 대신 NGINX With Eureka를 참조하십시오.

  • Eureka에서 모든 응용 프로그램의 구성을 읽고 NGINX 구성으로 '변환'할 수 있는 서비스를 만듭니다.
  • cronjob 엔트리를 만듭니다.이 엔트리는 특정 기간에 위의 서비스에서 설정을 읽어 NGINX 핫 새로고침을 호출합니다.
  • NGINX: 서비스와 cronjob에서 생성된 설정을 소비하고 API 게이트웨이로 동작합니다.

언급URL : https://stackoverflow.com/questions/52834628/spring-boot-different-systems-eureka-zuul-ribbon-nginx-used-for-what

반응형