Использование hrpc: spring + zookeeper + netty интегрированный rpc-фреймворк
package com.rpc.sample.api;
// Этот интерфейс открыт для клиентских вызовов
public interface Animal {
String sound();
}
package com.rpc.sample.impl;
import com.rpc.sample.Animal.api;
public class Dog implements Animal{
@Override
public String sound() {
return "i sound !!!!!";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!-- В заголовке необходимо добавить описание схемы rpc -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rpc="http://rpc.hjk.com/schema/rpc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://rpc.hjk.com/schema/rpc http://rpc.hjk.com/schema/rpc.xsd">
<context:property-placeholder location="classpath:rpc.properties"/>
<!-- Конфигурация, связанная с центром регистрации zookeeper -->
<rpc:zookeeper address="${zookeeper.address}" sessionTimeout="${zookeeper.sessionTimeout}" connectionTimeout="${zookeeper.connectionTimeout}"/>
<!-- Предоставление услуги server с именем testServer, прослушивание порта 1236 -->
<rpc:server name="testServer" port="1236">
<!-- Предоставляемые услуги -->
<rpc:service class="com.rpc.sample.Animal"/>
</rpc:server>
<!-- Регистрация компонентов реализации сервиса, также можно зарегистрировать компоненты через аннотации spring -->
<bean class="com.rpc.sample.impl.Dog"/>
</beans>
zookeeper.address=127.0.0.1:2181
zookeeper.sessionTimeout=13000
zookeeper.connectionTimeout=5000
На этом этапе конфигурация службы завершена. Если контейнер обнаруживает эту конфигурацию, он запускает сервер и начинает прослушивать. Если этой конфигурации нет, то прослушивание не запускается. Имя «testServer» используется при распределённом развёртывании. Клиенты также используют это имя для вызова указанного проекта.
package com.rpc.sample.impl.com.rpc.sample;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Server {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-rpc.xml");
}
}
Запуск службы очень прост. Нужно только запустить контейнер Spring, который автоматически регистрирует и слушает службу.
<?xml version="1.0" encoding="UTF-8"?>
<!-- В заголовок необходимо добавить описание схемы rpc -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rpc="http://rpc.hjk.com/schema/rpc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://rpc.hjk.com/schema/rpc http://rpc.hjk.com/schema/rpc.xsd">
<!-- Конфигурация, связанная с центром регистрации zookeeper -->
<context:property-placeholder location="classpath:rpc.properties"/>
<!-- Через аннотацию spring регистрируем компоненты (смотрите в соответствии с потребностями вашего проекта) -->
<context:component-scan base-package="com.rpc.sample.cilent"/>
<!-- Конфигурация, связанная с центром регистрации zookeeper -->
<rpc:zookeeper address="${zookeeper.address}" sessionTimeout="${zookeeper.sessionTimeout}" connectionTimeout="${zookeeper.connectionTimeout}"/>
<!-- Регистрируем клиент и ссылаемся на службу, testServer должен совпадать с конфигурацией сервера -->
<rpc:client server="testServer">
<rpc:interface id="animl" class="com.rpc.sample.Animal"/>
</rpc:client>
</beans>
zookeeper.address=127.0.0.1:2181
zookeeper.sessionTimeout=13000
zookeeper.connectionTimeout=5000
package com.rpc.sample.cilent;
import com.rpc.sample.Animal;
import org.springframework.beans.factory.annotation.Autowired;
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )