Выбор между двумя способами реализации IPC на основе сокетов между двумя JVM - PullRequest
0 голосов
/ 21 апреля 2019

Я создаю локальный сервер / клиент на Java, который будет иметь несколько клиентов, совместно использующих некоторые данные, поэтому мне нужно было какое-то взаимодействие между клиентскими процессами, поэтому я решил использовать сокеты.Однако я изо всех сил пытаюсь выбрать между двумя способами реализации этого, так как я не уверен, какой из них быстрее и менее подвержен ошибкам.

Метод 1: На сервере будет локальное хранилищеиз всех переменных.Когда некоторая информация обновляется на стороне клиента, клиент отправляет эту информацию на сервер для обновления своей базы данных.Прежде чем клиент выполнит какое-либо действие, требующее данных из базы данных, он запрашивает в базе данных самые последние данные, а затем выполняет какое-либо действие с ним, а затем отправляет измененные данные обратно в базу данных.

Метод 2: Сервер не будет содержать никаких данных, он действует только как носитель для отправки сообщений.Когда некоторая информация обновляется на стороне клиента, клиент отправляет эту информацию ВСЕМ другим клиентам, и тогда клиенты получают локальную копию самых актуальных данных.Затем им не нужно запрашивать данные с сервера, поскольку им всегда будут отправляться данные.

Я уже реализовал метод 2, однако я думаю, что это может быть немного излишним, иможет быть сложнее масштабировать по мере увеличения проекта, поэтому я думаю о переходе на метод 1. Однако я не уверен насчет надежности метода 1. Какой метод мне использовать и почему?

...