Почему нужно использовать распределённую систему:
Выбор модели ввода-вывода (IO): Существует множество моделей IO, включая синхронное блокирующее, синхронное неблокирующее и асинхронное неблокирующее. Многоканальный мультиплексный ввод-вывод также влияет на пропускную способность. В большинстве случаев используется синхронный ввод-вывод. На стороне сервера применяется главный-подчиненный режим, то есть после установления соединения с клиентом, многопоточность в сочетании с пулом потоков обрабатывает реальные бизнес-операции. Сетевой протокол: TCP TCP, UDP, HTTP: В основном используются TCP, не слышал об UDP. Как синхронный неблокирующий метод, он имеет механизм подтверждения, который является предпочтительным. HTTP также может использоваться как RPC, но пропускная способность снижается, поскольку серверы обычно выполняют балансировку нагрузки, например, через Nginx и обратные прокси-серверы, что предотвращает прямой доступ к сервисам. Вместо этого доступ осуществляется через Nginx, а затем к сервису, так что это 1+1.
2017-8-14: Всё работает, но есть ещё много проблем. Сериализация пока отложена.
2017-8-18: Внезапно обнаружил проблему. Если это длительное соединение, как выполнить балансировку нагрузки? Если есть 5 провайдеров, нужно ли создавать 5 длительных соединений? Затем сервис выполняет балансировку нагрузки? Кажется, в архитектуре есть проблема.
2017-8-31: Внезапно возникла ещё одна проблема. Предположим, a, b, c вызываются одновременно, и c может замедлить a и b. Что делать? Сначала я думал о наличии слоя localservice, который вызывает a, b и c отдельно. Но это тоже неправильно, потому что localservice будет заблокирован, и это приводит к новым вопросам: управление версиями сервисов, плавное и полуплавное завершение работы (ограничение потока), обработка тайм-аутов.
2017-9-14: Мониторинг. Посмотрел на открытый исходный код Yikxin. Он кажется обычным. Их продукт — это промежуточное ПО, которое не вмешивается в код, а перехватывает запросы. Это похоже на загрузку пользовательского класса перед Tomcat. Лично я считаю, что риск слишком высок, потому что мониторинг может помешать основному процессу. Лучше использовать ZK для мониторинга. Кроме того, существует множество открытых программных решений для мониторинга серверов, таких как Zabbix. Нет необходимости разрабатывать собственное решение, это требует времени и усилий. Springboot кажется немного сложным, трудно найти реальные проекты.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )