久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Ignite和Hazelcast有哪些區(qū)別

共計(jì) 6508 個(gè)字符,預(yù)計(jì)需要花費(fèi) 17 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“Ignite 和 Hazelcast 有哪些區(qū)別”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

1.Ignite 簡(jiǎn)介

Apache Ignite 內(nèi)存數(shù)據(jù)組織框架是一個(gè)高性能、集成化和分布式的內(nèi)存計(jì)算和事務(wù)平臺(tái),用于大規(guī)模的數(shù)據(jù)集處理,比傳統(tǒng)的基于磁盤或閃存的技術(shù)具有更高的性能,同時(shí)他還為應(yīng)用和不同的數(shù)據(jù)源之間提供高性能、分布式內(nèi)存中數(shù)據(jù)組織管理的功能。

2.Ignite 歷史

Ignite 來源于尼基塔·伊萬諾夫于 2007 年創(chuàng)建的 GridGain 系統(tǒng)公司開發(fā)的 GridGain 軟件,尼基塔領(lǐng)導(dǎo)公司開發(fā)了領(lǐng)先的分布式內(nèi)存片內(nèi)數(shù)據(jù)處理技術(shù) - 領(lǐng)先的 Java 內(nèi)存片內(nèi)計(jì)算平臺(tái),今天在全世界每 10 秒它就會(huì)啟動(dòng)運(yùn)行一次。他有超過 20 年的軟件應(yīng)用開發(fā)經(jīng)驗(yàn),創(chuàng)建了 HPC 和中間件平臺(tái),并在一些創(chuàng)業(yè)公司和知名企業(yè)都做出過貢獻(xiàn),包括 Adaptec, Visa 和 BEA Systems。尼基塔也是使用 Java 技術(shù)作為服務(wù)器端開發(fā)應(yīng)用的先驅(qū)者,1996 年他在為歐洲大型系統(tǒng)做集成工作時(shí)他就進(jìn)行了相關(guān)實(shí)踐。
2014 年 3 月,GridGain 公司將該軟件 90% 以上的功能和代碼開源,僅在商業(yè)版中保留了高端企業(yè)級(jí)功能,如安全性,數(shù)據(jù)中心復(fù)制,先進(jìn)的管理和監(jiān)控等。2015 年 1 月,GridGain 通過 Apache 2.0 許可進(jìn)入 Apache 的孵化器進(jìn)行孵化,很快就于 8 月 25 日畢業(yè)并且成為 Apache 的頂級(jí)項(xiàng)目,9 月 28 日即發(fā)布了 1.4.0 版,2016 年 1 月初發(fā)布了 1.5.0 版,應(yīng)該說發(fā)展、迭代速度非常快。該技術(shù)相關(guān)資料較少,但確是一個(gè)很有潛力的技術(shù),解決了大規(guī)模、大數(shù)據(jù)量、高并發(fā)企業(yè)級(jí)或者互聯(lián)網(wǎng)應(yīng)用面臨的若干痛點(diǎn)。

3.Ignite 和 Hadoop 以及 Spark 的關(guān)系

Ignite 和 Hadoop 解決的是不同的問題,即使在一定程度上可能應(yīng)用了類似的底層基礎(chǔ)技術(shù)。Ignite 是一種多用途,和 OLAP/ OLTP 內(nèi)存中數(shù)據(jù)結(jié)構(gòu)相關(guān)的,而 Hadoop 僅僅是 Ignite 原生支持(和加速)的諸多數(shù)據(jù)來源之一。
Spark 是一個(gè)和 Ignite 類似的項(xiàng)目。但是 Spark 聚焦于 OLAP,而 Ignite 憑借強(qiáng)大的事務(wù)處理能力在混合型的 OLTP/ OLAP 場(chǎng)景中表現(xiàn)更好。特別是針對(duì) Hadoop,Ignite 將為現(xiàn)有的 Map/Reduce,Pig 或 Hive 作業(yè)提供即插即用式的加速,避免了推倒重來的做法,而 Spark 需要先做數(shù)據(jù) ETL,更適合新寫的分析應(yīng)用。

4. 和類似技術(shù)的比較

