Repolode
smallnest

smallnest/rpcx

플러그형 서비스 디스커버리, 다양한 전송 방식과 코덱, HTTP를 통한 다국어 접근을 지원하는 마이크로서비스 구축용 Go RPC 프레임워크입니다.

스타
8,319
포크
1,173
열린 이슈
4
마지막 커밋
2개월 전

어떤 프로젝트인가요?

rpcx는 Alibaba Dubbo를 본떠 Go로 작성된 RPC 프레임워크로, 애플리케이션을 네트워크를 통해 서로 호출하는 서비스들로 나눌 수 있습니다. proto 파일을 작성하지 않고도 Go 함수를 RPC 메서드로 직접 노출할 수 있으며, 클라이언트는 로드 밸런싱과 장애 조치 옵션을 제공하는 간단한 API로 해당 메서드를 호출합니다.

TCP, HTTP, QUIC, KCP 전송 방식과 JSON, Protobuf, MessagePack, raw bytes 등의 코덱을 지원합니다. 서비스 디스커버리에는 peer-to-peer 설정, zookeeper, etcd, consul, mDNS를 사용할 수 있으며, 로드 밸런싱은 랜덤, 라운드 로빈, 일관된 해싱, 가중치 기반 등 다양한 전략을 제공합니다. HTTP 게이트웨이를 통해 다른 언어에서도 서비스를 호출할 수 있으며, Java와 Rust 구현도 제공됩니다.

인증, 메타데이터 전달, 압축, 하트비트, 양방향 통신, 백업 요청 등의 기능이 포함되어 있습니다. etcd, zookeeper, consul을 포함한 일부 플러그인은 버전 1.7.6부터 별도 저장소로 이전되었습니다.

핵심 기능

  • 01일반 Go 메서드를 proto 파일 없이 RPC 엔드포인트로 노출합니다.
  • 02TCP, HTTP, QUIC, KCP 전송 방식을 지원합니다.
  • 03JSON, Protobuf, MessagePack, raw byte 코덱을 제공합니다.
  • 04peer-to-peer, zookeeper, etcd, consul, mDNS를 통한 서비스 디스커버리를 지원합니다.
  • 05로드 밸런싱 전략과 failover, failfast, failtry 장애 허용 모드를 제공합니다.

활용 사례

  • RPC로 서로 호출하는 마이크로서비스로 Go 백엔드를 분리할 때.
  • HTTP 게이트웨이를 통해 다른 언어로 작성된 서비스에서 Go 서비스를 호출할 때.
  • 서비스 디스커버리와 로드 밸런싱이 필요한 내부 서비스 간 통신을 구축할 때.

포함된 컬렉션

토픽

자주 묻는 질문

rpcx은(는) 무엇인가요?
플러그형 서비스 디스커버리, 다양한 전송 방식과 코덱, HTTP를 통한 다국어 접근을 지원하는 마이크로서비스 구축용 Go RPC 프레임워크입니다. rpcx는 Alibaba Dubbo를 본떠 Go로 작성된 RPC 프레임워크로, 애플리케이션을 네트워크를 통해 서로 호출하는 서비스들로 나눌 수 있습니다. proto 파일을 작성하지 않고도 Go 함수를 RPC 메서드로 직접 노출할 수 있으며, 클라이언트는 로드 밸런싱과 장애 조치 옵션을 제공하는 간단한 API로 해당 메서드를 호출합니다.
rpcx은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
rpcx은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
rpcx은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. rpcx의 마지막 커밋은 2026년 9월 3일입니다.
rpcx은(는) 어디에 사용할 수 있나요?
RPC로 서로 호출하는 마이크로서비스로 Go 백엔드를 분리할 때. HTTP 게이트웨이를 통해 다른 언어로 작성된 서비스에서 Go 서비스를 호출할 때. 서비스 디스커버리와 로드 밸런싱이 필요한 내부 서비스 간 통신을 구축할 때.
rpcx은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/smallnest/rpcx

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트