dubbo知識點總結 持續更新

Dubbo 支持哪些協議,每種協議的應用場景,優缺點?

? dubbo 單一長連接和 NIO 異步通訊,適合大并發小數據量的服務調用,

?以及消費者遠大于提供者。傳輸協議 TCP,異步,Hessian 序列化;

? rmi 采用 JDK 標準的 rmi 協議實現,傳輸參數和返回參數對象需要實現

Serializable 接口,使用 java 標準序列化機制,使用阻塞式短連接,傳輸數

據包大小混合,消費者和提供者個數差不多,可傳文件,傳輸協議 TCP

多個短連接,TCP 協議傳輸,同步傳輸,適用常規的遠程服務調用和 rmi

操作。在依賴低版本的 Common-Collections 包,java 序列化存在安全漏 洞;

? webservice 基于 WebService 的遠程調用協議,集成 CXF 實現,提供和

原生 WebService 的互操作。多個短連接,基于 HTTP 傳輸,同步傳輸,適

用系統集成和跨語言調用;

? http 基于 Http 表單提交的遠程調用協議,使用 Spring HttpInvoke

?現。多個短連接,傳輸協議 HTTP,傳入參數大小混合,提供者個數多于消

?費者,需要給應用程序和瀏覽器 JS 調用;

? hessian 集成 Hessian 服務,基于 HTTP 通訊,采用 Servlet 暴露服務,

Dubbo 內嵌 Jetty 作為服務器時默認實現,提供與 Hession 服務互操作。多

個短連接,同步 HTTP 傳輸,Hessian 序列化,傳入參數較大,提供者大于

消費者,提供者壓力較大,可傳文件;

? memcache 基于 memcached 實現的 RPC 協議

? redis 基于 redis 實現的 RPC 協議

Dubbo 超時時間怎樣設置?

 Dubbo 超時時間設置有兩種方式:

? 服務提供者端設置超時時間,在 Dubbo 的用戶文檔中,推薦如果能在服務

端多配置就盡量多配置,因為服務提供者比消費者更清楚自己提供的服務特

性。

? 服務消費者端設置超時時間,如果在消費者端設置了超時時間,以消費者端

為主,即優先級更高。因為服務調用方設置超時時間控制性更靈活。如果消

費方超時,服務端線程不會定制,會產生警告。

Dubbo 有些哪些注冊中心?

? Multicast 注冊中心: Multicast 注冊中心不需要任何中心節點,只要廣播地

址,就能進行服務注冊和發現。基于網絡中組播傳輸實現;

? Zookeeper 注冊中心: 基于分布式協調系統 Zookeeper 實現,采用

?Zookeeper watch 機制實現數據變更;

? redis 注冊中心: 基于 redis 實現,采用 key/Map 存儲,住 key 存儲服務名

?和類型,Map key 存儲服務 URLvalue 服務過期時間。基于 redis 的發

?/訂閱模式通知數據變更;

? Simple 注冊中心

Dubbo 集群的負載均衡有哪些策略  

?

?

 Dubbo 提供了常見的集群策略實現,并預擴展點予以自行實現。

? Random LoadBalance: 隨機選取提供者策略,有利于動態調整提供者權

重。截面碰撞率高,調用次數越多,分布越均勻;

? RoundRobin LoadBalance: 輪循選取提供者策略,平均分布,但是存在請

求累積的問題;

? LeastActive LoadBalance: 最少活躍調用策略,解決慢提供者接收更少的

請求;

? ConstantHash LoadBalance: 一致性 Hash 策略,使相同參數請求總是發

到同一提供者,一臺機器宕機,可以基于虛擬節點,分攤至其他提供者,避

免引起提供者的劇烈變動;

Dubbo 是什么?

? Dubbo 是一個分布式、高性能、透明化的 RPC 服務框架,提

供服務自動注冊、自動發現等高效服務治理方案, 可以和

Spring 框架無縫集成。

? Dubbo 的主要應用場景?

? 透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,

只需簡單配置,沒有任何 API 侵入。

