Dubbo基礎學習

目錄

  • 第一章、概念介紹
    • 1.1)什么是RPC框架
    • 1.2)什么是分布式系統
    • 1.3)Dubbo概述
    • 1.3)Dubbo基本架構
  • 第二章、服務提供者(直連)
    • 2.1)目錄結構和依賴
    • 2.2)model層
    • 2.3)service層
    • 2.4)resources配置文件
  • 第三章、服務消費者(直連)
    • 3.1)目錄結構和依賴
    • 3.2)service層
    • 3.3)resources配置文件
  • 第四章、注冊中心Zookeeper
    • 4.1)注冊中心概述
    • 4.2)下載Zookeeper注冊中心
    • 4.3)Windows安裝Zookeeper
    • 4.3)Linux安裝Zookeeper
  • 第五章、dubbo使用注冊中心
    • 5.1)項目加入zookeeper客戶端依賴
    • 5.2)配置文件修改
    • 5.3)dubbo其他配置

友情提醒

先看文章目錄,大致了解文章知識點結構,點擊文章目錄可直接跳轉到文章指定位置。

第一章、概念介紹

1.1)什么是RPC框架

RPC 【Remote Procedure Call】是指遠程過程調用,是一種進程間通信方式,是一種技術思想,而不是規范。它允許程序調用另一個地址空間(網絡的另一臺機器上)的過程或函數,而不用開發人員顯式編碼這個調用的細節。調用本地方法和調用遠程方法一樣。

1.2)什么是分布式系統

分布式系統是若干獨立計算機(服務器)的集合,這些計算機對于用戶來說就像單個相關系統,分布式系統(distributed system)是建立在網絡之上的服務器端一種結構。
部署在獨立服務器上的各個子系統(項目),相互之間可以調用,形成一個大型分布式系統
獨立部署的服務器沒有額外要求,只需要滿足子系統需求即可。
分布式系統中的計算機可以使用不同的操作系統,可以運行不同應用程序提供服務,將服務分散部署到多個計算機服務器上。

1.3)Dubbo概述

Dubbo官網網址:官網鏈接
①Apache Dubbo 是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。可以和Spring框架無縫集成。

②Dubbo是一個分布式服務框架,致力于提供高性能和透明化的RPC遠程服務調用方案、服務治理方案。

③面向接口代理:調用接口的方法,在A服務器調用B服務器的方法,由dubbo實現對B的調用,無需關心實現的細節,就像MyBatis訪問Dao的接口,可以操作數據庫一樣。不用關心Dao接口方法的實現。這樣開發是方便,舒服的。

④支持多種協議:dubbo , hessian , rmi , http, webservice , thrift , memcached , redis。dubbo官方推薦使用dubbo協議。dubbo協議默認端口20880

1.3)Dubbo基本架構

①服務提供者(Provider):暴露服務的服務提供方,服務提供者在啟動時向注冊中心注冊自己提供的服務。服務容器spring負責啟動,加載,運行服務提供者。

②服務消費者(Consumer): 調用遠程服務的服務消費方,服務消費者在啟動時,向注冊中心訂閱自己所需的服務,服務消費者從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。

③注冊中心(Registry):注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者 –如果信息有變,注冊中心提供新的信息給消費者

④監控中心(Monitor):服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心 –監控服務提供者、消費者狀態,與開發沒有直接關系
在這里插入圖片描述

第二章、服務提供者(直連)

2.1)目錄結構和依賴

在這里插入圖片描述
pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.bjpowernode.dubbo</groupId><artifactId>001-link-orderservice-provider</artifactId><version>1.0.0</version><dependencies><!--Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.16.RELEASE</version></dependency><!--Dubbo依賴--><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.6.2</version></dependency></dependencies><build><plugins><!--JDK1.8編譯插件--><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build></project>

2.2)model層

order

