สรุปหนึ่งประโยคของ FPNN:
ไม่มีใครอยากคิดค้นล้อใหม่
แต่จะทำอย่างไรเมื่อล้อทุกล้อไม่ทำงาน?
เนื่องจากโครงการก่อนหน้านี้ที่ใช้ Thrift เผชิญกับข้อผิดพลาดมากเกินไป จึงมีการใช้ทรัพยากรจำนวนมากในการแก้ปัญหาของ Thrift เอง
จากการจัดเตรียมและการสะสมทางเทคนิคของเครื่องมือโครงสร้างพื้นฐานของบริษัท รวมกับประสบการณ์ก่อนหน้านี้ในการใช้เฟรมเวิร์ก RPC ที่รู้จักกันดี เช่น ICE, ACE และ Codra เราตัดสินใจพัฒนาเฟรมเวิร์ก RPC ที่เหมาะสมมากขึ้นสำหรับธุรกิจและโครงสร้างพื้นฐานของบริษัท .
ไม่มีล้อที่ดีที่สุด มีแต่ล้อที่เหมาะสมที่สุดเท่านั้น
เช่นเดียวกับเฟรมเวิร์ก RPC
รองรับ IPv4
รองรับ IPv6
รองรับโปรโตคอลส่วนตัวไบนารี TCP
รองรับโปรโตคอลส่วนตัวไบนารี UDP
รองรับลิงค์ UDP ที่เชื่อถือได้
รองรับการส่งข้อมูล UDP แบบผสมที่เชื่อถือได้/ไม่น่าเชื่อถือ
รองรับ HTTP 1.1 (รองรับทางเลือก)
รองรับ WebSocket
รองรับ SSL/TLS
รองรับการเข้ารหัส msgpack
รองรับรูปแบบ Json
รองรับพารามิเตอร์เสริม
รองรับพารามิเตอร์ประเภทไม่ จำกัด
รองรับความยาวตัวแปรและพารามิเตอร์ประเภทตัวแปร
รองรับอินเทอร์เฟซความเข้ากันได้ระดับสีเทา
รองรับโปรโตคอลส่วนตัวไบนารี TCP และการแปลงรูปแบบ HTTP Json
รองรับเซิร์ฟเวอร์พุช
รองรับการทำงานแบบอะซิงโครนัส
รองรับการทำงานแบบซิงโครนัส
รองรับฟังก์ชั่นแลมบ์ดา
รองรับการปรับพารามิเตอร์ระดับระบบแบบไดนามิก
รองรับการปรับพารามิเตอร์ระดับเฟรมเวิร์กแบบไดนามิก
รองรับการดูสถานะการทำงานของบริการแบบเรียลไทม์
รองรับการดูสถานะพารามิเตอร์แต่ละรายการแบบเรียลไทม์
รองรับการเฟลโอเวอร์
รองรับการสรุปบันทึกแบบรวม
รองรับการออกอย่างสง่างาม
รองรับการจัดการข้อยกเว้นแบบรวมศูนย์
รองรับหลายโปรโตคอล (TCP/HTTP/WebSocket) บนพอร์ตเดียวกัน
สนับสนุนการตอบกลับก่อนกำหนด
รองรับการตอบกลับแบบอะซิงโครนัส
สนับสนุนสถิติเวลาตอบสนองคำขอ
รองรับสถิติ QPS
รองรับสถิติคำขอที่ช้า
รองรับการดำเนินการตามลำดับความสำคัญของคำสั่งในตัวระบบ
รองรับการเข้ารหัส AES
รองรับการแลกเปลี่ยนคีย์ ECDH
รองรับคีย์ 128 บิตหรือ 256 บิต
รองรับรายการที่อนุญาต IP
รองรับรายการที่อนุญาตของกลุ่ม IP
รองรับข้อจำกัดการเข้ารหัสเมื่อเข้าถึงอินเทอร์เฟซที่ผู้ใช้กำหนด
รองรับข้อจำกัดอินทราเน็ตเมื่อเข้าถึงอินเทอร์เฟซที่ผู้ใช้กำหนด
ในระบบนิเวศเทคโนโลยี FPNN มีฟังก์ชันเพิ่มเติมดังต่อไปนี้
การทดสอบความเครียด (v1.0.0):
สรุปข้อมูล TCP
แลนเดียวกัน
แบบอย่าง | ซีพียูเสมือน | หน่วยความจำ (GB) | จำนวนลิงก์ | คิวพีเอส | เวลาตอบสนองโดยเฉลี่ย (usec) |
---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 1,000 | 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 |
การส่งสัญญาณข้ามทวีป: แฟรงก์เฟิร์ต, เยอรมนีถึงโอเรกอน, สหรัฐอเมริกาตะวันตก
แบบอย่าง | ซีพียูเสมือน | หน่วยความจำ (GB) | จำนวนลิงก์ | คิวพีเอส | เวลาตอบสนองโดยเฉลี่ย (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
แลนเดียวกัน
แบบอย่าง | ซีพียูเสมือน | หน่วยความจำ (GB) | จำนวนลิงก์ | คิวพีเอส | เวลาตอบสนองโดยเฉลี่ย (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 |
การส่งสัญญาณข้ามทวีป: แฟรงก์เฟิร์ต, เยอรมนีถึงโอเรกอน, สหรัฐอเมริกาตะวันตก
แบบอย่าง | ซีพียูเสมือน | หน่วยความจำ (GB) | จำนวนลิงก์ | คิวพีเอส | เวลาตอบสนองโดยเฉลี่ย (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
แบบอย่าง | ซีพียูเสมือน | หน่วยความจำ (GB) | จำนวนลิงก์ | คิวพีเอส | เวลาตอบสนองโดยเฉลี่ย (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
แบบอย่าง | ซีพียูเสมือน | หน่วยความจำ (GB) | จำนวนลิงก์ | คิวพีเอส | เวลาตอบสนองโดยเฉลี่ย (usec) |
---|---|---|---|---|---|
AWS m5.2xlarge | 8 | 32 | 12,200 | 5,957 | 11,480 |
AWS m5.2xlarge | 8 | 32 | 19,000 | 721 | 1,857 |
สำหรับการแนะนำประสิทธิภาพที่เฉพาะเจาะจงและข้อมูลเพิ่มเติม โปรดดูรายงานประสิทธิภาพของ FPNN
ความต้องการด้านสิ่งแวดล้อม
ระบบปฏิบัติการ | คอมไพเลอร์ |
---|---|
เซนโอเอส 7 | GCC/G++ 4.8.5 |
เซนโอเอส 8 | จีซีซี/จี++ 8 |
อูบุนตู 20 | จีซีซี/จี++ 9 |
แมคโอเอส 11.5 | XCode/Apple เสียงดังกราว 12 |
การพึ่งพาไลบรารีของบุคคลที่สาม
คอมไพล์และติดตั้งเฟรมเวิร์ก FPNN
เพียงดำเนินการ make
ในไดเร็กทอรีรูทของโปรเจ็กต์
สำหรับรายละเอียด โปรดดูการติดตั้งและการรวม FPNN
พัฒนาโดยใช้กรอบงาน FPNN
ดู
หมายเหตุและการแก้ไขปัญหา
โปรดดูหมายเหตุของ FPNN สำหรับข้อควรระวัง
สำหรับการแก้ไขปัญหา โปรดดูที่ การแก้ไขปัญหา FPNN
แนวทางปฏิบัติที่ดีที่สุด
ดัชนีเอกสารภาษาจีน