? 軟負載均衡及容錯機制,可在內網替代 F5 等硬件負載均衡器,

降低成本,減少單點。

? 服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心

基于接口名查詢服務提供者的 IP 地址,并且能夠平滑添加或刪

除服務提供者。

Dubbo 的核心功能?

?

?

主要就是如下 3 個核心功能:

. Remoting網絡通信框架,提供對多種 NIO 框架抽象封裝,包括

同步轉異步請求-響應模式的信息交換方式。

. Cluster:服務框架,提供基于接口方法的透明遠程過程調用,包括多

協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集群

支持。

. Registry:服務注冊,基于注冊中心目錄服務,使服務消費方能動態

的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少

機器。

. Dubbo 的核心組件?

.

Dubbo 服務注冊與發現的流程?

?

流程說明:

. Provider(提供者)綁定指定端口并啟動服務

. 指供者連接注冊中心,并發本機 IP、端口、應用信息和提供服務信息

發送至注冊中心存儲

. Consumer(消費者),連接注冊中心 ,并發送應用信息、所求服務信

息至注冊中心

. 注冊中心根據 消費 者所求服務信息匹配對應的提供者列表發送至

Consumer 應用緩存。

. Consumer 在發起遠程調用時基于緩存的消費者列表擇其一發起調

用。

. Provider 狀態變更會實時通知注冊中心、在由注冊中心實時推送至

Consumer

?

?

設計的原因:

. Consumer Provider 解偶,雙方都可以橫向增減節點數。

. 注冊中心對本身可做對等集群,可動態增減節點,并且任意一臺宕掉

后,將自動切換到另一臺

. 去中心化,雙方不直接依懶注冊中心,即使注冊中心全部宕機短時間

內也不會影響服務的調用

. 服務提供者無狀態,任意一臺宕掉后,不影響使用

Dubbo 的架構設計?

?

Dubbo 框架設計一共劃分了 10 個層:

. 服務接口層(Service:該層是與實際業務邏輯相關的,根據服務提供方和服務消費方的業務設計對應的接口和實現。

. 配置層(Config:對外配置接口,以 ServiceConfig 和ReferenceConfig 為中心。

. 服務代理層(Proxy):服務接口透明代理,生成服務的客戶端 Stub和服務器端 Skeleton

?服務注冊層(Registry:封裝服務地址的注冊與發現,以服務 URL為中心。

?

. 集群層(Cluster:封裝多個提供者的路由及負載均衡,并橋接注冊中心,以 Invoker 為中心。

. 監控層(MonitorRPC 調用次數和調用時間監控。

. 遠程調用層(Protocol:封將 RPC 調用,以 Invocation Result為中心,擴展接口為 ProtocolInvoker Exporter

. 信息交換層(Exchange:封裝請求響應模式,同步轉異步,以Request 和 Response 為中心。

. 網絡傳輸層(Transport:抽象 mina netty 為統一接口,以Message 為中心。

?

?

Dubbo 支持哪些協議,每種協議的應用場景,優缺點?

. dubbo 單一長連接和 NIO 異步通訊,適合大并發小數據量的服務

調用,以及消費者遠大于提供者。傳輸協議 TCP,異步,Hessian

列化;

. rmi 采用 JDK 標準的 rmi 協議實現,傳輸參數和返回參數對象需要

實現 Serializable 接口,使用 java 標準序列化機制,使用阻塞式短連

接,傳輸數據包大小混合,消費者和提供者個數差不多,可傳文件,

?

傳輸協議 TCP 多個短連接,TCP 協議傳輸,同步傳輸,適用常規的

遠程服務調用和 rmi 互操作。在依賴低版本的 Common-Collections

包,java 序列化存在安全漏洞;

. webservice 基于 WebService 的遠程調用協議,集成 CXF 實現,

提供和原生 WebService 的互操作。多個短連接,基于 HTTP 傳輸,

同步傳輸,適用系統集成和跨語言調用;

. http 基于 Http 表單提交的遠程調用協議,使用 Spring

HttpInvoke 實現。多個短連接,傳輸協議 HTTP,傳入參數大小混

合,提供者個數多于消費者,需要給應用程序和瀏覽器 JS 調用;

. hessian 集成 Hessian 服務,基于 HTTP 通訊,采用 Servlet 暴露

服務,Dubbo 內嵌 Jetty 作為服務器時默認實現,提供與 Hession

務互操作。多個短連接,同步 HTTP 傳輸,Hessian 序列化,傳入參

數較大,提供者大于消費者,提供者壓力較大,可傳文件;

. memcache 基于 memcached 實現的 RPC 協議

. redis 基于 redis 實現的 RPC 協議

dubbo 推薦用什么協議?

默認使用 dubbo 協議

Dubbo 有些哪些注冊中心?

. Multicast 注冊中心: Multicast 注冊中心不需要任何中心節點,只

要廣播地址,就能進行服務注冊和發現。基于網絡中組播傳輸實現;

?

. Zookeeper 注冊中心: 基于分布式協調系統 Zookeeper 實現,采用

?

Zookeeper watch 機制實現數據變更;

. redis 注冊中心: 基于 redis 實現,采用 key/Map 存儲,住 key 存儲

服務名和類型,Map key 存儲服務 URLvalue 服務過期時間。基

redis 的發布/訂閱模式通知數據變更;

. Simple 注冊中心

Dubbo 默認采用注冊中心?

采用 Zookeeper

為什么需要服務治理?

. 過多的服務 URL 配置困難

. 負載均衡分配節點壓力過大的情況下也需要部署集群

. 服務依賴混亂,啟動順序不清晰

?

. 過多服務導致性能指標分析難度較大,需要監控

Dubbo 的注冊中心集群掛掉,發布者和訂閱者之間還能通信么?

可以的,啟動 dubbo 時,消費者會從 zookeeper 拉取注冊的生產者

的地址接口等數據,緩存在本地。

每次調用時,按照本地存儲的地址進行調用。

Dubbo Spring 的關系?

Dubbo 采用全 Spring 配置方式,透明化接入應用,對應用沒有任何

API 侵入,只需用 Spring 加載 Dubbo 的配置即可,Dubbo 基于

Spring Schema 擴展進行加載。

Dubbo 使用的是什么通信框架?

默認使用 NIO Netty 框架

Dubbo 集群提供了哪些負載均衡策略?

Random LoadBalance: 隨機選取提供者策略,有利于動態調整提供者權重。截面碰撞率高,調用次數越多,分布越均勻;

RoundRobin LoadBalance: 輪循選取提供者策略,平均分布,但是存在請求累積的問題;

LeastActive LoadBalance: 最少活躍調用策略,解決慢提供者接收更少的請求;

ConstantHash LoadBalance: 一致性 Hash 策略,使相同參數請求

?

總是發到同一提供者,一臺機器宕機,可以基于虛擬節點,分攤至其

他提供者,避免引起提供者的劇烈變動;

缺省時為 Random 隨機調用

Dubbo 的集群容錯方案有哪些?

. Failover Cluster

. 失敗自動切換,當出現失敗,重試其它服務器。通常用于讀操作,但重試會帶來更長延遲。

. Failfast Cluster

. 快速失敗,只發起一次調用,失敗立即報錯。通常用于非冪等性的寫操作,比如新增記錄。

. Failsafe Cluster

. 失敗安全,出現異常時,直接忽略。通常用于寫入審計日志等操作。

. Failback Cluster

. 失敗自動恢復,后臺記錄失敗請求,定時重發。通常用于消息通知操作。

. Forking Cluster

并行調用多個服務器,只要一個成功即返回。通常用于實時性要求較高的讀操作,但需要浪費更多服務資源。可通過 forks="2" 來設置最大并行數。

?

. Broadcast Cluster

. 廣播調用所有提供者,逐個調用,任意一臺報錯則報錯 。通常用于通知所有提供者更新緩存或日志等本地資源信息。

Dubbo 的默認集群容錯方案?

Failover Cluster

Dubbo 支持哪些序列化方式?

默認使用 Hessian 序列化,還有 DuddoFastJsonJava 自帶序列

化。

Dubbo 超時時間怎樣設置?

Dubbo 超時時間設置有兩種方式:

. 服務提供者端設置超時時間,在 Dubbo 的用戶文檔中,推薦如果能

在服務端多配置就盡量多配置,因為服務提供者比消費者更清楚自己

提供的服務特性。

. 服務消費者端設置超時時間,如果在消費者端設置了超時時間,以消

費者端為主,即優先級更高。因為服務調用方設置超時時間控制性更

靈活。如果消費方超時,服務端線程不會定制,會產生警告。

?

服務調用超時問題怎么解決?

dubbo 在調用服務不成功時,默認是會重試兩次的。

Dubbo 在安全機制方面是如何解決?

Dubbo 通過 Token 令牌防止用戶繞過注冊中心直連,然后在注冊中

心上管理授權。Dubbo 還提供服務黑白名單,來控制服務所允許的調

用方。

Dubbo Dubbox 之間的區別?

dubbox 基于 dubbo 上做了一些擴展,如加了服務可 restful 調

用,更新了開源組件等。

Dubbo Spring Cloud 的關系?

Dubbo SOA 時代的產物,它的關注點主要在于服務的調用,流

量分發、流量監控和熔斷。而 Spring Cloud 誕生于微服務架構時

代,考慮的是微服務治理的方方面面,另外由于依托了 Spirng

Spirng Boot 的優勢之上,兩個框架在開始目標就不一致,Dubbo

定位服務治理、Spirng Cloud 是一個生態。

Dubbo Spring Cloud 的區別?

最大的區別:Dubbo 底層是使用 Netty 這樣的 NIO 框架,是基于

?

TCP 協議傳輸的,配合以 Hession 序列化完成 RPC 通信。

SpringCloud 是基于 Http 協議+Rest 接口調用遠程過程的通信,

相對來說,Http 請求會有更大的報文,占的帶寬也會更多。但是

REST 相比 RPC 更為靈活,服務提供方和調用方的依賴只依靠一紙契

約,不存在代碼級別的強依賴。

?Dubbo zookeeper 做注冊中心,如果注冊中心集群都掛掉,發布者和訂閱者之間還能通信么?

可以通信的,啟動 dubbo 時,消費者會從 zk 拉取注冊的生產者的地址接口等數據,緩存在本地。每次調用時,按照本

地存儲的地址進行調用;

注冊中心對等集群,任意一臺宕機后,將會切換到另一臺;注冊中心全部宕機后,服務的提供者和消費者仍能通過本

地緩存通訊。服務提供者無狀態,任一臺 宕機后,不影響使用;服務提供者全部宕機,服務消費者會無法使用,并無

限次重連等待服務者恢復;

掛掉是不要緊的,但前提是你沒有增加新的服務,如果你要調用新的服務,則是不能辦到的。

附文檔截圖:

dubbo 服務負載均衡策略?

l Random LoadBalance

隨機,按權重設置隨機概率。在一個截面上碰撞的概率高,但調用量越大分布越均勻,而且按概率使用權重后也比

較均勻,有利于動態調整提供者權重。(權重可以在 dubbo 管控臺配置)

l RoundRobin LoadBalance

輪循,按公約后的權重設置輪循比率。存在慢的提供者累積請求問題,比如:第二臺機器很慢,但沒掛,當請求調

到第二臺時就卡在那,久而久之,所有請求都卡在調到第二臺上。

l LeastActive LoadBalance

最少活躍調用數,相同活躍數的隨機,活躍數指調用前后計數差。使慢的提供者收到更少請求,因為越慢的提供者的

調用前后計數差會越大。

l ConsistentHash LoadBalance

一致性 Hash,相同參數的請求總是發到同一提供者。當某一臺提供者掛時,原本發往該提供者的請求,基于虛擬節

點,平攤到其它提供者,不會引起劇烈變動。缺省只對第一個參數 Hash

Dubbo 在安全機制方面是如何解決的

Dubbo 通過 Token 令牌防止用戶繞過注冊中心直連,然后在注冊中心上管理授權。Dubbo 還提供服務黑白名單,來控

制服務所允許的調用方。

dubbo 連接注冊中心和直連的區別

在開發及測試環境下,經常需要繞過注冊中心,只測試指定服務提供者,這時候可能需要點對點直連,

點對點直聯方式,將以服務接口為單位,忽略注冊中心的提供者列表,

服務注冊中心,動態的注冊和發現服務,使服務的位置透明,并通過在消費方獲取服務提供方地址列表,實現軟負載

均衡和 Failover 注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給

消費者。

服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調

用。注冊中心負責服務地址的注冊與查找,相當于目錄服務,服務提供者和消費者只在啟動時與注冊中心交互,注冊

中心不轉發請求,服務消費者向注冊中心獲取服務提供者地址列表,并根據負載算法直接調用提供者,注冊中心,服

務提供者,服務消費者三者之間均為長連接,監控中心除外,注冊中心通過長連接感知服務提供者的存在,服務提供

者宕機,注冊中心將立即推送事件通知消費者

注冊中心和監控中心全部宕機,不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表

注冊中心和監控中心都是可選的,服務消費者可以直連服務提供者。

?

?

dubbo 通信協議 dubbo 協議為什么要消費者比提供者個數多:

dubbo 協議采用單一長連接,假設網絡為千兆網卡(1024Mbit=128MByte)

根據測試經驗數據每條連接最多只能壓滿 7MByte(不同的環境可能不一樣,供參考),理論上 1 個服務提供者需要 20

個服務消費者才能壓滿網卡。

dubbo 通信協議 dubbo 協議為什么不能傳大包:

dubbo 協議采用單一長連接,

如果每次請求的數據包大小為 500KByte,假設網絡為千兆網卡(1024Mbit=128MByte),每條連接最大 7MByte(不同的

環境可能不一樣,供參考)

單個服務提供者的 TPS(每秒處理事務數)最大為:128MByte / 500KByte = 262

單個消費者調用單個服務提供者的 TPS(每秒處理事務數)最大為:7MByte / 500KByte = 14

?

dubbo 通信協議 dubbo 協議為什么采用異步單一長連接:

因為服務的現狀大都是服務提供者少,通常只有幾臺機器,

而服務的消費者多,可能整個網站都在訪問該服務,

比如 Morgan 的提供者只有 6 臺提供者,卻有上百臺消費者,每天有 1.5 億次調用,

如果采用常規的 hessian 服務,服務提供者很容易就被壓跨,

通過單一連接,保證單一消費者不會壓死提供者,

長連接,減少連接握手驗證等,

并使用異步 IO,復用線程池,防止 C10K 問題。

dubbo 通信協議 dubbo 協議適用范圍和適用場景

適用范圍:傳入傳出參數數據包較小(建議小于 100K),消費者比提供者個數

多,單一消費者無法壓滿提供者,盡量不要用 dubbo協議傳輸大文件或超大字 符串。 適用場景:常規遠程服務方法調用

dubbo協議補充:

連接個數:單連接

連接方式:長連接

傳輸協議:TCP

傳輸方式:NIO 異步傳輸

序列化:Hessian 二進制序列化

RMI 協議

RMI協議采用 JDK標準的 java.rmi.*實現,采用阻塞式短連接和 JDK標準序列

化方式,Java標準的遠程調用協議。

連接個數:多連接

連接方式:短連接

傳輸協議:TCP

傳輸方式:同步傳輸

序列化:Java標準二進制序列化 適用范圍:傳入傳出參數數據包大小混合,消費者與提供者個數差不多,可傳

文件。 適用場景:常規遠程服務方法調用,與原生 RMI服務互操作

Hessian 協議

Hessian協議用于集成 Hessian的服務,Hessian底層采用 Http通訊,采用

Servlet暴露服務,Dubbo缺省內嵌 Jetty作為服務器實現

基于 Hessian的遠程調用協議。 連接個數:多連接

連接方式:短連接

傳輸協議:HTTP 傳輸方式:同步傳輸 序列化:Hessian二進制序列化

適用范圍:傳入傳出參數數據包較大,提供者比消費者個數多,提供者壓力較

大,可傳文件。

適用場景:頁面傳輸,文件傳輸,或與原生 hessian服務互操作

http

采用 Spring HttpInvoker實現

基于 http表單的遠程調用協議。

連接個數:多連接

連接方式:短連接

傳輸協議:HTTP

傳輸方式:同步傳輸

序列化:表單序列化(JSON

適用范圍:傳入傳出參數數據包大小混合,提供者比消費者個數多,可用瀏覽

器查看,可用表單或 URL傳入參數,暫不支持傳文件。

適用場景:需同時給應用程序和瀏覽器 JS使用的服務。

Webservice

基于 CXF frontend-simple transports-http實現

基于 WebService的遠程調用協議。 連接個數:多連接 連接方式:短連接 傳輸協議:HTTP 傳輸方式:同步傳輸 序列化:SOAP文本序列化 適用場景:系統集成,跨語言調用。

Thrif

Thrift Facebook捐給 Apache的一個 RPC框架,當前 dubbo 支持的 thrift

協議是對 thrift 原生協議的擴展,在原生協議的基礎上添加了一些額外的頭信 息,比如 service namemagic number

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

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

相關文章

使用Linux auto Makefile自動生成的運行步驟

首先創建一個 Linux Makefile.am.這一步是創建Linux Makefile很重要的一步,automake要用的腳本配置文件是Linux Makefile.am,用戶需要自己創建相應的文件。之后,automake工具轉換成Linux Makefile.in。AD: 在向大家詳細介紹Linux …

無限踩坑系列(6)-mySQL數據庫鏈接錯誤

mySQL數據庫鏈接錯誤錯誤1錯誤2長鏈接短連接應用場景需要一直訪問mySQL數據庫,遇到如下錯誤:錯誤1 釋放已經釋放的數據庫鏈接conn.,或者,操作已經釋放的數據庫鏈接conn.或者失去鏈接后再操作數據庫都可能會報這個錯誤 aise err.I…

初探函數式編程和面對對象式編程

文章目錄目錄1.函數式編程和面向對象編程概念1.1 函數式編程1.2 面向對象編程2.函數式編程和面向對象編程的優缺點2.1 函數式編程優點缺點2.2 面對對象編程優點缺點3.為什么在并行計算中函數式編程比較好3.1 什么是并行計算3.2 函數式編程興起原因目錄 1.函數式編程和面向對象…

linux常用解壓和壓縮文件的命令

linux常用解壓和壓縮文件的命令 .tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是壓縮!)———————————————.gz解壓1:gunzip FileN…

Python外(4)-讀寫mat文件

讀寫mat文件1.讀取2.寫入.mat 是matlab中數據存儲的標準格式,Python中能夠通過庫scipy讀取和保存。導入scipy庫 from scipy import io 1.讀取 io.loadmat(file_name, mdictNone, appendmatTrue, **kwargs) 簡便方式: io.loadmat(file_name) append mat–…

Linux下的xml文件的創建

創建一個xml文檔流程如下: l 用xmlNewDoc函數創建一個文檔指針doc; l 用xmlNewNode函數創建一個節點指針root_node; l 用xmlDocSetRootElement將root_node設置為doc的根結點; l 給root_node添加一系列的子節點&#x…

壓力測試http_load 通過修改配置測試https協議成功了。

到http://www.acme.com/software/http_load/ 下載http_load ,安裝也很簡單直接make;make instlall 就行。 如果你需要測試https,你必須將 Makefile中 # CONFIGURE: If you want to compile in support for https, uncomment these # definitions. You w…

面向對象設計與分析40講(16)靜態工廠方法模式

前面我們介紹了簡單工廠模式,在創建對象前,我們需要先創建工廠,然后再通過工廠去創建產品。 如果將工廠的創建方法static化,那么無需創建工廠即可通過靜態方法直接調用的方式創建產品: // 工廠類,定義了靜…

搜索詳解

搜索 一.dfs和bfs簡介 深度優先遍歷(dfs) 本質: 遍歷每一個點。 遍歷流程: 從起點開始,在其一條分支上一條路走到黑,走不通了就往回走,只要當前有分支就繼續往下走,直到將所有的點遍歷一遍。 剪枝&a…

Python外(5)-for-enumerate()-zip()

for循環小技巧技巧1:enumerate()技巧2:打包兩個可遍歷數據,一起循環-zip()技巧1:enumerate() 在使用pytorch訓練網絡的過程中,官方教程給出了 for i, data in enumerate(trainloader, 0): 這涉及到enumerate函數的使用…

特征工程總結

目錄1 特征工程是什么? 2 數據預處理   2.1 無量綱化     2.1.1 標準化     2.1.2 區間縮放法     2.1.3 標準化與歸一化的區別   2.2 對定量特征二值化   2.3 對定性特征啞編碼   2.4 缺失值計算   2.5 數據變換 3 特征選擇   3.1 Filter …

Jmeter測試并發https請求成功了

Jmeter2.4 如何測試多個并發https請求,終于成功了借此機會分享給大家 首先要安裝jmeter2.4版本的,而且不建議大家使用badboy,因為這存在兼容性問題。對于安裝,我就不講了,我就說說如何測試https,想必大家都…

關系數據庫——sql基礎1定義

關系數據庫標準語言SQL 基本概念 SQL語言是一個功能極強的關系數據庫語言。同時也是一種介于關系代數與關系演算之間的結構化查詢語言(Structured Query Language),其功能包括數據定義、數據查詢、數據操縱和數據控制。 SQL的特點&#xff…

libcurl編程

一、curl簡介 curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持的協議有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證, HTTP上傳, 代理服…

大數據學習(09)--Hadoop2.0介紹

文章目錄目錄1.Hadoop的發展與優化1.1 Hadoop1.0 的不足與局限1.2 Hadoop2.0 的改進與提升2.HDFS2.0 的新特性2.1 HDFS HA2.2 HDFS Federation3. 新一代的資源管理器YARN3.1 MapReduce1.0 缺陷3.2 YARN的設計思路3.3 YARN 體系結構3.4 YARN工作流程3.5 YARN框架與MapReduce1.0框…

Java多線程常用方法

start()與run() start() 啟動線程并執行相應的run()方法 run() 子線程要執行的代碼放入run()方法 getName()和setName() getName() 獲取此線程的名字 setName() 設置此線程的名字 isAlive() 是判斷當前線程是否處于活動狀態。活動狀態就是已經啟動尚未終止。 curren…

MachineLearning(2)-圖像分類常用數據集

圖像分類常用數據集1 CIFAR-102.MNIST3.STL_104.Imagenet5.L-Sun6.caltech-101在訓練神經網絡進行圖像識別分類時,常會用到一些通用的數據集合。利用這些數據集合可以對比不同模型的性能差異。下文整理常用的圖片數據集合(持續更新中)。基本信息對比表格…

Linux網絡編程實例詳解

本文介紹了在Linux環境下的socket編程常用函數用法及socket編程的一般規則和客戶/服務器模型的編程應注意的事項和常遇問題的解決方法,并舉了具體代 碼實例。要理解本文所談的技術問題需要讀者具有一定C語言的編程經驗和TCP/IP方面的基本知識。要實習本文的示例&…

python的命令解析getopt.getopt()函數分析

【轉自http://hi.baidu.com/javalang/blog/category/Python】 可以參考http://docs.python.org/lib/module-getopt.html # -*- coding: cp936 -*-import getoptimport sysdef usage():print Help Information:-h: Show help information-xValue:...if __name____main__:#set d…

博弈論基礎

博弈論總結 什么是博弈論: 多人進行博弈,假設每個人都采取最優策略,一定有一個人勝出,在知道初態及規則的情況下,求解出 何人勝出的一類問題的理論及方法。 博弈論的一些性質 P點:必敗點,N…