在 Ignite 以前,大規(guī)模、大數(shù)據(jù)量、高并發(fā)企業(yè)級(jí)或者互聯(lián)網(wǎng)應(yīng)用為了解決數(shù)據(jù)緩存、降低數(shù)據(jù)庫負(fù)載、提高查詢性能等突出問題,很多采用了 Hazelcast 或者 Oracle Coherence 或者 GemFire(比如 12306 網(wǎng)站)或者目前應(yīng)用越來越廣泛的 Redis 等緩存技術(shù),本文對(duì)這些相關(guān)的技術(shù)做了簡(jiǎn)單的比較,基本內(nèi)容來源于其官方網(wǎng)站,進(jìn)行了翻譯整理,方便更多的人了解他。

4.1.Ignite 和 Hazelcast

Apache Ignite 和 Hazelcast 都提供了富數(shù)據(jù)網(wǎng)格的特性,解決了可擴(kuò)展的分布式集群環(huán)境下在內(nèi)存中對(duì)數(shù)據(jù)進(jìn)行緩存和分區(qū)的問題。
Ignite 和 Hazelcast 在緩存的方式上是有很多不同的,同時(shí)支持事務(wù)和數(shù)據(jù)的查詢,下面的表格列出了一些主要的不同點(diǎn),這些都是我們?cè)谶x擇內(nèi)存數(shù)據(jù)網(wǎng)格產(chǎn)品時(shí)需要特別關(guān)注的。

