国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

這篇具有很好參考價(jià)值的文章主要介紹了Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本文通過(guò)簡(jiǎn)單的示例代碼和說(shuō)明,讓讀者能夠了解Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用的簡(jiǎn)單使用?

默認(rèn)你已經(jīng)看過(guò)我之前的教程了,并且擁有上個(gè)教程完成的項(xiàng)目,

之前的教程?https://www.cnblogs.com/leafstar/p/17638782.html

項(xiàng)目鏈接在最后

?

1.在bank1的pom文件中引入以下依賴(lài)

<dependency>
   <groupId>org.apache.dubbo</groupId>
   <artifactId>dubbo-spring-boot-starter</artifactId>
   <version>2.7.8</version>
</dependency>

?

2.使用dubboService一般是需要在Service層上進(jìn)行,現(xiàn)在我們假設(shè)bank2的Bank2Service(還沒(méi)有新建)提供dubboService

新建Bank2Service如下

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

?代碼如下

@Autowired
private User2Mapper user2Mapper; @Override public String addAmount(String name,int amount){ User user=null; user = user2Mapper.selectOne(new LambdaQueryWrapper<User>().eq(StringUtils.isEmpty(name), User::getName, name)); if (user==null){ throw new RuntimeException("name為空或用戶(hù)不存在"); } user.setAmount(user.getAmount()+amount); int i = user2Mapper.update(user, new LambdaQueryWrapper<User>().eq(User::getName, name)); return i>0?"成功":"失敗"; }

這樣我們的Bank2Service就同時(shí)提供RPC服務(wù)和本地服務(wù)了

?

3.接下來(lái)我們來(lái)模擬跨行轉(zhuǎn)賬

bank1的用戶(hù)小明有1000元,向bank2的用戶(hù)小紅,原來(lái)有800元,轉(zhuǎn)帳100元

我們現(xiàn)在已經(jīng)寫(xiě)好了bank2的賬戶(hù)增加金額服務(wù)

接下來(lái)實(shí)現(xiàn)bank1的相關(guān)操作

bank1引入以下依賴(lài)

<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.8</version>
</dependency>
        
<dependency>
    <groupId>com.example</groupId>
    <artifactId>bank2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <scope>compile</scope>
</dependency>

然后在bank1的controller里面添加bank2的遠(yuǎn)程服務(wù)

@DubboReference
private Bank2Service bank2Service;
在其controller里面添加以下接口
@GetMapping("/transfer")
public String transfer(String from,int amount,String to){
    //默認(rèn)參數(shù)不為空,不在校驗(yàn)
    //from賬戶(hù)減少金額
    User user = user1Mapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getName, from));
    user.setAmount(user.getAmount()-amount);
    user1Mapper.update(user,new LambdaQueryWrapper<User>().eq(User::getName, from));
    //to賬戶(hù)添加金額
    bank2Service.addAmount(to,amount);
    return "轉(zhuǎn)賬成功";
}

?

4.將兩個(gè)項(xiàng)目重新運(yùn)行

此時(shí)會(huì)報(bào)這個(gè)錯(cuò)誤

@Service interfaceClass() or interfaceName() or interface class must be present!

我們需要把bank2的Service實(shí)現(xiàn)一個(gè)接口,利用這個(gè)接口進(jìn)行RPC調(diào)用

bank2中添加以下接口

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

對(duì)服務(wù)進(jìn)行稍微修改如下

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

?接下來(lái)將bank1下controller原來(lái)寫(xiě)的

@DubboReference
private Bank2Service bank2Service;
改成
@DubboReference
private Bank2Interface bank2Service;

5.重啟項(xiàng)目,報(bào)錯(cuò)如下

No registry config found or it's not a valid config! The registry config is: <dubbo:registry />

因?yàn)槲覀儧](méi)有dubbo配置,接下來(lái)進(jìn)行配置,在兩個(gè)項(xiàng)目的配置文件中直接添加下列內(nèi)容

dubbo:
  #指定當(dāng)前服務(wù)
  #  application:
  #    name: bank1
  #    qos-enable: false
  #注冊(cè)中心
  registry:
    protocol: nacos
    address: 127.0.0.1:8848
  #配置consumer啟動(dòng)時(shí)檢查,check為false時(shí),啟動(dòng)不檢查,超時(shí)配置
  #consumer中配置的是全局配置
  # 冪等【操作多少次結(jié)果都是一樣的,如:查詢(xún)、刪除、修改】,在設(shè)計(jì)系統(tǒng)是應(yīng)該設(shè)置成冪等的
  # 非冪等操作【和冪等對(duì)立,每次操作的結(jié)果不一樣,如:新增,修改】,不能設(shè)置成重試
  consumer:
    check: false
    #重試次數(shù),不算第一次
    retries: 3
    timeout: 6000
    # filter: logDubboConsumerFilter
  #指定通信規(guī)則
  protocol:
    name: dubbo
    port: 8806 #暴露服務(wù)端口(默認(rèn)20880,不同的服務(wù)消費(fèi)者端口不能重復(fù))
    threadpool: cached
  #暴露服務(wù)
  provider:
    filter: -exception
    loadbalance: leastactive
    timeout: 6000
  #監(jiān)控中心
