Size: a a a

2020 June 24

CI

Co. In in Distributed
Kirill Pimenov
Если там какой-то из общепринятых gRPC сервер, то там TLS уже сделан скорее всего. Так что и нечего лезть.
Разбирайся как в твоей клиентской библиотеке делать certificate pinning и вперёд
Что сервер что клиент моих рук дело будет
источник

KP

Kirill Pimenov in Distributed
Co. In
Что сервер что клиент моих рук дело будет
Почему тогда именно gRPC?
источник

KP

Kirill Pimenov in Distributed
(Ну то есть наверняка были причины, но обычно проще рассуждать когда больший контекст понимаешь)
источник

CI

Co. In in Distributed
Kirill Pimenov
Почему тогда именно gRPC?
Это обсуждаемо. Мне gRPC понравился простотой генерации из .proto файлов и сервисы сразу генерируются там же. Только бери да дёргай что нужно
источник

KP

Kirill Pimenov in Distributed
Co. In
Это обсуждаемо. Мне gRPC понравился простотой генерации из .proto файлов и сервисы сразу генерируются там же. Только бери да дёргай что нужно
А что за языки/среды на клиенте и на сервере?
источник

CI

Co. In in Distributed
Точнее это ProtoBuf, его можно при желании вынести за пределы gRPC
источник

CI

Co. In in Distributed
Kirill Pimenov
А что за языки/среды на клиенте и на сервере?
GoLang
источник

KP

Kirill Pimenov in Distributed
И на клиенте тоже?
источник

CI

Co. In in Distributed
Kirill Pimenov
И на клиенте тоже?
И на клиенте тоже) Использование единого языка, позволяет переиспользовать код как на сервере так и на клиенте
источник

KP

Kirill Pimenov in Distributed
Co. In
И на клиенте тоже) Использование единого языка, позволяет переиспользовать код как на сервере так и на клиенте
Это тебе повезло, и не надо мобильные клиенты скажем поддерживать.
Попробуй посмотреть на https://capnproto.org/и его Го-реализацию https://github.com/capnproto/go-capnproto2
У него есть несколько приятных фич, например promise-based RPC (когда серверу можно послать запрос, и сразу следом второй, опирающийся на ещё не полученные данные из первого. И по сети только конечный результат принимать)
источник

CI

Co. In in Distributed
Kirill Pimenov
Это тебе повезло, и не надо мобильные клиенты скажем поддерживать.
Попробуй посмотреть на https://capnproto.org/и его Го-реализацию https://github.com/capnproto/go-capnproto2
У него есть несколько приятных фич, например promise-based RPC (когда серверу можно послать запрос, и сразу следом второй, опирающийся на ещё не полученные данные из первого. И по сети только конечный результат принимать)
Я успешно впихиваю Go код в мобильные клиенты))) GoMobile позволяет компилировать в .aar и .framework
источник

KP

Kirill Pimenov in Distributed
У тебя несколько запросов/соединений в параллель возможны с сервером?
источник

CI

Co. In in Distributed
Kirill Pimenov
У тебя несколько запросов/соединений в параллель возможны с сервером?
Пока не думал об этом. Но было бы неплохо для оптимизации
источник

KP

Kirill Pimenov in Distributed
Co. In
Пока не думал об этом. Но было бы неплохо для оптимизации
Тогда возьми просто https://github.com/lucas-clemente/quic-go для транспорта.
Обрати внимание на tlsConfig в настройках клиента — именно там ты будешь прибивать гвоздями ключ от клиента
источник

YB

Yanis Benson in Distributed
Kirill Pimenov
Это тебе повезло, и не надо мобильные клиенты скажем поддерживать.
Попробуй посмотреть на https://capnproto.org/и его Го-реализацию https://github.com/capnproto/go-capnproto2
У него есть несколько приятных фич, например promise-based RPC (когда серверу можно послать запрос, и сразу следом второй, опирающийся на ещё не полученные данные из первого. И по сети только конечный результат принимать)
Последняя фича, если честно, байкшеддинг, если ты не что-то уровня Фейсбука.
источник

KP

Kirill Pimenov in Distributed
Yanis Benson
Последняя фича, если честно, байкшеддинг, если ты не что-то уровня Фейсбука.
Нет, наоборот, на мобильных девайсах с медленным коннектом и долгими пингами оно прямо очень ничего на любых размерах
источник

YB

Yanis Benson in Distributed
Kirill Pimenov
Нет, наоборот, на мобильных девайсах с медленным коннектом и долгими пингами оно прямо очень ничего на любых размерах
Я больше в сторону, что это альтернатива написанию отдельного РПЦ метода.
источник

YB

Yanis Benson in Distributed
И если у тебя не миллион способов использования РПЦ, примерно одинаково, что ты реализуешь это так, что иначе.
источник

CI

Co. In in Distributed
Kirill Pimenov
Тогда возьми просто https://github.com/lucas-clemente/quic-go для транспорта.
Обрати внимание на tlsConfig в настройках клиента — именно там ты будешь прибивать гвоздями ключ от клиента
Спасибо. Завтра попробую вникнуть и потрогать
источник

YB

Yanis Benson in Distributed
Я делал такую штуку, когда это ещё не было мейнстримом, и в итоге просто забил, потому как дебаг чуть сложнее, а выгоды никакие(когда ты сам контролируешь и клиент, и сервер).
источник