序號(hào)對(duì)比項(xiàng)目 Apache igniteHazelcast1 聚焦于開源 Ignite 還在不斷增加和增強(qiáng)開源版本的功能集,最新的主版本還增加了對(duì) C ++ 以及.Net/C# 的支持,和 Node.js 的集成也會(huì)很快到來,而且還增加了更快的無死鎖事務(wù)。Hazelcast 的開發(fā)聚焦于收費(fèi)的企業(yè)版中,比如堆外存儲(chǔ)以及持續(xù)查詢等的特性只在收費(fèi)版中才提供,SSL 加密的功能已經(jīng)從開源版中刪除,只在收費(fèi)版中提供。2JCache(JSR107)Ignite 完全兼容 JCache (JSR 107)緩存規(guī)范 Hazelcast 完全兼容 JCache (JSR 107)緩存規(guī)范 3 堆外存儲(chǔ) Ignite 根據(jù)用戶配置支持將數(shù)據(jù)存儲(chǔ)在堆內(nèi)或者堆外 Hazelcast 僅在商業(yè)版中提供堆外存儲(chǔ)的功能 4 堆外索引只要配置了堆外存儲(chǔ),Ignite 就會(huì)在堆外存儲(chǔ)索引 (為了不影響使用堆內(nèi)內(nèi)存的用戶應(yīng)用。) 不支持 5 持續(xù)查詢 Ignite 支持容錯(cuò)的持續(xù)查詢,即允許客戶端和服務(wù)器端訂閱數(shù)據(jù)變化的持續(xù)通知 Hazelcast 僅在商業(yè)(收費(fèi))版中提供持續(xù)查詢的功能。6SSL 加密 Ignite 支持 SSL/TLS 加密,即允許所有的客戶端和服務(wù)端通過加密的 SSL 或者 TLS 協(xié)議進(jìn)行通信。Hazelcast 將 SSL 加密支持從開源版中刪除,目前僅在商業(yè)(收費(fèi))版中支持該功能。7SQL 查詢 Ignite 支持完整的 SQL(ANSI-99)語法以查詢內(nèi)存中的數(shù)據(jù) Hazelcast 僅對(duì) SQL 提供有限的支持(只有幾個(gè)關(guān)鍵字)8 關(guān)聯(lián)查詢 Ignite 支持完整的 SQL 關(guān)聯(lián),包括跨多個(gè)緩存的關(guān)聯(lián),比如:select * from A a, B b where a.b_id = b.idHazelcast 不支持任何的關(guān)聯(lián)查詢,不管用不用 SQL,如果需要,開發(fā)者需要手工處理多個(gè)查詢的結(jié)果。9 查詢一致性 Ignite 提供完整的查詢一致性,即查詢是在一個(gè)特定的快照中執(zhí)行的,查詢開始之后的數(shù)據(jù)更新不影響查詢的結(jié)果。Hazelcast 查詢是不一致的,可能查詢結(jié)果的一部分將看到某些更新,而另一部分則不會(huì)。10 查詢?nèi)蒎e(cuò) Ignite 查詢是容錯(cuò)的,即查詢結(jié)果始終是一致的不會(huì)受到集群拓?fù)浒l(fā)生變化的影響,比如節(jié)點(diǎn)的加入,退出或崩潰。Hazelcast 查詢是不容錯(cuò)的,即查詢結(jié)果在集群拓?fù)浒l(fā)生變化時(shí)不一致,而數(shù)據(jù)正在后臺(tái)重新平衡。11 數(shù)據(jù)一致性 Ignite 支持內(nèi)存中數(shù)據(jù)的原子的和事務(wù)的一致性,不管數(shù)據(jù)存儲(chǔ)在分區(qū)或者復(fù)制緩存中。Hazelcast 僅在分區(qū)緩存中支持原子的和事務(wù)的一致性,而存儲(chǔ)在復(fù)制緩存中的數(shù)據(jù)沒有任何事務(wù)一致性的保證。12 無死鎖事務(wù) Ignite 支持無死鎖樂觀事務(wù),他不會(huì)獲得任何鎖,用戶也不用再擔(dān)心鎖順序,這樣的事務(wù)同時(shí)還提供了更好的性能。Hazelcast 中必須注意按順序地更新數(shù)據(jù)以避免死鎖,這往往是不可能的,尤其是在大項(xiàng)目中。13 事務(wù)化 EntryProcessorIgnite 支持事務(wù)化 EntryProcessor,他可以在服務(wù)端在一個(gè)事務(wù)中執(zhí)行并置的業(yè)務(wù)代碼。在 Hazelcast 中無法使用 EntryProcessor 或者在一個(gè)事務(wù)中執(zhí)行業(yè)務(wù)代碼。14Web 會(huì)話集群化 Ignite 為所有已知的應(yīng)用服務(wù)器提供 Web 會(huì)話的緩存和集群化支持。Hazelcast 僅在商業(yè)(收費(fèi))版中提供 Web 會(huì)話集群化支持。15 計(jì)算網(wǎng)格 Ignite 提供集群內(nèi)的 MapReduce、ForkJoin 和基本的分布式 lambda 處理,包括作業(yè)的負(fù)載平衡,容錯(cuò),檢查點(diǎn),計(jì)劃任務(wù)等。Hazelcast 僅支持 MapReduce 和集群內(nèi)的分布式隨機(jī)作業(yè)。16 流式數(shù)據(jù) Ignite 支持內(nèi)存內(nèi)的流處理,包括對(duì)流式數(shù)據(jù)的滑動(dòng)窗口的查詢和維護(hù)支持。Hazelcast 不對(duì)流處理提供任何的支持。17 服務(wù)網(wǎng)格 Ignite 可以使用戶方便地將其服務(wù)集群化,包括支持各種集群?jiǎn)卫azelcast 管理的服務(wù)不提供單例集群的功能。18.Net/C#支持 Ignite 為.NET/C#用戶提供了完整的內(nèi)存組織 API,包括執(zhí)行 C#閉包,C# 緩存,事務(wù)以及查詢 API,原生 C# CacheStore API 等功能。Hazelcast 只為.NET/C# 提供了有限的客戶端 API。19C++ 支持 Ignite 為 C ++ 用戶提供了完整的內(nèi)存組織 API。Hazelcast 只為 C ++ 提供了有限的客戶端 API。20Node.js 支持 Ignite 將為 Node.js 用戶提供客戶端 API 支持。Hazelcast 不支持 Node.js。4.2.Ignite 和 Coherence

Apache Ignite 和 Oracle Coherence 都提供了富數(shù)據(jù)網(wǎng)格的特性,解決了可擴(kuò)展的分布式集群環(huán)境下在內(nèi)存中對(duì)數(shù)據(jù)進(jìn)行緩存和分區(qū)的問題。
Ignite 和 Coherence 在緩存和事務(wù)的方式上是有很多不同的,同時(shí)支持?jǐn)?shù)據(jù)的查詢,下面的表格列出了一些主要的不同點(diǎn),這些都是我們?cè)谶x擇數(shù)據(jù)網(wǎng)格產(chǎn)品時(shí)需要特別關(guān)注的。

