Heim >Java >javaLernprogramm >Wie SpringBoot2.0 den Remote-Aufruf von RPC-Diensten implementiert
1. Einführung in das Dubbo-Framework
1. Framework-Abhängigkeiten
Legendenbeschreibung:
1) Die kleinen Quadrate in der Abbildung: Protokoll, Cluster, Proxy, Dienst, Container, Registrierung, Monitor, stellen Ebenen oder Module dar, blau gefärbte zeigen Interaktionen mit dem Unternehmen an, grüne interagieren nur innerhalb von Dubbo.
2) Die Hintergrundquadrate Consumer, Provider, Registry und Monitor in der Abbildung stellen die Knoten der logischen Topologie der Bereitstellung dar.
3) Die blaue gepunktete Linie in der Abbildung wird während der Initialisierung aufgerufen, die rot gepunktete Linie ist ein asynchroner Aufruf zur Laufzeit und die rote durchgezogene Linie wird zur Laufzeit synchron aufgerufen.
4) Die Abbildung enthält nur die RPC-Schicht und nicht die Remoting-Schicht als Ganzes, die im Protokoll enthalten ist. 2. Beschreibung der Kernrolle und Entdeckung (Überwachung, Herzschlag, Kick-out, Wiedereintritt)
4) Überwachen Sie Servicekonsumenten und -anbieter, sammeln Sie die Anzahl der Anrufe und Anrufzeiten im Speicher und senden Sie jede Minute aktiv statistische Daten an das Überwachungszentrum. 5) Containerdienst laufende Container: Remote -Aufruf, Serialisierung
2. . Kernkonfiguration1) Anbieterkonfiguration
<!-- 这里包含了Zookeeper依赖和Dubbo依赖 --> <dependency> <groupid>com.alibaba.boot</groupid> <artifactid>dubbo-spring-boot-starter</artifactid> <version>0.2.0</version> </dependency>3. Demonstrationsfall
1. Dienst-Remote-AufrufAchten Sie auf die Anmerkungen hier. alibaba.dubbo.config.annotation.Service
dubbo-consume:服务消费方 dubbo-provider:服务提供方 dubbo-common:公共代码块,Dubbo接口,实体类
2) Verbraucherschnittstelle
Achten Sie auf die Anmerkungen hier
com.alibaba.dubbo.config.annotation.Referenceorg.springframework.stereotype.Service
server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 7007 connection-timeout: 5000ms spring: application: name: block-dubbo-provider # Dubbo 配置文件 dubbo: application: name: block-dubbo-provider registry: address: 127.0.0.1:2181 protocol: zookeeper protocol: name: dubbo port: 20880 scan: base-packages: com.boot.consume
2. Schnittstellen-Timeout-Konfiguration
Diese Konfiguration kann auf dem Dienstanbieter oder dem Dienstkonsumenten konfiguriert werden. Hier ist eine Demonstration der Konfiguration auf dem Anbieter. Hinweis: Timeout 1) Anmerkung zur Serviceschnittstelleserver: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 7008 connection-timeout: 5000ms spring: application: name: block-dubbo-consume # Dubbo 配置文件 dubbo: application: name: block-dubbo-consume registry: address: 127.0.0.1:2181 protocol: zookeeper2) Verbraucheraufruf
@Service @Component public class DubboServiceImpl implements DubboService { private static Logger LOGGER = LoggerFactory.getLogger(DubboServiceImpl.class) ; @Override public String getInfo(String param) { LOGGER.info("字符参数:{}",param); return "[Hello,Cicada]"; } @Override public UserEntity getUserInfo(UserEntity userEntity) { LOGGER.info("实体类参数:{}",userEntity); return userEntity; } }3) TestschnittstelleService-Timeout löst Ausnahme aus
3. Konfiguration der Schnittstelle mit mehreren Versionen
Zwei Versionen der gleichen Schnittstelle implementiert sind. Hinweis: Version.
@Service public class ConsumeService implements DubboService { @Reference private DubboService dubboService ; @Override public String getInfo(String param) { return dubboService.getInfo(param); } @Override public UserEntity getUserInfo(UserEntity userEntity) { return dubboService.getUserInfo(userEntity); } }
Version zwei:
@Service(timeout = 2000) @Component public class DubboServiceImpl implements DubboService { }
über die Annotation @Reference(version) auf, die auf verschiedene Versionen der Schnittstellenimplementierung verweist. @Override
public String timeOut(Integer time) {
return dubboService.timeOut(time);
}
Das obige ist der detaillierte Inhalt vonWie SpringBoot2.0 den Remote-Aufruf von RPC-Diensten implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!