package com.bjpowernode.dubbo.model;import java.io.Serializable;public class Order implements Serializable {private String id;private String goodsName;private Double price;private Integer amount;public Order() {}public Order(String id, String goodsName, Double price, Integer amount) {this.id = id;this.goodsName = goodsName;this.price = price;this.amount = amount;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getGoodsName() {return goodsName;}public void setGoodsName(String goodsName) {this.goodsName = goodsName;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public Integer getAmount() {return amount;}public void setAmount(Integer amount) {this.amount = amount;}@Overridepublic String toString() {return "Order{" +"id='" + id + '\'' +", goodsName='" + goodsName + '\'' +", price=" + price +", amount=" + amount +'}';}
}

2.3)service層

OrderService

package com.bjpowernode.dubbo.service;import com.bjpowernode.dubbo.model.Order;public interface OrderService {public Order addOrder(Integer userId,String goodsName, Double price,Integer amount);
}

OrderServiceImpl

package com.bjpowernode.dubbo.service;import com.bjpowernode.dubbo.model.Order;public class OrderServiceImpl implements OrderService{public Order addOrder(Integer userId, String goodsName, Double price, Integer amount) {return new Order("110",goodsName,price,amount);}
}

OrderApplication

package com.bjpowernode.dubbo;import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;import java.io.IOException;public class OrderApplication {public static void main(String[] args) throws IOException {/*** 啟動spring容器:閱讀配置文件*   1、 new ClassPathXmlApplicationContext("orderservce-provider.xml");*   2、 new FileSystemXmlApplicationContext("D:/orderservce-provider.xml");*   3、tomcat啟動*/new ClassPathXmlApplicationContext("orderservce-provider.xml");//標準鍵盤輸入:線程會阻塞System.in.read();}
}

2.4)resources配置文件

orderservce-provider.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--服務項目名稱:唯一 ,它的名稱是dubbo內部使用的唯一標識    飯店名稱--><dubbo:application name="001-link-order-service-provider"></dubbo:application><!--定義協議:告訴消費者如何訪問  怎么訪問--><dubbo:protocol name="dubbo" port="20880"></dubbo:protocol><!--dubbo:service:提供(暴露)服務     菜單interface:區分不同的服務ref:關聯真正提供服務的bean對象registry="N/A":直連--><dubbo:serviceinterface="com.bjpowernode.dubbo.service.OrderService"ref="orderServiceImpl" registry="N/A"/><!--真正提供服務的bean對象    廚師--><bean id="orderServiceImpl" class="com.bjpowernode.dubbo.service.OrderServiceImpl"></bean>
</beans>

第三章、服務消費者(直連)

3.1)目錄結構和依賴

在這里插入圖片描述
pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.bjpowernode.dubbo</groupId><artifactId>002-link-main-web</artifactId><version>1.0.0</version><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.16.RELEASE</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.6.2</version></dependency><dependency><groupId>com.bjpowernode.dubbo</groupId><artifactId>001-link-orderservice-provider</artifactId><version>1.0.0</version></dependency></dependencies></project>

3.2)service層

ShopService

package com.bjpowernode.dubbo.service;import com.bjpowernode.dubbo.model.Order;public interface ShopService {public Order buyGoods(Integer userId, String goodsName, Double price, Integer amount);}

ShopServiceImpl

package com.bjpowernode.dubbo.service;import com.bjpowernode.dubbo.model.Order;public class ShopServiceImpl implements ShopService {OrderService orderService;public void setOrderService(OrderService orderService) {this.orderService = orderService;}public Order buyGoods(Integer userId, String goodsName, Double price, Integer amount) {// new OrderServiceImpl().addOrder()return orderService.addOrder(userId, goodsName, price, amount);}
}

ShopApplication

package com.bjpowernode.dubbo;import com.bjpowernode.dubbo.model.Order;
import com.bjpowernode.dubbo.service.ShopService;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class ShopApplication {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("shop-consume.xml");ShopService shopServiceImpl = (ShopService)context.getBean("shopServiceImpl");Order order = shopServiceImpl.buyGoods(1111, "apple", 10d, 2);System.out.println(order);}
}

3.3)resources配置文件

shop-consume.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--服務項目名稱:唯一--><dubbo:application name="002-link-main-web"></dubbo:application><!--dubbo:reference:生成一個 代表遠程服務的 bean對象id="remoteOrderService":bean對象名稱url:dubbo服務地址interface:區分不同的服務registry="N/A":直連--><dubbo:referenceid="remoteOrderService"url="dubbo://localhost:20880"interface="com.bjpowernode.dubbo.service.OrderService"registry="N/A"/><bean id="shopServiceImpl" class="com.bjpowernode.dubbo.service.ShopServiceImpl"><property name="orderService" ref="remoteOrderService"></property></bean></beans>

第四章、注冊中心Zookeeper

4.1)注冊中心概述

通過將服務統一管理起來,可以有效地優化內部應用對服務發布/使用的流程和管理。服務注冊中心可以通過特定協議來完成服務對外的統一。Dubbo 提供的注冊中心有如下幾種類型可供選:

