FPNN을 한 문장으로 요약하면 다음과 같습니다.
누구도 바퀴를 재발명하고 싶어하지 않습니다.
그런데 바퀴가 모두 작동하지 않으면 어떻게 해야 할까요?
Thrift를 사용한 이전 프로젝트에서 너무 많은 함정에 직면했다는 사실을 고려하여 Thrift 자체의 문제를 해결하는 데 많은 리소스가 소비되었습니다.
회사의 인프라 도구 준비 및 기술 축적을 바탕으로 ICE, ACE, Codra 등 잘 알려진 RPC 프레임워크를 사용한 이전 경험을 바탕으로 회사의 비즈니스 및 인프라에 더 적합한 RPC 프레임워크를 개발하기로 결정했습니다. .
최고의 휠은 없고 가장 적합한 휠만 있을 뿐입니다.
RPC 프레임워크도 마찬가지입니다.
IPv4 지원
IPv6 지원
TCP 바이너리 개인 프로토콜 지원
UDP 바이너리 개인 프로토콜 지원
안정적인 UDP 링크 지원
신뢰할 수 있는/비신뢰할 수 있는 UDP 데이터 혼합 전송 지원
HTTP 1.1 지원(선택적 지원)
웹소켓 지원
SSL/TLS 지원
msgpack 인코딩 지원
JSON 형식 지원
선택적 매개변수 지원
무기한 유형 매개변수 지원
가변 길이 및 가변 유형 매개변수 지원
인터페이스 그레이스케일 호환성 지원
TCP 바이너리 프라이빗 프로토콜 및 HTTP Json 형식 변환 지원
지원 서버 푸시
비동기 작업 지원
동기 작동 지원
람다 기능 지원
시스템 수준 매개변수의 동적 조정 지원
프레임워크 수준 매개변수의 동적 조정 지원
서비스 실행 상태 실시간 보기 지원
각 매개변수 상태에 대한 실시간 보기 지원
장애 조치 지원
통합 로그 요약 지원
우아한 종료 지원
통합 예외 처리 지원
동일한 포트에서 여러 프로토콜(TCP/HTTP/WebSocket) 지원
조기 응답 반환 지원
비동기식 응답 반환 지원
지원 요청 응답 시간 통계
QPS 통계 지원
느린 요청 통계 지원
시스템 내장 명령의 우선순위 실행 지원
AES 암호화 지원
ECDH 키 교환 지원
128비트 또는 256비트 키 지원
IP 화이트리스트 지원
IP 세그먼트 화이트리스트 지원
사용자 정의 인터페이스에 액세스할 때 암호화 제한 지원
사용자 정의 인터페이스에 액세스할 때 인트라넷 제한 지원
FPNN 기술 생태계에서는 다음과 같은 추가 기능을 제공합니다.
스트레스 테스트(v1.0.0):
TCP 데이터 요약
동일한 LAN
모델 | 가상 CPU | 메모리(GB) | 링크 수 | QPS | 평균 응답 시간(usec) |
---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 1000 | 49,708 | 335 |
--- | --- | --- | --- | --- | --- |
AWS m5.xlarge | 4 | 16 | 130 | 227,919 | 12,854 |
AWS m5.xlarge | 4 | 16 | 1,500 | 148,959 | 10,403 |
AWS m5.xlarge | 4 | 16 | 2,000 | 99,552 | 356 |
AWS m5.xlarge | 4 | 16 | 3,000 | 149,615 | 27,456 |
대륙 간 전송: 독일 프랑크푸르트에서 미국 서부 오레곤까지
모델 | 가상 CPU | 메모리(GB) | 링크 수 | QPS | 평균 응답 시간(usec) | 핑/2(밀리초) |
---|---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 10 | 17,921 | 147,825 | 137 |
--- | --- | --- | --- | --- | ---- | --- |
AWS m5.xlarge | 4 | 16 | 190 | 338,601 | 151,772 | 139 |
AWS m5.xlarge | 4 | 16 | 700 | 339,240 | 183,541 | 136 ~ 137 |
AWS m5.xlarge | 4 | 16 | 3,200 | 312,073 | 256,980 | 139 ~ 141 |
AWS m5.xlarge | 4 | 16 | 6,000 | 299,175 | 346,927 | 136 ~ 137 |
UDP 데이터 요약
동일한 LAN
모델 | 가상 CPU | 메모리(GB) | 링크 수 | QPS | 평균 응답 시간(usec) |
---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 10 | 17,628 | 199 |
--- | --- | --- | --- | --- | --- |
AWS m5.xlarge | 4 | 16 | 70 | 123,009 | 1,174 |
AWS m5.xlarge | 4 | 16 | 80 | 122,641 | 24,623 |
AWS m5.xlarge | 4 | 16 | 800 | 73,030 | 1,306 |
AWS m5.xlarge | 4 | 16 | 200 | 95,894 | 400 |
AWS m5.xlarge | 4 | 16 | 1,000 | 49,590 | 3,832 |
대륙 간 전송: 독일 프랑크푸르트에서 미국 서부 오레곤까지
모델 | 가상 CPU | 메모리(GB) | 링크 수 | QPS | 평균 응답 시간(usec) | 핑/2(밀리초) |
---|---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 100 | 48,493 | 138,859 | 138 |
--- | --- | --- | --- | --- | ---- | --- |
AWS m5.xlarge | 4 | 16 | 60 | 107,528 | 139,968 | 140 |
AWS m5.xlarge | 4 | 16 | 800 | 79,503 | 139,974 | 138 ~ 139 |
대규모 링크(v1.0.0):
TCP 데이터 요약
모델 | 가상 CPU | 메모리(GB) | 링크 수 | QPS | 평균 응답 시간(usec) |
---|---|---|---|---|---|
AWS m5.2xlarge | 8 | 32 | 2,040,000 | 81,351 | 446 |
AWS m5.2xlarge | 8 | 32 | 2,040,000 | 137,294 | 4,985 |
AWS m5.2xlarge | 8 | 32 | 2,040,000 | 179,794 | 11,345 |
UDP 데이터 요약
모델 | 가상 CPU | 메모리(GB) | 링크 수 | QPS | 평균 응답 시간(usec) |
---|---|---|---|---|---|
AWS m5.2xlarge | 8 | 32 | 12,200 | 5,957 | 11,480 |
AWS m5.2xlarge | 8 | 32 | 19,000 | 721 | 1,857 |
구체적인 성능 소개 및 더 많은 데이터를 보려면 FPNN 성능 보고서를 참조하세요.
환경적 요구
운영 체제 | 컴파일러 |
---|---|
센트OS 7 | GCC/G++ 4.8.5 |
센트OS 8 | GCC/G++ 8 |
우분투 20 | GCC/G++ 9 |
맥OS 11.5 | XCode/애플 클랭 12 |
타사 라이브러리 종속성
FPNN 프레임워크 컴파일 및 설치
프로젝트 루트 디렉터리에서 make
실행하면 됩니다.
자세한 내용은 FPNN 설치 및 통합을 참조하세요.
FPNN 프레임워크를 사용하여 개발됨
보다
참고 사항 및 문제 해결
주의 사항은 FPNN 참고 사항을 참조하세요.
문제 해결은 FPNN 문제 해결을 참조하세요.
모범 사례
중국어 문서 색인