序號(hào)對(duì)比項(xiàng)目 Apache IgniteOracle Coherence1 開源和閉源 Ignite 是一個(gè) Apache 項(xiàng)目,并且還在不斷的增加和增強(qiáng)開源版的功能集,最新的主版本提供了對(duì) C ++、.NET/C# 的支持,對(duì) Node.js 的支持也會(huì)很快到來。Coherence 是一個(gè) Oracle 的專有軟件,并不提供開源和免費(fèi)的版本。2JCache (JSR 107)Ignite 完全兼容 JCache (JSR 107)緩存規(guī)范 Coherence 完全兼容 JCache (JSR 107)緩存規(guī)范 3 堆外存儲(chǔ) Ignite 根據(jù)用戶配置支持將數(shù)據(jù)存儲(chǔ)在堆內(nèi)或者堆外 Oracle Coherence 對(duì)將數(shù)據(jù)存儲(chǔ)在堆外向開發(fā)者提供了有限的選項(xiàng)。4 堆外索引只要配置了堆外存儲(chǔ),Ignite 就會(huì)在堆外存儲(chǔ)索引 (為了不影響使用堆內(nèi)內(nèi)存的用戶應(yīng)用。) 不支持 5SQL 查詢 Ignite 支持完整的 SQL(ANSI-99)語法以查詢查詢內(nèi)存中的數(shù)據(jù)不支持 6 關(guān)聯(lián)查詢 Ignite 支持完整的 SQL 關(guān)聯(lián),包括跨多個(gè)緩存的關(guān)聯(lián),比如:select * from A a, B b where a.b_id = b.idCoherence 不支持任何的關(guān)聯(lián)查詢,不管用不用 SQL,如果需要,開發(fā)者需要手工處理多個(gè)查詢的結(jié)果。7ACID 事務(wù) Ignite 提供了每臺(tái)服務(wù)器每秒成千上萬事務(wù)的優(yōu)異性能。Coherence 因?yàn)樾阅艿筒唤ㄗh使用事務(wù)。8 分層存儲(chǔ) Ignite 支持分層存儲(chǔ)模型,數(shù)據(jù)可以在堆內(nèi)、堆外以及交換空間內(nèi)存儲(chǔ)和移動(dòng),上層將提供更多的存儲(chǔ)能力,當(dāng)然延遲也會(huì)增加。不支持 9 流式數(shù)據(jù) Ignite 提供內(nèi)存內(nèi)流計(jì)算,包括支持流式數(shù)據(jù)的滑動(dòng)窗口的維護(hù)和查詢不支持 10 配置 Ignite 支持通過 Java Bean 以及原生的 Spring XML 集成對(duì)系統(tǒng)進(jìn)行配置,同時(shí)也支持通過代碼對(duì)系統(tǒng)進(jìn)行方便配置的能力。Coherence 通過專有的 XML 格式文件進(jìn)行配置,不支持通過代碼進(jìn)行配置。4.3.Ignite 和 Gemfire

Apache Ignite 和 Pivotal Gemfire 都提供了富數(shù)據(jù)網(wǎng)格的特性,解決了可擴(kuò)展的分布式集群環(huán)境下在內(nèi)存中對(duì)數(shù)據(jù)進(jìn)行緩存和分區(qū)的問題。
Ignite 和 Gemfire 在緩存和事務(wù)的方式上是有很多不同的,同時(shí)支持?jǐn)?shù)據(jù)的查詢,下面的表格列出了一些主要的不同點(diǎn),這些都是我們?cè)谶x擇數(shù)據(jù)網(wǎng)格產(chǎn)品時(shí)需要特別關(guān)注的。