1、Multicast注冊中心:組播方式
2、Redis注冊中心:使用Redis作為注冊中心
3、Simple注冊中心:就是一個dubbo服務。作為注冊中心。提供查找服務的功能。
4、Zookeeper注冊中心:使用Zookeeper作為注冊中心

注冊中心工作方式
在這里插入圖片描述

4.2)下載Zookeeper注冊中心

①Zookeeper是一個高性能的,分布式的,開放源碼的分布式應用程序協調服務。Zookeeper運行需要java環境。

官網下載地址: http://zookeeper.apache.org/

②點擊download下載
在這里插入圖片描述
③找到歷史版本in the archive
在這里插入圖片描述
④下載3.5.6版本
在這里插入圖片描述
在這里插入圖片描述

4.3)Windows安裝Zookeeper

①下載的文件zookeeper-3.5.4-beta.tar.gz. 解壓后到目錄就可以了,例如d:/servers/ zookeeper-3.5.4
修改zookeeper-3.5.4/conf/ 目錄下配置文件

在這里插入圖片描述
②復制zoo-sample.cfg改名為zoo.cfg,然后打開文件,查看文件內容
在這里插入圖片描述
查看zoo.cfg文件內容
在這里插入圖片描述
文件內容介紹
tickTime: 心跳的時間默認2000毫秒. Zookeeper服務器之間或客戶端與服務器之間每2秒就會發送一個心跳。表明存活狀態。

dataDir: 數據目錄,可以是任意目錄。存儲zookeeper的快照文件、pid文件,默認為/tmp/zookeeper

clientPort: 客戶端連接zookeeper的端口,即zookeeper對外的服務端口,默認為2181
④在文件配置最下面加入需要使用的端口號

admin.serverPort=8888

在這里插入圖片描述

⑤bin目錄下雙擊cmd文件,啟動zookeeper
在這里插入圖片描述
windows啟動zookeeper成功
在這里插入圖片描述

4.3)Linux安裝Zookeeper

①VMware虛擬機下載安裝,虛擬機中安裝Linux系統CentOS7(圖文詳解)
Linux安裝教程鏈接

②Zookeeper的運行需要Linux系統先安裝好jdk.
安裝jdk教程鏈接

③使用xftp工具將剛剛下載好的zookeeper-3.5.6-beta.tar.gz 文件傳輸到Linux系統下的/usr/local/目錄
xftp工具的使用教程鏈接

④解壓壓縮文件到/usr/local/目錄

tar -zxvf zookeeper-3.5.6-beta.tar.gz -C /usr/local/

⑤進入解壓后的conf目錄

cd apache-zookeeper-3.8.1-bin/conf

⑥拷貝文件 zoo-sample.cfg 為 zoo.cfg

zoo_sample.cfg

⑦使用vim命令修改zoo.cfg文件內容

vim zoo.cfg

增加如下內容后保存退出

admin.serverPort=9999

在這里插入圖片描述

⑦切換到bin目錄下,啟動zookeeper,關閉zookeeper

切換bin目錄

cd ..
cd bin

啟動zookeeper

./zkServer.sh start

關閉zookeeper

./zkServer.sh stop

在這里插入圖片描述

第五章、dubbo使用注冊中心

5.1)項目加入zookeeper客戶端依賴

每個模塊均要加入如下代碼

<!-- zookeeper客戶端依賴 -->
<dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>4.1.0</version>
</dependency>

5.2)配置文件修改

服務提供者和消費者均要加入注冊中心

 <dubbo:registry address="zookeeper://192.168.52.128:2181" check="false"></dubbo:registry>

直連的服務配置修改為注冊中心方式

    <!--暴露服務--><dubbo:service interface="com.bjpowernode.dubbo.service.UserInfoService"ref="userInfoServiceImpl"  retries="2"  timeout="20000"version="1.36"></dubbo:service>

5.3)dubbo其他配置

①關閉檢查

 <dubbo:registry address="zookeeper://192.168.52.128:2181" check="false"></dubbo:registry>

②重試次數

<dubbo:service retries="2" /><dubbo:reference retries="2" />

③超時時間
由于網絡或服務端不可靠。為了避免超時導致客戶端資源(線程)掛起耗盡,必須設置超時時間。

dubbo消費端
指定接口超時配置
<dubbo:reference interface="com.foo.BarService" timeout="2000" />
dubbo服務端
指定接口超時配置
<dubbo:server interface="com.foo.BarService" timeout="2000" />

