Repolode
sogou

sogou/workflow

Sogou의 백엔드 서비스에서 사용하는 C++11 병렬 컴퓨팅 및 비동기 네트워킹 프레임워크로, DAG 기반 태스크 워크플로를 구축합니다.

스타
14,423
포크
2,551
열린 이슈
27
마지막 커밋
그저께

어떤 프로젝트인가요?

Sogou C++ Workflow는 비동기 네트워킹과 병렬 컴퓨팅을 결합한 백엔드 서비스용 C++ 엔진입니다. 태스크를 시리즈, 병렬 구조 및 임의의 DAG 구조로 구성해 네트워크 요청, 연산 작업, 파일 IO를 모두 동일한 흐름에서 실행할 수 있습니다.

프레임워크에는 HTTP, Redis, MySQL(MariaDB 및 TiDB 포함), Kafka용 비동기 클라이언트가 내장되어 있으며, 몇 줄의 코드로 시작할 수 있는 HTTP 서버 API도 제공됩니다. 사용자 정의 프로토콜을 지원해 커스텀 클라이언트, 서버, RPC 시스템을 구축할 수 있고, 마이크로서비스 환경을 위한 서비스 거버넌스와 로드 밸런싱도 지원합니다.

Linux, macOS, Windows(IOCP를 사용하는 별도 브랜치), Android를 대상으로 합니다. master 브랜치에서는 C++11과 OpenSSL 1.1 이상이 필요하며, boost나 asio에는 의존하지 않습니다. Kafka 프로토콜을 사용하려면 lz4, zstd, snappy도 필요합니다.

핵심 기능

  • 01시리즈, 병렬 및 임의의 DAG 태스크 그래프를 구성합니다.
  • 02HTTP, Redis, MySQL, Kafka용 비동기 클라이언트를 제공합니다.
  • 03짧은 코드로 HTTP 서버를 구축할 수 있습니다.
  • 04커스텀 클라이언트, 서버 및 RPC를 위한 사용자 정의 프로토콜을 지원합니다.
  • 05네트워크, 연산, 파일 IO 태스크를 동일한 워크플로에서 실행합니다.
  • 06서비스 거버넌스와 로드 밸런싱 기능을 제공합니다.

활용 사례

  • 네트워크 호출과 CPU 연산 작업을 함께 처리하는 고동시성 백엔드 서비스를 구축합니다.
  • 서로 의존성이 있는 여러 비동기 API 또는 데이터베이스 호출을 오케스트레이션합니다.
  • 사용자 정의 프로토콜을 기반으로 커스텀 RPC 시스템을 만듭니다.
  • 로드 밸런싱이 내장된 C++ 마이크로서비스 구성 요소를 개발합니다.

빠른 시작

  1. 1

    저장소를 클론합니다

    git clone https://github.com/sogou/workflow
  2. 2

    프로젝트 디렉터리로 이동해 라이브러리를 빌드합니다

    cd workflow make
  3. 3

    튜토리얼 예제를 빌드합니다

    cd tutorial make

사용 전 알아둘 점

  • nossl 브랜치를 사용하지 않는 한 master 브랜치에는 OpenSSL 1.1 이상이 필요합니다.
  • Kafka를 지원하려면 추가 압축 라이브러리(lz4, zstd, snappy)를 설치해야 합니다.
  • Windows 지원은 메인 코드베이스가 아닌 별도의 브랜치에 있습니다.

포함된 컬렉션

토픽

자주 묻는 질문

workflow은(는) 무엇인가요?
Sogou의 백엔드 서비스에서 사용하는 C++11 병렬 컴퓨팅 및 비동기 네트워킹 프레임워크로, DAG 기반 태스크 워크플로를 구축합니다. Sogou C++ Workflow는 비동기 네트워킹과 병렬 컴퓨팅을 결합한 백엔드 서비스용 C++ 엔진입니다. 태스크를 시리즈, 병렬 구조 및 임의의 DAG 구조로 구성해 네트워크 요청, 연산 작업, 파일 IO를 모두 동일한 흐름에서 실행할 수 있습니다.
workflow은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
workflow은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
workflow은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. workflow의 마지막 커밋은 2026년 10월 22일입니다.
workflow은(는) 어디에 사용할 수 있나요?
네트워크 호출과 CPU 연산 작업을 함께 처리하는 고동시성 백엔드 서비스를 구축합니다. 서로 의존성이 있는 여러 비동기 API 또는 데이터베이스 호출을 오케스트레이션합니다. 사용자 정의 프로토콜을 기반으로 커스텀 RPC 시스템을 만듭니다. 로드 밸런싱이 내장된 C++ 마이크로서비스 구성 요소를 개발합니다.
workflow는 어떻게 설치하나요?
저장소를 클론합니다: git clone https://github.com/sogou/workflow 프로젝트 디렉터리로 이동해 라이브러리를 빌드합니다: cd workflow make 튜토리얼 예제를 빌드합니다: cd tutorial make
workflow은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/sogou/workflow

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

관련 프로젝트