Я хочу интегрировать новую функциональность с решением для электронной коммерции на основе Laravel. На этом этапе запуск основных сценариев занимает около 2,7 с. Весь сайт загружается выше 6 с, и мы только начали его отслеживать. Цель состоит в том, чтобы получить ниже 2 с со сценарием и 4 с со всем.
Микросервис и функциональность предоставляются через gRPC.
Существует клиент-серверная аутентификация на основе TLS (экземпляры электронной коммерции и мой сервис могут доказать, кто они). Это ест несколько миллисекунд.
При тестировании Go-client и Go-server, с пулом 20 соединений, он достиг ниже 35 мс на запросы.
В PHP каждый запрос занимает более 200 мс.
Это возможно:
Среди других решений я рассматриваю:
Какие-либо предложения?
Соединение следует использовать повторно, если вы используете тот же клиент. С другой стороны, существует возможность предварительно создать объект Grpc \ Channel, а затем передать его клиенту службы в качестве необязательного третьего параметра: https://github.com/grpc/grpc/blob/master/src/php/lib/Grpc/BaseStub.php#L58. Таким образом, вы сможете повторно использовать одно и то же соединение между службами.
В настоящее время мы не предоставляем асинхронный API для PHP. У нас была проблема с отслеживанием https://github.com/grpc/grpc/issues/6654 что мы можем рассмотреть в будущем
Других решений пока нет …