④版本號
服務提供者增加版本號

    <!--暴露服務--><dubbo:service interface="com.bjpowernode.dubbo.service.UserInfoService"ref="userInfoServiceImpl"  retries="2"  timeout="20000"version="2.0.0"></dubbo:service>

服務消費者增加版本號

  <dubbo:referenceid="remoteUserInfoService2"interface="com.bjpowernode.dubbo.service.UserInfoService"version="2.0.0"/>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40673.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40673.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【eNSP】交換機(vlan和vlan間通信)

【eNSP】交換機&#xff08;vlan和vlan間通信&#xff09; 原理術語過程 實驗根據圖片連接模塊配置設備名稱和IP地址配置交換機交換機鏈路指定sw1配置sw2配置 設置網關交換機互聯實驗設置查看設置結果 ospf配置 原理 HUB集線器&#xff1a;它的作用可以簡單的理解為將一些機器…

【算法系列篇】雙指針

文章目錄 前言什么是雙指針算法1.移動零1.1 題目要求1.2 做題思路1.3 Java代碼實現 2.復寫零2.1 題目要求2.2 做題思路2.3 Java代碼實現 3.快樂數3.1 題目要求3.2 做題思路3.3 Java代碼實現 4.盛最多水的容器4.1 題目要求4.2 做題思路4.3 Java代碼實現 5.有效三角形的個數5.1 題…

k8s 自身原理 4

前面咱們分享了 mater 和 worker 節點里面都有哪些組件&#xff0c;他們又是各自主要負責的工作是什么&#xff0c;現在我們心里應該都有數了吧 master 節點&#xff1a; etcd 存儲資源配置&#xff0c;ApiServer 提供 RESTful Api 用于交互&#xff0c;scheduler 用于調度 p…

VS2019 + Qt : setToolTip的提示內容出現亂碼

VS2019 Qt : setToolTip的提示內容出現亂碼 在使用setToolTip()時&#xff0c; setToolTip(QString("asd你好&#xff01;");標簽提示只有英文是對的&#xff0c;中文是亂碼&#xff01; 應該是編碼出了問題。默認情況下&#xff0c;Qt使用的是UTF-8編碼&#xf…

踩坑經驗:JavaScript 中的 for...of 和 for...in 循環

在 JavaScript 編程中&#xff0c;for...of 和 for...in 是常用的循環語法&#xff0c;但它們在使用時可能會引發一些意想不到的問題。本文將分享我在使用這兩種循環時所遇到的坑和經驗。 兩者的區別&#xff1a; 適用對象類型&#xff1a; for…of&#xff1a;主要用于遍歷可…

數據結構-帶頭雙向循環鏈表的實現

前言 帶頭雙向循環鏈表是一種重要的數據結構&#xff0c;它的結構是很完美的&#xff0c;它彌補了單鏈表的許多不足&#xff0c;讓我們一起來了解一下它是如何實現的吧&#xff01; 1.節點的結構 它的節點中存儲著數據和兩個指針&#xff0c;一個指針_prev用來記錄前一個節點…

Git詳解及使用

Git簡介 Git 是一種分布式版本控制系統&#xff0c;它可以不受網絡連接的限制&#xff0c;加上其它眾多優點&#xff0c;目前已經成為程序開發人員做項目版本管理時的首選&#xff0c;非開發人員也可以用 Git 來做自己的文檔版本管理工具。 大概是大二的時候開始接觸和使用Gi…

云計算——ACA學習 云計算核心技術

作者簡介&#xff1a;一名云計算網絡運維人員、每天分享網絡與運維的技術與干貨。 座右銘&#xff1a;低頭趕路&#xff0c;敬事如儀 個人主頁&#xff1a;網絡豆的主頁????? 寫在前面 本系列將會持續更新云計算阿里云ACA的學習&#xff0c;了解云計算及網絡安全相關…

DeepSpeed加速大模型訓練

DeepSpeed是微軟推出的一個框架&#xff0c;可以對Pytorch的模型進行包裝&#xff0c;提供了加快模型的訓練速度&#xff0c;降低對GPU顯存的占用&#xff0c;以及方便進行分布式訓練等等高級特性。在這里我也對DeepSpeed進行了測試&#xff0c;看看是否能提高我的transformer模…

Maven 插件 maven-antrun-plugin 執行 ant 腳本

Ant 相信大家都不陌生&#xff0c;你可以把它理解為使用 xml 格式描述的一系列命令處理工具。它是一種基于Java的build工具。理論上來說&#xff0c;它有些類似于&#xff08;Unix&#xff09;C中的make、有些類似于基于shell命令編寫的sh腳本文件。Ant 用 Java 的類來擴展。&a…