#  monitor:
#    protocol: registry

在bank2的啟動(dòng)類(lèi)上加上@EnableDubbo注解

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

至此,項(xiàng)目基本搭建完成,重啟項(xiàng)目,如果遇到端口錯(cuò)誤,請(qǐng)往下看

nacos中出現(xiàn)下圖代表服務(wù)注冊(cè)成功

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

?

6.可能遇到一個(gè)非常奇怪的問(wèn)題,bank1的nacos配置和bootstrap.yml配置的端口皆是8080,但是bank1就是不使用8080端口而是使用bank2的配置端口

可能是bootstrap文件會(huì)先于application文件加載。bank1的bootstrap.yml被bank2的application.yml覆蓋。

解決辦法,在bank1的bootstrap.yml同級(jí)目錄下新建application.yml,在里面指定端口號(hào)即可。

在此也感謝某位不愿透露姓名的熱心大哥的幫助。最后如下圖

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

?

?7.ok,重啟項(xiàng)目,一切就緒。開(kāi)始測(cè)試,調(diào)用下面get接口,也可以直接把網(wǎng)址放到瀏覽器中調(diào)用

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

?

觀察數(shù)據(jù)庫(kù),確實(shí)小明成功減少100,小紅增加了100,

?

8.至此,我們成功模擬了兩個(gè)不同數(shù)據(jù)庫(kù)下的微服務(wù),不同網(wǎng)絡(luò)下的微服務(wù),通過(guò)dubbo進(jìn)行RPC遠(yuǎn)程調(diào)用。

?

9.驗(yàn)證,在兩個(gè)bank項(xiàng)目的配置文件中添加以下配置

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

重新調(diào)用接口,可以看出兩個(gè)項(xiàng)目都有輸出,說(shuō)明確實(shí)是bank1引用了bank2的服務(wù),而不是在bank1內(nèi)部調(diào)用的bank2

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

?

Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程

?

10.如果你想到這樣可能會(huì)導(dǎo)致數(shù)據(jù)不一致等問(wèn)題,請(qǐng)看后續(xù)文章~~

?

11.截止目前項(xiàng)目 https://wwta.lanzoub.com/id4BU15p6usb,后續(xù)會(huì)上傳git

?

12.后續(xù)教程:https://www.cnblogs.com/leafstar/p/17641358.html文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-654835.html