序號(hào)對(duì)比項(xiàng)目 Apache IgnitePivotal Gemfire1 開源和閉源 Ignite 是一個(gè) Apache 項(xiàng)目,并且還在不斷的增加和增強(qiáng)開源版的功能集,最新的主版本提供了對(duì) C ++、.NET/C# 的支持,對(duì) Node.js 的支持也會(huì)很快到來。Gemfire 是 Pivotal 的專有軟件。2JCache (JSR107)Ignite 數(shù)據(jù)網(wǎng)格是 JCache(JSR107)規(guī)范的一個(gè)實(shí)現(xiàn),該 API 為數(shù)據(jù)訪問提供了簡(jiǎn)單易用、但是功能強(qiáng)大的 API。Gemfire 沒有實(shí)現(xiàn) JCache,使用專有的 API。3 堆內(nèi)和堆外 Ignite 根據(jù)用戶配置支持將數(shù)據(jù)存儲(chǔ)在堆內(nèi)和堆外。Gemfire 不支持將數(shù)據(jù)存儲(chǔ)在堆外 4SQL 查詢 Ignite 支持完整的 SQL(ANSI-99) 查詢語法以查詢內(nèi)存中的數(shù)據(jù)。Gemfire 不支持標(biāo)準(zhǔn)的 SQL 語法,但是他提供了自己的叫做 OQL 的對(duì)象查詢語言。5 關(guān)聯(lián)查詢 Ignite 支持完整的 SQL 關(guān)聯(lián),包括跨多個(gè)緩存的關(guān)聯(lián),比如:select * from A a, B b where a.b_id = b.idGemfire 不支持任何的跨區(qū)或者跨緩存的關(guān)聯(lián)查詢,如果需要,開發(fā)者需要手工處理多個(gè)查詢的結(jié)果。6 跨分區(qū)事務(wù) Ignite 支持跨分區(qū)事務(wù),事務(wù)可以在整個(gè)集群中緩存的所有分區(qū)中執(zhí)行。Gemfire 不支持跨越多個(gè)緩存分區(qū)或者節(jié)點(diǎn)的事務(wù)。7 分層存儲(chǔ) Ignite 支持分層存儲(chǔ)模型,數(shù)據(jù)可以在堆內(nèi)、堆外以及交換空間內(nèi)存儲(chǔ)和移動(dòng),上層將提供更多的存儲(chǔ)能力,當(dāng)然延遲也會(huì)增加。不支持 8 流式數(shù)據(jù) Ignite 提供內(nèi)存內(nèi)流計(jì)算,包括支持流式數(shù)據(jù)的滑動(dòng)窗口的維護(hù)和查詢不支持 9 配置 Ignite 支持通過 Java Bean 以及原生的 Spring XML 集成對(duì)系統(tǒng)進(jìn)行配置,同時(shí)也支持通過代碼對(duì)系統(tǒng)進(jìn)行方便配置的能力。Gemfire 通過專有的 XML 格式文件進(jìn)行配置,不支持通過代碼進(jìn)行配置。10 部署 Ignite 節(jié)點(diǎn)是對(duì)等的,并且在啟動(dòng)時(shí)自動(dòng)加入集群(不需要任何 locator 服務(wù)器)。Gemfire 需要啟動(dòng)和維護(hù)一個(gè) locator 服務(wù)器,以便控制節(jié)點(diǎn)的加入和退出。4.4.Ignite 和 Redis

Apache Ignite 和 Redis 都提供了分布式緩存的功能,但是每個(gè)產(chǎn)品提供的功能特性是非常不同的。Redis 主要是一個(gè)數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),但是 Ignite 提供了很多內(nèi)存內(nèi)的分布式組件,包括數(shù)據(jù)網(wǎng)格、計(jì)算網(wǎng)格、流計(jì)算,當(dāng)然也包括數(shù)據(jù)結(jié)構(gòu)。
Ignite 是一個(gè)內(nèi)存數(shù)據(jù)組織,并且提供了更多的功能,無法進(jìn)行一個(gè)一個(gè)對(duì)應(yīng)功能特性的比較,但是我們?nèi)匀荒軐?duì)一些數(shù)據(jù)網(wǎng)格功能進(jìn)行對(duì)比。