多維時序 | MATLAB實現PSO-CNN-BiLSTM多變量時間序列預測

多維時序 | MATLAB實現PSO-CNN-BiLSTM多變量時間序列預測 目錄 多維時序 | MATLAB實現PSO-CNN-BiLSTM多變量時間序列預測基本介紹模型特點程序設計參考資料 基本介紹 本次運行測試環境MATLAB2021b&#xff0c;MATLAB實現PSO-CNN-BiLSTM多變量時間序列預測。代碼說明&#xff1a…

Java mail郵件開發 OA辦公系統

目錄 1 Java mail郵件開發 OA辦公系統 1.1 //用戶登錄 1.2 //用戶注冊 1.3 //根據郵箱賬號查詢用戶ID Java mail郵件開發 OA辦公系統package com.email.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement;<

POSTGRESQL 關于2023-08-14 數據庫自動啟動文章中使用KILL 來進行配置RELOAD的問題解釋...

開頭還是介紹一下群&#xff0c;如果感興趣Polardb ,mongodb ,MySQL ,Postgresql ,redis &#xff0c;SQL SERVER ,ORACLE,Oceanbase 等有問題&#xff0c;有需求都可以加群群內有各大數據庫行業大咖&#xff0c;CTO&#xff0c;可以解決你的問題。加群請加 liuaustin3微信號 &…

Oracle執行計劃

Oracle執行計劃 1. 什么是執行計劃Oracle explain使用3. Explain執行順序 1. 什么是執行計劃 執行計劃是一條查詢語句在Oracle中的執行過程或訪問路徑的描述。 執行計劃描述了SQL引擎為執行SQL語句進行的操作&#xff1b;分析SQL語句相關的性能問題或僅僅質疑查詢優化器的決定…

蔚來李斌賣手機:安卓系統,蘋果售價,一年一發

?作者 | Amy 編輯 | 德新 車圈大佬的玩法真讓人尋不著套路&#xff01; 蘋果的庫克和小米的雷布斯&#xff0c;甚至是FF賈老板準備許久&#xff0c;都想分一塊新能源車的蛋糕&#xff0c;蔚來李斌卻反手進軍手機界&#xff0c;從宣布造手機到手機入網僅僅隔了一年。 近期…

說幾個常見的語法糖

目錄 面試回答 知識擴展 如何解語法糖&#xff1f; 糖塊一、swith 支持 String 與枚舉 糖塊二、泛型 糖塊三、自動裝箱與拆箱 糖塊四、枚舉 糖塊五、條件編譯 糖塊六、斷言 糖塊七、數值字面量 糖塊八、for-each 糖塊九、try-with-resource 可能遇到的坑 泛型 自…

Beats:安裝及配置 Metricbeat (一)- 8.x

在我之前的文章&#xff1a; Beats&#xff1a;Beats 入門教程 &#xff08;一&#xff09;Beats&#xff1a;Beats 入門教程 &#xff08;二&#xff09; 我詳細描述了如何在 Elastic Stack 7.x 安裝及配置 Beats。在那里的安裝&#xff0c;它通常不帶有安全及 Elasticsearc…

MapReduce介紹

目錄 ?一、什么是MapReduce 二、MapReduce 的設計思想 2.1 分而治之 2.2 構建抽象模型&#xff1a;Map和Reduce 2.3 隱藏系統層細節 三、MapReduce 的框架原理 3.1 MRv1工作原理 3.1.1 MRv1架構工作原理圖 3.1.1.1 流程說明 3.1.1.1.1 作業的提交 3.1.1.1.2 作業的初始化 3…

【AI大模型】訓練Al大模型 (上篇)

大模型超越AI 前言 潔潔的個人主頁 我就問你有沒有發揮&#xff01; 知行合一&#xff0c;志存高遠。 目前所指的大模型&#xff0c;是“大規模深度學習模型”的簡稱&#xff0c;指具有大量參數和復雜結構的機器學習模型&#xff0c;可以處理大規模的數據和復雜的問題&#x…

【Java】Queue中增加刪除方法的區別

offer&#xff0c;add 區別&#xff1a; 一些隊列有大小限制&#xff0c;因此如果想在一個滿的隊列中加入一個新項&#xff0c;多出的項就會被拒絕。 這時新的 offer 方法就可以起作用了。它不是對調用 add() 方法拋出一個 unchecked 異常&#xff0c;而只是得到由 offer() 返…