到了這里,關(guān)于Mybatis-Plus+Nacos+Dubbo進(jìn)行遠(yuǎn)程RPC調(diào)用保姆級(jí)教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Mybatis-Plus如何進(jìn)行時(shí)間日期的比較

    獲取數(shù)據(jù)庫(kù)中跟當(dāng)前日期相等的記錄時(shí),還是調(diào)用eq方法,所以實(shí)體類(lèi)包括數(shù)據(jù)庫(kù)中的類(lèi)型是Date,而不是DateTime,否則只能獲取相同時(shí)刻的數(shù)據(jù)。 Mybatis-Plus的時(shí)間比較是基于數(shù)據(jù)庫(kù)的函數(shù)進(jìn)行的,而不是字符串的比較。在Mybatis-Plus中,可以使用Wrapper對(duì)象的 ge、gt、le、lt 方法

    2024年02月11日
    瀏覽(20)
  • 針對(duì)mockito框架在單元測(cè)試中出現(xiàn)Mybatis-Plus鏈?zhǔn)秸{(diào)用的解決方案

    1、 調(diào)用其他service層方法 2、 調(diào)用本service層方法 3、其他問(wèn)題

    2024年01月24日
    瀏覽(25)
  • mybatis-plus 數(shù)據(jù)字段進(jìn)行加解密入庫(kù),且加密字段支持模糊搜索

    mybatis-plus 數(shù)據(jù)字段進(jìn)行加解密入庫(kù),且加密字段支持模糊搜索

    1. 開(kāi)發(fā)框架、環(huán)境 springboot+mybatis-plus+mysql5.7(oracle應(yīng)該也是可以的,沒(méi)有測(cè)試,但實(shí)現(xiàn)思路是都可以滿(mǎn)足,懶得測(cè)oracle了,哈哈) 2. 需求介紹(背景) 需求很簡(jiǎn)單: 就是將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù),并且將敏感數(shù)據(jù)字段進(jìn)行加密處理保存(比如:身份證,手機(jī)號(hào),銀行卡 等等)

    2024年02月09日
    瀏覽(18)
  • 重寫(xiě)RuoYi-Cloud所有功能 整合 SpringCloudAlibaba Dubbo Mybatis-Plus MQ OSS ES Xxl-Job Docker 全方位升級(jí) 定期同步

    轉(zhuǎn)載于:https://blog.csdn.net/weixin_40461281/article/details/122837923 RuoYi-Cloud-Plus? 微服務(wù)通用權(quán)限管理系統(tǒng) ?重寫(xiě) RuoYi-Cloud 全方位升級(jí)(不兼容原框架) 系統(tǒng)演示:?傳送門(mén)?分布式集群版本(功能一致) 功能介紹 使用技術(shù) 文檔地址 特性注意事項(xiàng) 微服務(wù)權(quán)限管理系統(tǒng) RuoYi-Cloud-Plus RuoYi-Clo

    2024年02月08日
    瀏覽(23)
  • MyBatis-Plus 更新(update)方法,屬性參數(shù)為空時(shí)進(jìn)行更新與不進(jìn)行更新的設(shè)置

    MyBatis-Plus 更新(update)方法,屬性參數(shù)為空時(shí)進(jìn)行更新與不進(jìn)行更新的設(shè)置

    解決方案: 在實(shí)體類(lèi)上使用@TableField注解 FieldStrategy的源碼中,一共有4種策略類(lèi)型。 附上mybatis-plus官網(wǎng)鏈接地址: https://baomidou.com/pages/223848/#fieldstrategy 有興趣的小伙伴可以點(diǎn)擊看看

    2024年02月11日
    瀏覽(25)
  • MyBatis-plus中的兩種快捷操作數(shù)據(jù)庫(kù)方式:1、mapper調(diào)用 2、ActiveRecord方式(簡(jiǎn)稱(chēng)AR) 二者的使用和區(qū)別介紹

    MyBatis-plus中的兩種快捷操作數(shù)據(jù)庫(kù)方式:1、mapper調(diào)用 2、ActiveRecord方式(簡(jiǎn)稱(chēng)AR) 二者的使用和區(qū)別介紹

    ? ? ? ? 在使用MyBatis操作數(shù)據(jù)庫(kù)時(shí),需要頻繁的寫(xiě)mapper層dao接口以及對(duì)應(yīng)的配置文件和SQL語(yǔ)句,當(dāng)功能方法繁雜,業(yè)務(wù)邏輯不復(fù)雜的時(shí)候,我們可以使用MyBatis的升級(jí)版MyBatis-Plus來(lái)代替我們寫(xiě)這些繁瑣的配置文件和簡(jiǎn)單的SQL。 (1)書(shū)寫(xiě)或使用MP生成數(shù)據(jù)庫(kù)表對(duì)應(yīng)的實(shí)體類(lèi)。

    2024年02月07日
    瀏覽(173)
  • 【Mybatis-Plus】Mybatis-Plus快速入門(mén)

    Mybatis-Plus是基于Mybatis的數(shù)據(jù)庫(kù)操作組件,其實(shí)現(xiàn)的功能完全是Mybatis的功能拓展,不改變Mybatis的使用方式,可以兼容Mybatis的操作方式。 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)、一個(gè)表進(jìn)行基礎(chǔ)操作: 創(chuàng)建一個(gè)Spring項(xiàng)目,項(xiàng)目通過(guò)Spring Initlizer創(chuàng)建,不導(dǎo)入任何依賴(lài)包,在POM.xml文件中進(jìn)行依賴(lài)導(dǎo)入

    2024年02月07日
    瀏覽(28)
  • Dubbo之消費(fèi)端服務(wù)RPC調(diào)用

    Dubbo之消費(fèi)端服務(wù)RPC調(diào)用

    在消費(fèi)端服務(wù)是基于接口調(diào)用Provider端提供的服務(wù),所以在消費(fèi)端并沒(méi)有服務(wù)公共接口的實(shí)現(xiàn)類(lèi)。 利用注解@DubboReference將目標(biāo)接口CountryService作為CountryController類(lèi)的字段屬性,在解析類(lèi)CountryController時(shí)獲取全部字段屬性并單獨(dú)關(guān)注解析存在注解@DubboReference的字段屬性。 通過(guò)步驟

    2024年03月12日
    瀏覽(23)
  • Mybatis-Plus 進(jìn)階開(kāi)發(fā) -- Mybatis-Plus 入門(mén)教程(二)

    Mybatis-Plus 進(jìn)階開(kāi)發(fā) -- Mybatis-Plus 入門(mén)教程(二)

    為了鞏固所學(xué)的知識(shí),作者嘗試著開(kāi)始發(fā)布一些學(xué)習(xí)筆記類(lèi)的博客,方便日后回顧。當(dāng)然,如果能幫到一些萌新進(jìn)行新技術(shù)的學(xué)習(xí)那也是極好的。作者菜菜一枚,文章中如果有記錄錯(cuò)誤,歡迎讀者朋友們批評(píng)指正。 (博客的參考源碼可以在我主頁(yè)的資源里找到,如果在學(xué)習(xí)的

    2024年02月10日
    瀏覽(31)
  • Mybatis-Plus(三)--Mybatis-Plus配置和條件構(gòu)造器

    在MP中有大量的配置,其中有一部分是Mybatis原生的配置,另一部分是MP的配置,詳情:https://mybatis.plus/config 【1】configLocation--自己?jiǎn)为?dú)的MyBatis配置的路徑 SpringMVC的xml中寫(xiě)法: 【2】mapperLocations--MyBatis Mapper所對(duì)應(yīng)的XML文件位置 如果你在Mapper中有自定義方法(XML中有自定義實(shí)現(xiàn)

    2024年02月15日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包