序號(hào)對(duì)比項(xiàng)目 Apache IgniteRedis1JCache (JSR 107)Ignite 完全兼容 JCache(JSR107)緩存規(guī)范不支持 2ACID 事務(wù) Ignite 完全支持 ACID 事務(wù),包括樂觀和悲觀并發(fā)模型以及 READ_COMMITTED, REPEATABLE_READ 和 SERIALIZABLE 隔離級(jí)別。Redis 提供了客戶端樂觀事務(wù)的有限支持,在并發(fā)更新情況下,客戶端需要手工重試事務(wù)。3 數(shù)據(jù)分區(qū) Ignite 支持分區(qū)緩存,類似于一個(gè)分布式哈希,集群中的每個(gè)節(jié)點(diǎn)都存儲(chǔ)數(shù)據(jù)的一部分,在拓?fù)浒l(fā)生變化的情況下,Ignite 會(huì)自動(dòng)進(jìn)行數(shù)據(jù)的再平衡。Redis 沒有提供分區(qū),但是提供了副本的分片,使用分片非常死板,并且不管是客戶端還是服務(wù)端,每當(dāng)拓?fù)浒l(fā)生變化時(shí)都需要一系列相當(dāng)復(fù)雜的手工步驟。4 全復(fù)制 Ignite 支持緩存的復(fù)制,集群中的每個(gè)節(jié)點(diǎn)的每個(gè)鍵值對(duì)都支持。Redis 不提供對(duì)全復(fù)制的直接支持。5 原生對(duì)象 Ignite 允許用戶使用自己的領(lǐng)域?qū)ο竽P筒⑶姨峁?duì)任何 Java/Scala, C++ 和.NET/C# 數(shù)據(jù)類型 (對(duì)象) 的原生支持,用戶可以在 Ignite 緩存中輕易的存儲(chǔ)任何程序和領(lǐng)域?qū)ο蟆edis 不允許用戶使用自定義數(shù)據(jù)類型,僅支持預(yù)定義的基本數(shù)據(jù)結(jié)構(gòu)集合,比如 Set、List、Array 以及一些其他的。6 客戶端側(cè)(近)緩存 Ignite 提供對(duì)于最近訪問數(shù)據(jù)的客戶端側(cè)緩存的直接支持。不支持 7(服務(wù)端側(cè))并置處理 Ignite 支持在服務(wù)器端靠近數(shù)據(jù)以并置的方式直接執(zhí)行任何 Java, C++ 和.NET/C# 代碼。Redis 通常沒有任何并置處理的能力,服務(wù)器端基本只支持 LUA 腳本語言,服務(wù)器端不直接支持 Java, .NET, 或者 C ++ 代碼執(zhí)行。8SQL 查詢 Ignite 支持完整 SQL(ANSI-99)語法以查詢內(nèi)存中的數(shù)據(jù)。Redis 不支持任何查詢語言,只支持客戶端緩存 API。9 持續(xù)查詢 Ignite 提供對(duì)客戶端和服務(wù)器端持續(xù)查詢的支持,用戶可以設(shè)置服務(wù)器端的過濾器來減少和降低傳輸?shù)娇蛻舳说氖录?shù)量。Redis 提供客戶端基于鍵的事件通知的支持,但是他不提供服務(wù)器端的過濾器,因此造成了在客戶端和服務(wù)器端中更新通知網(wǎng)絡(luò)流量的顯著增加。10 數(shù)據(jù)庫集成 Ignite 可以自動(dòng)集成外部的數(shù)據(jù)庫 -RDBMS, NoSQL, 和 HDFS。Redis 無法與外部數(shù)據(jù)庫集成。

“Ignite 和 Hazelcast 有哪些區(qū)別”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-16發(fā)表,共計(jì)6508字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 浑源县| 米泉市| 马关县| 乌鲁木齐县| 惠东县| 印江| 敦化市| 浦江县| 黎川县| 罗江县| 宁陕县| 西乌| 武邑县| 泉州市| 邵阳县| 远安县| 吴川市| 奉节县| 武平县| 平陆县| 吴堡县| 冷水江市| 平乐县| 通化县| 五常市| 南华县| 广德县| 比如县| 中宁县| 德兴市| 黎川县| 青冈县| 东乌珠穆沁旗| 垫江县| 弋阳县| 台南县| 海伦市| 措勤县| 文水县| 双牌县| 平舆县|