1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/penguin83-penguin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект Penguin

Основы простого распределённого фреймворка на базе Spring и Netty

Использование:

  1. Простой прямой способ:

    • Серверная сторона: В конфигурационном файле Spring необходимо настроить RPC-сервер. Обратите внимание, что порт не должен быть занят другими приложениями:

    • Клиентская сторона: Сначала нужно создать класс вызова для клиентской стороны, который наследуется от RpcClient. Затем необходимо указать соответствующее имя сервиса, имя метода и параметры для вызова серверной стороны:

      public class RemoteClient1 extends RpcClient {

       public String test1(String name){
           String serviceName = "aService"; 
           String methodName = "testMethod1";
           String param1 = "name";
           return (String)this.execSync(serviceName,methodName,param1);
       }
      
       public String test1(String name){
             String serviceName = "aService"; 
             String methodName = "testMethod2";
             String param1 = "name";
             String param2 = "password";
             return (String)this.execSync(serviceName,methodName,param1,param2);
       }

      }

      Далее в конфигурационном файле Spring нужно выполнить настройку. Необходимо указать IP-адрес и порт вызываемого сервера:

      127.0.0.1:7001 127.0.0.1:7002
  2. Вызов через центр регистрации:

    • Центр регистрации registerServer: Во-первых, найдите проект penguin с именем registry. В конфигурационном файле приложения application-config.xml можно установить желаемый номер порта, например:

      <bean class="penguin.spring.PenguinContextListener"/>
      <bean id="springContextHandler" class="penguin.spring.SpringContextHandler"/>
      <bean   class="penguin.rpc.RpcServer" init-method="init">
           <property name="port" value="7000"/>
           <property name="rpcHandler"  ref="springContextHandler"/>
      </bean>

      Затем запустите проект penguin с именем registry в Tomcat.

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

      127.0.0.1:7000
    • Клиентская сторона: Код остаётся таким же, как и при прямом подключении. Строка param1 = "name";

Строка param2 = "password";

return (String)this.execSync(serviceName,methodName,param1,param2);


127.0.0.1:7000

Примечание:

  1. После того как в конфигурационном файле клиента будет установлено желаемое имя вызываемого проекта, фреймворк автоматически подключится к регистрационному центру после запуска проекта и получит список IP-адресов этого проекта в регистрационном центре.

  2. Клиент после получения списка адресов удалённого проекта будет пытаться подключиться к каждому из них по очереди до тех пор, пока не установит соединение с одним из них.

  3. После успешного соединения клиента и сервера можно выполнять удалённые вызовы методов. Метод описан выше.

  4. Между сервером и регистрационным центром будет происходить обмен данными о состоянии («пульс»). Если «пульс» не поступит в течение определённого времени, регистрационный центр будет считать сервер вышедшим из строя и удалит его адрес из списка.

  5. Между клиентом и регистрационным центром также будет происходить обмен данными о состоянии. При каждом обмене регистрационным центр будет предоставлять клиенту обновлённый список адресов серверов, чтобы клиент мог продолжать доступ к ним.

  6. Выход из строя регистрационного центра не повлияет на работу проекта. Клиент сохранит последний список адресов серверов и продолжит общение с ними до восстановления регистрационного центра.

Дальнейшие планы разработки:

  1. Добавить страницу отображения информации о регистрационном центре, где будут отображаться текущие зарегистрированные серверы и информация о проектах каждого клиента, которые необходимо получить от серверов.

  2. Добавить информацию о сеансах, рассматривая каждый вызов цепочки как отдельный сеанс. В этом сеансе можно сохранять аналогичную информацию о сессии для использования каждым узлом.

  3. Добавить центр мониторинга, который сможет собирать и отображать информацию обо всех цепочках вызовов методов и времени их выполнения.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Один из основанных на spring+netty лаконичных распределённых фреймворков. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/penguin83-penguin.git
git@api.gitlife.ru:oschina-mirror/penguin83-penguin.git
oschina-mirror
penguin83-penguin
penguin83-penguin
master