From 7f0d11c186229731647e77245e7875f1fe99942a Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期四, 03 七月 2025 09:30:13 +0800 Subject: [PATCH] 1 --- README.md | 266 +---------------------------------------------------- 1 files changed, 6 insertions(+), 260 deletions(-) diff --git a/README.md b/README.md index ec4243d..ff19738 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,7 @@ ## 浠嬬粛 -Dubbo鏄竴娆鹃珮鎬ц兘銆佽交閲忕骇鐨勫紑婧怞ava RPC锛圧emote Procedure -Call锛岃繙绋嬭繃绋嬭皟鐢級妗嗘灦锛屽畠鎻愪緵浜嗗垎甯冨紡绯荤粺涓湇鍔′箣闂寸殑楂樻晥銆侀�忔槑鍖栫殑鏈嶅姟璋冪敤鏂规銆侱ubbo鏈�鍒濈敱闃块噷宸村反鍏徃寮�鍙戝苟寮�婧愶紝鐜板凡鎴愪负Apache椤剁骇椤圭洰銆� - -## 鏋舵瀯婕斿彉 - -鍦ㄤ簡瑙ubbo涔嬪悗锛屾垜浠鐭ラ亾dubbo鍦ㄥ綋浠婁簰鑱旂綉鏋舵瀯涓湪浠�涔堟牱鐨勪綅缃紝鎴戜滑鍏堟潵鐪嬩竴涓灦鏋勬紨杩涘浘 - - - -鑰屼簡瑙h繃feign鐨勫悓瀛﹁繖閲屽氨鍙互鎷垮畠鍜宒ubbo瀵规瘮锛屽湪涓婇潰鐨勫浘涓紝feign灏辨槸鍦ㄥ井鏈嶅姟鏋舵瀯鎵挎媴rpc妗嗘灦锛岃�宒ubbo灏卞湪鍦ㄤ笂闈㈢殑SOA锛堬紙Service-Oriented -Architecture锛岄潰鍚戞湇鍔$殑鏋舵瀯锛夋槸涓�涓粍浠舵ā鍨嬶紝瀹冨皢搴旂敤绋嬪簭鐨勪笉鍚屽姛鑳藉崟鍏冿紙绉颁负鏈嶅姟锛夎繘琛屾媶鍒嗭紝骞堕�氳繃杩欎簺鏈嶅姟涔嬮棿瀹氫箟鑹ソ鐨勬帴鍙e拰濂戠害鑱旂郴璧锋潵銆傦級鏋舵瀯涓壙鎷卹pc妗嗘灦鐨勮鑹层�� - -SOA鏋舵瀯锛屽氨鍍忔槸澶ч儴闂ㄥ埗锛屼竴涓儴闂ㄧ鐨勪簨鍎挎瘮杈冨锛屽嚑涓浉鍏崇殑宸ヤ綔涓�鍧楀効骞诧紝杩欐牱澶у鍗忎綔璧锋潵鏂逛究锛屼絾鏄儴闂ㄥ拰閮ㄩ棬涔嬮棿杩樻槸寰椾簰鐩搁厤鍚堬紝鏈夋椂鍊欐矡閫氬浜嗗氨澶嶆潅浜嗐�傝�屼笖锛岃繖绉嶆ā寮忎笅锛屽ぇ瀹剁敤鐨勫伐鍏峰拰娴佺▼灏介噺缁熶竴锛屼负浜嗗ソ閰嶅悎銆� -寰湇鍔℃灦鏋勫憿锛屽氨鍍忔槸灏忓洟闃熷埗锛屾瘡涓皬鍥㈤槦灏变笓鏀讳竴浠朵簨锛岀壒鍒笓娉紝鑷繁绠¤嚜宸遍偅涓�鍧楋紝鍑轰簡闂涔熶笉瀹规槗褰卞搷鍒汉銆傝繖绉嶆ā寮忕伒娲诲浜嗭紝姣忎釜灏忓洟闃熻繕鑳芥牴鎹嚜宸辩殑鍠滃ソ閫夋渶濂界殑宸ュ叿骞叉椿锛屾洿鏂版崲浠e揩銆備笉杩囷紝杩欎箞澶氬皬鍥㈤槦锛屾�庝箞璁╁畠浠珮鏁堝悎浣滐紝涔熷緱濂藉ソ璁捐涓�濂楄鍒欍�� - -## DUBBO - -璇翠簡杩欎箞澶氾紝鍏跺疄dubbo鐨勭簿楂撳氨鏄�**鎶婅嚜宸辩殑api鏆撮湶鍑哄幓缁欏ぇ瀹讹紝鍏蜂綋鐨勫疄鐜扮户鎵胯嚜宸辩殑api鍘诲啓瀹炵幇鏂规硶銆�** - -浣嗘槸feign灏卞彲浠ュ畬鍏ㄨ劚绂籥pi鎻愪緵锛屽彲浠ユ彁渚涗竴涓猺estful鐨刪ttp鎺ュ彛锛岀劧鍚庡叾浠栨湇鍔″彲浠ョ洿鎺ラ�氳繃feign杩涜璋冪敤锛岃繖涔熷鑷翠簡feign鐨勮�﹀悎搴︽洿浣庯紝浣嗘槸feign鍦ㄥ疄闄呭紑鍙戣繃绋嬩腑涔熷彲浠ユā浠縟ubbo鏆撮湶api鐨勬柟寮忚繘琛屾灦鏋勭殑鎼缓銆� - -涔嬪墠鎴戜滑蹇�熸紨绀轰竴涓嬩簡dubbo锛孾姣忓ぉ涓�涓柊鐭ヨ瘑涔� SpringBoot+Dubbo 鐨勫揩閫熷叆闂╙(https://blog.csdn.net/csdnerM/article/details/125410232) -瑕佷娇鐢╠ubbo棣栧厛瑕佹惌寤轰竴涓敞鍐屼腑蹇冿紝娉ㄥ唽涓績鐨勭洰鐨勫氨鏄负浜嗚鍏朵粬鐨勬湇鍔¤皟鐢╠ubbo鏈嶅姟锛屽湪dubbo瀹樻柟锛屾帹鑽愪娇鐢╖ookeeper浣滀负娉ㄥ唽涓績銆� - -[鍏徃灞呯劧杩樺湪鐢▃ookeeper锛屽悡寰楁垜椹笂瀛︿範浜嗙浉鍏冲懡浠わ紒](https://juejin.cn/post/7376930488738938920) - -[Linux瀹夎Zookeeper锛堝浘鏂囪В璇磋缁嗙増锛塢(https://masiyi.blog.csdn.net/article/details/121848173) - - - ->  - -杩欐鎴戜滑涓�鍏卞缓浜嗗洓涓崟鐙殑妯″潡锛屼粬浠病鏈夊叡鍚岀殑鐖舵ā鍧楋紝浣嗘槸浠栦滑涔嬮棿鏈変緷璧栧叧绯伙紝浠栦滑涔嬮棿鐨勫叧绯绘槸杩欐牱鐨勶細 - - - -鍦╯ervice妯″潡涓紩鍏ヤ簡Dubbo鐨刯ar鍖咃紝杩欐牱锛屼竴濂楁暣浣撶殑dubbo妯″潡妗嗘灦灏卞嚭鏉ヤ簡 - -``` - <dependency> - <groupId>com.alibaba.boot</groupId> - <artifactId>dubbo-spring-boot-starter</artifactId> - <version>0.2.0</version> - </dependency> -``` - -浠栦滑鐨勪綔鐢ㄥ垎鍒槸锛� +鏈」鐩妧鏈珯锛� +jdk8 + springboot + dubbo + mysql + redis + zookeeper api妯″潡鎻愪緵鏈�鍩虹鐨勫疄浣撶被锛屾灇涓剧被绛夛紝鏈�閲嶈鏄渶瑕佹毚闇插嚭鍘荤殑鎶借薄鎺ュ彛銆� @@ -68,206 +11,9 @@ web-server鍒欐槸涓昏鎻愪緵http鎺ュ彛缁欑涓夋柟锛屽鍓嶇璋冪敤锛屼篃鍙互寮曞叆鍏朵粬椤圭洰鐨刟pi妯″潡锛屼箣鍚庡彧瑕佹湁鐢熶骇鑰呮敞鍏ュ埌娉ㄥ唽涓績灏卞彲浠ユ彁渚涙湇鍔′簡锛岀洿鎺ヨ皟鐢╝pi閲岄潰鐨勬娊璞℃帴鍙f柟娉曘�� -璇磋繖涔堝锛屾垜浠潵鐪嬮噷闈㈢殑鍏蜂綋瀹炵幇浠g爜锛岀敱浜庣瘒骞呴棶棰橈紝璇风Щ鑷充唬鐮佷粨搴撴煡鐪嬩唬鐮侊細 +涓澶х殑鑰佸笀锛岃礋璐e啀service妯″潡閲屽啓绠楁硶鍗冲彲 -[https://gitee.com/wangfugui-ma/springboot-dubbo/tree/dubbo/](https://gitee.com/wangfugui-ma/springboot-dubbo/tree/dubbo/) -閭d箞锛宒ubbo鏄渶瑕佹惌閰峼ookeeper鍘讳娇鐢紝鐢变簬涓婁竴绡囨枃绔犲凡缁忚杩囦簡锛岃繖閲屽氨涓嶅啀璧樿堪銆傛垜浠�庝箞鍘讳娇鐢╠ubbo鐨勪竴浜涢珮绾х壒鎬у憿 - -## 楂樼骇鐗规�� - -### 搴忓垪鍖� - -鐢变簬鎴戜滑鐨勫疄浣撶被鏄啓鍦╝pi閲岄潰鐨勶紝鑰宎pi鍙堟槸渚涘悇涓」鐩幓寮曠敤鐨勶紝鎵�浠ュ鏋滄垜浠鍦ㄥ叾浠栫殑椤圭洰涓幏鍙栬繖涓被锛屼緥濡傚湪杩欎釜椤圭洰涓殑queryUser鏂规硶涓�� - -```java -package com.zy.controller; - - -import com.alibaba.dubbo.config.annotation.Reference; -import com.zy.entity.User; -import com.zy.service.UserService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class UserController { - - @Reference//杩滅▼娉ㄥ叆 - private UserService userService; - - - @GetMapping("/user") - public String user() { - User user = userService.queryUser(); - return user.toString(); - } -} - -``` - -鎴戜滑鐨刄ser瀵硅薄蹇呴』瀹炵幇Serializable鎺ュ彛锛屼緥濡傝繖鏍� - -```java -package com.zy.entity; - -import java.io.Serializable; - -public class User implements Serializable { - private String name; - private Integer age; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Integer getAge() { - return age; - } - - public void setAge(Integer age) { - this.age = age; - } - - @Override - public String toString() { - return "User{" + - "name='" + name + '\'' + - ", age=" + age + - '}'; - } -} - -``` - -### 瓒呮椂 - -#### 鐢熶骇鑰呰秴鏃� - -濡傛灉鎴戜滑鐨勭敓浜ц�呴渶瑕佽缃竴涓秴鏃舵椂闂达紝鎴戜滑鍙互鍦ㄦ彁渚涙柟鐨凷ervice娉ㄨВ涓姞鍏imeout灞炴�э紝灏卞儚杩欐牱锛� - -```java -package com.zy.support; - -import com.alibaba.dubbo.config.annotation.Service; -import com.zy.entity.User; -import com.zy.service.UserService; -import org.springframework.stereotype.Component; - - -@Service(timeout = 3000) -@Component -public class UserServiceSupport implements UserService { - - /** - * 鏌ヨuser - */ - @Override - public User queryUser() { - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - User user = new User(); - user.setAge(18); - user.setName("鐜嬪瘜璐�"); - return user; - } -} - -``` - -杩欐牱褰撴垜浠殑controller鎺ュ彛璋冪敤瓒呰繃3绉掔殑鏃跺�欏氨浼氭姤閿欙細 - -``` -com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout. start time: 2024-06-15 21:24:14.504, end time: 2024-06-15 21:24:17.511, client elapsed: 1 ms, server elapsed: 3006 ms, timeout: 3000 ms, request: Request [id=2, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=queryUser, parameterTypes=[], arguments=[], attachments={path=com.zy.service.UserService, interface=com.zy.service.UserService, version=0.0.0, timeout=3000}]], channel: /10.8.0.136:8061 -> /10.8.0.136:20885 -``` - -杩欐牱鎴戜滑灏变粠鐢熶骇鏂瑰姞鍏ヤ簡瓒呮椂鎺у埗 - -#### 娑堣垂鑰呰秴鏃� - -鍏跺疄鎴戜滑涔熷彲浠ヤ粠娑堣垂鑰呰繖杈规帶鍒惰秴鏃舵椂闂达紝灏卞儚杩欐牱锛� - -``` -package com.zy.controller; - - -import com.alibaba.dubbo.config.annotation.Reference; -import com.zy.entity.User; -import com.zy.service.UserService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class UserController { - - @Reference(timeout = 1000)//杩滅▼娉ㄥ叆 - private UserService userService; - - - @GetMapping("/user") - public String user() { - User user = userService.queryUser(); - return user.toString(); - } -} - -``` - -鍦≧eference娉ㄨВ涓姞鍏imeout灞炴�т篃鏄彲浠ヨ揪鍒颁竴鏍风殑鏁堟灉锛� - -``` -com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout. start time: 2024-06-15 21:25:25.398, end time: 2024-06-15 21:25:26.399, client elapsed: 0 ms, server elapsed: 1001 ms, timeout: 1000 ms, request: Request [id=2, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=queryUser, parameterTypes=[], arguments=[], attachments={path=com.zy.service.UserService, interface=com.zy.service.UserService, version=0.0.0, timeout=1000}]], channel: /10.8.0.136:8570 -> /10.8.0.136:20885 -``` - -### @Autowired - -闄や簡浣跨敤@Reference娉ㄨВ娉ㄥ叆dubbo鏈嶅姟澶栵紝杩樺彲浠ヤ娇鐢ˊAutowired鍘绘敞鍏ubbo鏈嶅姟 - - - -### 閰嶇疆鏂囦欢 - -``` -dubbo.application.name=web-server -dubbo.registry.address=zookeeper://127.0.0.1:2181 -``` - -鍦ㄩ厤缃枃浠朵腑鍐欎笂鏈�鍩虹鐨勪袱涓厤缃紝dubbo.registry.address鍙互涓嶅甫zookeeper鍓嶇紑锛屼絾鏄鍔犱釜閰嶇疆key - -``` -# 濡傛灉涓嶅姞杩欎釜锛屽氨闇�瑕佸湪address閲岄潰鍔爖ookeeper:// -dubbo.registry.protocol=zookeeper -``` - -娉ㄦ剰杩欎釜閰嶇疆锛� - -``` -dubbo.protocol.port=20885 -``` - -dubbo榛樿鐢�20880绔彛锛屽鏋滀綘闇�瑕佸湪涓�涓湇鍔″櫒涓婇潰鍚姩澶氫釜dubbo鏈嶅姟锛岄偅灏变笉鑳借浠栦滑鐨勭鍙e啿绐� - -``` -dubbo.registry.password=zk_password -dubbo.registry.username=zk_user -``` - -濡傛灉浣犵殑鑺傜偣鏈塧cl鏉冮檺锛屽垯鍙兘闇�瑕佸姞涓婅繖涓や釜閰嶇疆锛屾浛鎹alue - -濡傛灉浣犺繕涓嶇煡閬揳cl鏉冮檺鏄粈涔堬紝鎺ㄨ崘浣犵湅涓�涓嬭繖绡囨枃绔� - -[鍏徃灞呯劧杩樺湪鐢▃ookeeper锛屽悡寰楁垜椹笂瀛︿範浜嗙浉鍏冲懡浠わ紒](https://juejin.cn/post/7376930488738938920) - -### @EnableDubbo - -璁板緱鍦ㄥ惎鍔ㄧ被寮�鍚繖涓敞瑙o紝鍚﹀垯涓嶈兘浣跨敤dubbo鐨勭浉鍏虫湇鍔★紝浣犳噦鐨勩�傘�傘�傘�� - -> ![鍦ㄨ繖閲屾彃鍏ュ浘鐗囨弿杩癩(img/31dc8042deb97d9fdd67c146bd3fac11.png) - +1.service宸茬粡闆嗘垚浜唕edis鍜宮ysql涔熼兘鏈夌ず渚� +2.api妯″潡閲屽彧瑕佸啓鎺ュ彛锛屼緵绗笁鏂圭郴缁熶娇鐢� +3. \ No newline at end of file -- Gitblit v1.9.1