Rumah >Java >javaTutorial >Bagaimana SpringBoot2.0 melaksanakan invokasi jauh perkhidmatan RPC
1. Pengenalan kepada rangka kerja Dubbo
1. 🎜 >1) Petak kecil dalam rajah, Protokol, Kluster, Proksi, Perkhidmatan, Bekas, Pendaftaran dan Monitor, mewakili lapisan atau modul yang menunjukkan interaksi dengan perniagaan, dan yang hijau hanya berinteraksi di dalam Dubbo.
2) Petak latar belakang Pengguna, Pembekal, Pendaftaran dan Monitor dalam rajah mewakili nod topologi logik penggunaan.
3) Garis putus-putus biru dalam rajah dipanggil semasa pemulaan, garis putus-putus merah ialah panggilan tak segerak semasa masa jalan dan garis pepejal merah dipanggil serentak semasa masa jalan. 4) Angka tersebut hanya mengandungi lapisan RPC dan tidak termasuk lapisan Remoting secara keseluruhannya adalah tersirat dalam Protokol.2. Penerangan peranan teras
1) Pembekal mendedahkan penyedia perkhidmatan 2) Pengguna memanggil pengguna perkhidmatan (beban) perkhidmatan jauh Seimbang)3) Pendaftaran perkhidmatan pendaftaran dan pusat pendaftaran penemuan (pemantauan, degupan jantung, tendang keluar, masuk semula)
4) Pantau masa panggilan kumulatif pengguna perkhidmatan dan pembekal dalam ingatan dan masa panggilan , secara proaktif menghantar data statistik ke pusat pemantauan setiap minit. 5) Bekas perkhidmatan bekas: panggilan jauh, bersiri2 Integrasi dengan SpringBoot2.0
12. Penerangan struktur projek
Penerangan struktur
<!-- 这里包含了Zookeeper依赖和Dubbo依赖 --> <dependency> <groupid>com.alibaba.boot</groupid> <artifactid>dubbo-spring-boot-starter</artifactid> <version>0.2.0</version> </dependency>
3 Konfigurasi teras
1 ) Konfigurasi pembekal
dubbo-consume:服务消费方 dubbo-provider:服务提供方 dubbo-common:公共代码块,Dubbo接口,实体类
2) Konfigurasi pengguna
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
3. Kes demonstrasi
1 antara muka perkhidmatan
Perhatikan anotasi com.alibaba.dubbo.config.annotation.Service
server: 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: zookeeper
2) Antara muka pengguna
Perhatikan anotasi di sini
com.alibaba.dubbo.config.annotation.Referenceorg.springframework.stereotype.Service
@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; } }
@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); } }
2) Panggilan pengguna
@Service(timeout = 2000) @Component public class DubboServiceImpl implements DubboService { }
Tamat masa perkhidmatan membuang pengecualian
3. Konfigurasi berbilang versi antara muka1) Pembekal perkhidmatan menyediakan dua versi antara muka yang sama. Nota: versi. Versi satu:@Override public String timeOut(Integer time) { return dubboService.timeOut(time); }
com.alibaba.dubbo.remoting.TimeoutException
Versi dua: @Service(version = "1.0.0") @Component public class VersionOneImpl implements VersionService { @Override public String getVersion() { return "{当前版本:1.0.0}"; } }
2) Pengguna memanggil
melalui anotasi @Reference(version), yang akan menunjuk ke versi yang berbeza pelaksanaan.
rreeeeAtas ialah kandungan terperinci Bagaimana SpringBoot2.0 melaksanakan invokasi jauh perkhidmatan RPC. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!