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.
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!