Краткое изложение FPNN одним предложением:
Никто не хочет изобретать велосипед.
Но что делать, если не работают все колеса?
Ввиду того, что предыдущие проекты с использованием Thrift встречали слишком много подводных камней, много ресурсов было потрачено на решение проблем самого Thrift.
На основе подготовки и технического накопления инфраструктурных инструментов компании в сочетании с предыдущим опытом использования известных RPC-фреймворков, таких как ICE, ACE и Codra, мы решили разработать RPC-фреймворк, более подходящий для бизнеса и инфраструктуры компании. .
Не существует лучшего колеса, есть только самое подходящее.
То же самое касается и фреймворков RPC.
Поддержка IPv4
Поддержка IPv6
Поддержка двоичного частного протокола TCP
Поддержка двоичного частного протокола UDP
Поддерживает надежные каналы UDP.
Поддержка надежной/ненадежной смешанной отправки данных UDP.
Поддержка HTTP 1.1 (дополнительная поддержка)
Поддержка веб-сокета
Поддержка SSL/TLS
Поддержка кодировки msgpack
Поддержка формата Json
Поддерживает дополнительные параметры
Поддержка параметров неопределенного типа
Поддержка параметров переменной длины и типа переменной.
Поддержка совместимости интерфейса в оттенках серого
Поддержка двоичного частного протокола TCP и преобразования формата HTTP Json.
Поддержка сервера Push
Поддержка асинхронных операций
Поддержка синхронной работы
Поддержка функции лямбда
Поддержка динамической настройки параметров системного уровня.
Поддержка динамической настройки параметров уровня платформы.
Поддержка просмотра состояния работы службы в режиме реального времени.
Поддержка просмотра состояния каждого параметра в режиме реального времени.
Поддержка аварийного переключения
Поддержка сводки единого журнала
Поддержка плавного выхода
Поддержка унифицированной обработки исключений
Поддержка нескольких протоколов (TCP/HTTP/WebSocket) на одном порту.
Поддержка раннего возврата ответа
Поддерживает асинхронный возврат ответов
Статистика времени ответа на запросы поддержки
Поддержка статистики QPS
Поддержка статистики медленных запросов
Поддерживает приоритетное выполнение встроенных команд системы.
Поддержка шифрования AES
Поддержка обмена ключами ECDH
Поддерживает 128-битные или 256-битные ключи.
Поддержка белого списка IP-адресов
Поддержка белого списка IP-сегментов
Поддержка ограничений шифрования при доступе к пользовательским интерфейсам.
Поддержка ограничений интрасети при доступе к пользовательским интерфейсам.
В технологической экосистеме FPNN предусмотрены следующие дополнительные функции
Стресс-тест (v1.0.0):
Сводка данных TCP
Та же локальная сеть
модель | виртуальный процессор | Память (ГБ) | Количество ссылок | количество запросов в секунду | Среднее время ответа (усек) |
---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 1000 | 49 708 | 335 |
--- | --- | --- | --- | --- | --- |
AWS m5.xlarge | 4 | 16 | 130 | 227 919 | 12 854 |
AWS m5.xlarge | 4 | 16 | 1500 | 148 959 | 10 403 |
AWS m5.xlarge | 4 | 16 | 2000 | 99 552 | 356 |
AWS m5.xlarge | 4 | 16 | 3000 | 149 615 | 27 456 |
Межконтинентальная передача: из Франкфурта, Германия, в Орегон, запад США.
модель | виртуальный процессор | Память (ГБ) | Количество ссылок | количество запросов в секунду | Среднее время ответа (усек) | пинг/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 | 3200 | 312 073 | 256 980 | 139 ~ 141 |
AWS m5.xlarge | 4 | 16 | 6000 | 299 175 | 346 927 | 136 ~ 137 |
Сводка данных UDP
Та же локальная сеть
модель | виртуальный процессор | Память (ГБ) | Количество ссылок | количество запросов в секунду | Среднее время ответа (усек) |
---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 10 | 17 628 | 199 |
--- | --- | --- | --- | --- | --- |
AWS m5.xlarge | 4 | 16 | 70 | 123 009 | 1174 |
AWS m5.xlarge | 4 | 16 | 80 | 122 641 | 24 623 |
AWS m5.xlarge | 4 | 16 | 800 | 73 030 | 1306 |
AWS m5.xlarge | 4 | 16 | 200 | 95 894 | 400 |
AWS m5.xlarge | 4 | 16 | 1000 | 49 590 | 3832 |
Межконтинентальная передача: из Франкфурта, Германия, в Орегон, запад США.
модель | виртуальный процессор | Память (ГБ) | Количество ссылок | количество запросов в секунду | Среднее время ответа (усек) | пинг/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
модель | виртуальный процессор | Память (ГБ) | Количество ссылок | количество запросов в секунду | Среднее время ответа (усек) |
---|---|---|---|---|---|
AWS m5.2xlarge | 8 | 32 | 2 040 000 | 81 351 | 446 |
AWS m5.2xlarge | 8 | 32 | 2 040 000 | 137 294 | 4985 |
AWS m5.2xlarge | 8 | 32 | 2 040 000 | 179 794 | 11 345 |
Сводка данных UDP
модель | виртуальный процессор | Память (ГБ) | Количество ссылок | количество запросов в секунду | Среднее время ответа (усек) |
---|---|---|---|---|---|
AWS m5.2xlarge | 8 | 32 | 12 200 | 5,957 | 11 480 |
AWS m5.2xlarge | 8 | 32 | 19 000 | 721 | 1857 |
Подробную информацию о производительности и дополнительные данные можно найти в отчете о производительности FPNN.
экологические потребности
Операционная система | компилятор |
---|---|
ЦентОС 7 | GCC/G++ 4.8.5 |
ЦентОС 8 | GCC/G++ 8 |
Убунту 20 | GCC/G++ 9 |
МакОС 11.5 | XCode/Apple clang 12 |
Зависимости сторонних библиотек
Скомпилируйте и установите структуру FPNN.
Просто выполните make
в корневом каталоге проекта.
Подробности см. в разделе Установка и интеграция FPNN.
Разработано с использованием структуры FPNN.
Видеть
Примечания и устранение неполадок
Пожалуйста, ознакомьтесь с примечаниями FPNN для получения информации о мерах предосторожности.
Для устранения неполадок обратитесь к разделу «Устранение неполадок FPNN».
лучшие практики
Указатель китайских документов