欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于分布內(nèi)存隊列的XMPP服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng)及其中轉(zhuǎn)方法與流程

文檔序號:11411014閱讀:278來源:國知局
基于分布內(nèi)存隊列的XMPP服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng)及其中轉(zhuǎn)方法與流程

本發(fā)明涉及xmpp服務(wù)器技術(shù)領(lǐng)域,具體來說是基于分布內(nèi)存隊列的xmpp服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng)及其中轉(zhuǎn)方法。



背景技術(shù):

互聯(lián)網(wǎng)工程工作小組(ietf)已經(jīng)將jabber的核心xml流協(xié)議以xmpp之名,正式列為認可的實時通信及presence技術(shù)。而xmpp的技術(shù)規(guī)格已被定義在rfc3920及rfc3921。任何im供應(yīng)商在遵循xmpp協(xié)議下,都可與googletalk實現(xiàn)連接。第一個jabber(現(xiàn)在xmpp)技術(shù)是jeremiemiller在1998年開發(fā)的,已經(jīng)相當(dāng)穩(wěn)定;數(shù)以百計的開發(fā)者為xmpp技術(shù)而努力。今日的互聯(lián)網(wǎng)上有數(shù)以萬計的xmpp服務(wù)器運作著,并有數(shù)以百萬計的人們使用xmpp實時傳訊軟件。xmpp網(wǎng)絡(luò)的架構(gòu)和電子郵件十分相像,xmpp核心協(xié)議通信方式是先創(chuàng)建一個stream,xmpp以tcp傳遞xml數(shù)據(jù)流,沒有中央主服務(wù)器。

xmpp是一種基于標(biāo)準(zhǔn)通用標(biāo)記語言的子集xml的協(xié)議,它繼承了在xml環(huán)境中靈活的發(fā)展性。因此,基于xmpp的應(yīng)用具有超強的可擴展性。經(jīng)過擴展以后的xmpp可以通過發(fā)送擴展的信息來處理用戶的需求,以及在xmpp的頂端建立如內(nèi)容發(fā)布系統(tǒng)和基于地址的服務(wù)等應(yīng)用程序。而且,xmpp包含了針對服務(wù)器端的軟件協(xié)議,使之能與另一個進行通話,這使得開發(fā)者更容易建立客戶應(yīng)用程序或給一個配好系統(tǒng)添加功能。

任何人都可以運行自己的xmpp服務(wù)器,使個人及組織能夠掌控他們的實時傳訊體驗。任何xmpp協(xié)議的服務(wù)器可以獨立于公眾xmpp網(wǎng)絡(luò)(例如在企業(yè)內(nèi)部網(wǎng)絡(luò)中),而使用sasl及tl等技術(shù)的可靠安全性,已內(nèi)置于核心xmpp技術(shù)規(guī)格中。

xml命名空間的威力可使任何人在核心協(xié)議的基礎(chǔ)上建造定制化的功能,為了維持通透性,常見的擴展有xmpp標(biāo)準(zhǔn)基金會。xmpp除了可用在實時通信的應(yīng)用程序,還能用在網(wǎng)絡(luò)管理、內(nèi)容供稿、協(xié)同工具、文件共享、游戲、遠程系統(tǒng)監(jiān)控等。

但是,隨著通常超過70%的xmpp協(xié)議的服務(wù)器的數(shù)據(jù)流量的存在和近60%的被重復(fù)轉(zhuǎn)發(fā),導(dǎo)致xmpp服務(wù)器數(shù)據(jù)負載太重,xmpp服務(wù)器之間通信就會出現(xiàn)延遲,甚至數(shù)據(jù)丟失現(xiàn)象。隨著業(yè)務(wù)的增長,xmpp服務(wù)器的瞬時處理的數(shù)據(jù)會越來越多,假設(shè)某一時間的瞬時并發(fā)量為100w條通信數(shù)據(jù),每條通信數(shù)據(jù)為16個字節(jié)計算,則需要消耗服務(wù)器16000000字節(jié)的處理能力,這對于無論服務(wù)器還是網(wǎng)絡(luò)帶寬來說都會帶來極大的負載。

現(xiàn)在已步入大數(shù)據(jù)的時代,隨著memcache、redis等簡單、快速、高效的分布式基于內(nèi)存的緩存工具快速的發(fā)展和應(yīng)用,使之能夠極大的減少數(shù)據(jù)庫訪問次數(shù),從而提高訪問吞吐量和服務(wù)響應(yīng)速度。memcache是一套分布式的高速緩存系統(tǒng),由livejournal的bradfitzpatrick開發(fā),但目前被許多網(wǎng)站使用以提升網(wǎng)站的訪問速度,尤其對于一些大型的、需要頻繁訪問數(shù)據(jù)庫的網(wǎng)站訪問速度提升效果十分顯著。這是一套開放源代碼軟件,以bsdlicense授權(quán)發(fā)布。類似高速緩存工具他們最主要的特點就是:一是它是基于內(nèi)存的高效hash類緩存方式,二是使用了lru算法來進行數(shù)據(jù)有效期控制,這兩點就能夠很好的滿足我們對大數(shù)據(jù)交互的應(yīng)用。能夠有效的改善系統(tǒng)性能、減少服務(wù)器通訊時延,對于節(jié)約項目經(jīng)濟成本、和業(yè)務(wù)的發(fā)展等方面具有實際意義。

服務(wù)器之間的通信通常會出現(xiàn)高吞吐量、高并發(fā)的問題。而傳統(tǒng)的技術(shù)已不能有效的滿足此方面的需求。

因此,在云計算的業(yè)務(wù)形態(tài)下,如何將分布式基于內(nèi)存的緩存工具與xmpp服務(wù)器進行有效技術(shù)結(jié)合,實現(xiàn)xmpp服務(wù)器的內(nèi)存中轉(zhuǎn)技術(shù)已經(jīng)成為急需解決的技術(shù)問題。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中xmpp服務(wù)器之間通信在高吞吐量、高并發(fā)場景中出現(xiàn)消息堵塞的缺陷,提供一種基于分布內(nèi)存隊列的xmpp服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng)及其中轉(zhuǎn)方法來解決上述問題。

為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下:

一種基于分布內(nèi)存隊列的xmpp服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng),包括注冊管理模塊、內(nèi)存隊列管理器、調(diào)度器和分發(fā)策略庫,注冊管理模塊用于對xmpp服務(wù)器的內(nèi)存進行配置和注冊xmpp服務(wù)器客戶端,并將注冊的xmpp服務(wù)器客戶端數(shù)據(jù)保存在數(shù)據(jù)總線中;內(nèi)存隊列管理器用于獲取數(shù)據(jù)總線傳輸?shù)臄?shù)據(jù)并等待調(diào)度器的調(diào)用;分發(fā)策略庫用于存儲分發(fā)算法;調(diào)度器根據(jù)分發(fā)策略庫中的分發(fā)算法從內(nèi)存隊列管理器調(diào)取數(shù)據(jù),進行消息的分發(fā)中轉(zhuǎn)。

所述的內(nèi)存隊列管理器包括隊列管理器和若干個內(nèi)存隊列,隊列管理器的輸出端與若干個內(nèi)存隊列的輸入端相連。

所述數(shù)據(jù)總線的輸出端分別與注冊管理模塊的輸入端和調(diào)度器的輸入端相連,注冊管理模塊的輸出端與內(nèi)存隊列管理器的輸入端相連,內(nèi)存隊列管理器的輸出端與調(diào)度器的輸入端相連,分發(fā)策略庫的輸出端與調(diào)度器的輸入端相連。

所述的分發(fā)策略數(shù)據(jù)庫包括輪轉(zhuǎn)算法、加權(quán)輪轉(zhuǎn)算法、最小連接數(shù)算法、加權(quán)最小連接數(shù)算法、目的地址哈希散列算法、源地址哈希散列算法和隨機算法。

基于分布內(nèi)存隊列的xmpp服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng)的中轉(zhuǎn)方法,包括以下步驟:

配置內(nèi)存隊列,進入內(nèi)存隊列管理器管理配置接口,輸入內(nèi)存隊列管理器所需相應(yīng)的id、ip、cpu、內(nèi)存、優(yōu)先級信息,注冊后對內(nèi)存隊列進行健康體檢,配置接口輸出分布式內(nèi)存列表;

注冊服務(wù)器客戶端,客戶端接入系統(tǒng),采用發(fā)布/訂閱模式注冊訂閱者到數(shù)據(jù)總線的系統(tǒng)中,數(shù)據(jù)總線記錄客戶端相應(yīng)的信息,數(shù)據(jù)總線把接入的數(shù)據(jù)接口返回給客戶端;

內(nèi)存隊列保存消息,客戶端根據(jù)數(shù)據(jù)總線返回的接口數(shù)據(jù)將信息傳送給內(nèi)存隊列管理器,內(nèi)存隊列管理器將信息分發(fā)給內(nèi)存隊列;

消息分發(fā),調(diào)度器根據(jù)分發(fā)策略庫中設(shè)定的分發(fā)策略將消息分發(fā)給數(shù)據(jù)總線保存的客戶端,刪除保存在內(nèi)存隊列中的數(shù)據(jù),在內(nèi)存隊列管理器持久化消息。

所述的配置內(nèi)存隊列包括以下步驟:

進入內(nèi)存隊列管理器配置接口,在配置頁面輸入相應(yīng)的信息:id、ip、cpu、內(nèi)存、優(yōu)先級,保存信息到隊列管理器的本地數(shù)據(jù)庫中,形成若干個內(nèi)存隊列;

內(nèi)存隊列的接入,內(nèi)存隊列管理器對接入的內(nèi)存隊列進行健康體檢。

所述的內(nèi)存隊列保存消息包括以下步驟:

客戶端根據(jù)數(shù)據(jù)總線返回的接口數(shù)據(jù)將信息傳送給內(nèi)存隊列管理器,傳輸?shù)臄?shù)據(jù)包括數(shù)據(jù)信息、驗證信息,其中數(shù)據(jù)傳輸使用xml格式;

內(nèi)存隊列管理器接收信息后,通過隊列管理器依次保存在內(nèi)存隊列中,內(nèi)存隊列采用三取二冗余結(jié)構(gòu)保存信息,等待調(diào)度器的調(diào)用。

所述的消息分發(fā)包括以下步驟:

調(diào)度器建立分發(fā)工作的發(fā)起;

調(diào)度器從數(shù)據(jù)總線處獲取已經(jīng)注冊的客戶端信息;

調(diào)度器從分發(fā)策略庫獲取分發(fā)算法,從選中的內(nèi)存隊列中將信息分發(fā)出去;

在本地持久化數(shù)據(jù),備份數(shù)據(jù)到內(nèi)存隊列管理器的本地數(shù)據(jù)庫;

根據(jù)內(nèi)存隊列管理器中用戶信息刪除分布在內(nèi)存隊列中已經(jīng)分發(fā)出去的消息。

所述的內(nèi)存隊列管理器對接入的內(nèi)存隊列進行健康體檢包括以下步驟:

創(chuàng)建一個http健康檢查,間隔時間為5秒,嘗試次數(shù)為3次;

內(nèi)存隊列管理器從內(nèi)存隊列獲取一個頁面,檢查頁面內(nèi)容是否包含指定的字符串;

如果包含指定的字符串,則內(nèi)存隊列的通信服務(wù)是正常的,如果不包含或者獲取不到頁面,認為內(nèi)存隊列的通信服務(wù)是異常的;

內(nèi)存隊列每隔5秒對異常的客戶端進行檢查,當(dāng)發(fā)現(xiàn)該內(nèi)存隊列通信服務(wù)正常,則把該內(nèi)存隊列重新標(biāo)記為正常。

有益效果

本發(fā)明的基于分布內(nèi)存隊列的xmpp服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng)及其中轉(zhuǎn)方法,與現(xiàn)有技術(shù)相比通過靈活的配置內(nèi)存隊列和xmpp服務(wù)器自身內(nèi)存的高效使用,可以滿足系統(tǒng)業(yè)務(wù)發(fā)展需要,解決了xmpp服務(wù)器間高吞吐量、高并發(fā)的問題。本發(fā)明根據(jù)最優(yōu)的出庫算法,可以保證消息最快的達到服務(wù)器客戶端,不產(chǎn)生堵塞、延時情況,通過三取二的內(nèi)存隊列服務(wù)器設(shè)計,大大降低發(fā)生安全問題的可能性。

附圖說明

圖1為本發(fā)明的結(jié)構(gòu)連接圖;

圖2為本發(fā)明的方法順序圖;

其中,1-注冊管理模塊、2-內(nèi)存隊列管理器、3-調(diào)度器、4-分發(fā)策略庫、5-數(shù)據(jù)總線、21-隊列管理器、22-內(nèi)存隊列。

具體實施方式

為使對本發(fā)明的結(jié)構(gòu)特征及所達成的功效有更進一步的了解與認識,用以較佳的實施例及附圖配合詳細的說明,說明如下:

如圖1所示,本發(fā)明所述的基于分布內(nèi)存隊列的xmpp服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng),包括注冊管理模塊1、內(nèi)存隊列管理器2、調(diào)度器3和分發(fā)策略庫4。其中,內(nèi)存隊列管理器2包括隊列管理器21和若干個內(nèi)存隊列22,隊列管理器21的輸出端與若干個內(nèi)存隊列22的輸入端相連。

數(shù)據(jù)總線5的輸出端分別與注冊管理模塊1的輸入端和調(diào)度器3的輸入端相連,注冊管理模塊1的輸出端與內(nèi)存隊列管理器2的輸入端相連,內(nèi)存隊列管理器2的輸出端與調(diào)度器3的輸入端相連,分發(fā)策略庫4的輸出端與調(diào)度器3的輸入端相連。

注冊管理模塊1用于對xmpp服務(wù)器的內(nèi)存進行配置和注冊xmpp服務(wù)器客戶端,并將注冊的xmpp服務(wù)器客戶端數(shù)據(jù)保存在數(shù)據(jù)總線5中;內(nèi)存隊列管理器2用于獲取數(shù)據(jù)總線5傳輸?shù)臄?shù)據(jù)并等待調(diào)度器3的調(diào)用;分發(fā)策略庫4用于存儲分發(fā)算法;調(diào)度器3根據(jù)分發(fā)策略庫4中的分發(fā)算法從內(nèi)存隊列管理器2調(diào)取數(shù)據(jù),進行消息的分發(fā)中轉(zhuǎn)。

其中,在分發(fā)策略數(shù)據(jù)庫中,存儲有輪轉(zhuǎn)算法、加權(quán)輪轉(zhuǎn)算法、最小連接數(shù)算法、加權(quán)最小連接數(shù)算法、目的地址哈希散列算法、源地址哈希散列算法和隨機算法,可以最大限度提供內(nèi)存隊列管理器2的使用效率。

如圖2所示,基于分布內(nèi)存隊列的xmpp服務(wù)器內(nèi)存消息中轉(zhuǎn)系統(tǒng)的中轉(zhuǎn)方法,包括以下步驟:

第一步,配置內(nèi)存隊列。進入內(nèi)存隊列管理器2管理配置接口,輸入內(nèi)存隊列管理器2所需相應(yīng)的id、ip、cpu、內(nèi)存、優(yōu)先級等相關(guān)信息,注冊后對內(nèi)存隊列22進行健康體檢,配置接口輸出分布式內(nèi)存列表。其具體步驟如下:

(1)進入內(nèi)存隊列管理器2配置接口,在配置頁面輸入相應(yīng)的信息:id、ip、cpu、內(nèi)存、優(yōu)先級(1-5數(shù)字越大優(yōu)先級別越高)。為了方便內(nèi)存隊列管理器2的調(diào)用,ip為內(nèi)網(wǎng)ip地址,保存信息到隊列管理器21的本地數(shù)據(jù)庫中,在此為了內(nèi)存隊列數(shù)據(jù)持久化,數(shù)據(jù)庫可以為mysql、sqlserver、oracle等任一種關(guān)系型數(shù)據(jù)庫。隊列管理器21的數(shù)量可以根據(jù)實際需求進行添加、刪除,這也是本發(fā)明的特點之一,可以根據(jù)多個xmpp服務(wù)器間吞吐量的需要,進行靈活配置。

保存信息到隊列管理器21的本地數(shù)據(jù)庫中,形成若干個內(nèi)存隊列22,在xmpp服務(wù)器的內(nèi)存中進行信息的中轉(zhuǎn),利用內(nèi)存技術(shù)直接進行處理,從而提高響應(yīng)速度和效率。

(2)內(nèi)存隊列22的接入,內(nèi)存隊列管理器2對接入的內(nèi)存隊列22進行健康體檢。其中,健康體檢為本發(fā)明的特點之二,通過健康體檢提高了內(nèi)存隊列22的可靠性,并且健康檢查的間隔時間和嘗試次數(shù)要根據(jù)綜合情況來設(shè)置,原則是既不會對業(yè)務(wù)產(chǎn)生影響,又不會對負載均衡設(shè)備造成較大負擔(dān)。

內(nèi)存隊列管理器對接入的內(nèi)存隊列進行健康體檢包括以下步驟:

a、創(chuàng)建一個http健康檢查,間隔時間為5秒,嘗試次數(shù)為3次;

b、內(nèi)存隊列管理器2從內(nèi)存隊列22獲取一個頁面,檢查頁面內(nèi)容是否包含指定的字符串;

c、如果包含指定的字符串,則內(nèi)存隊列22的通信服務(wù)是正常的,如果不包含或者獲取不到頁面,認為內(nèi)存隊列22的通信服務(wù)是異常的;

d、內(nèi)存隊列22每隔5秒對異常的客戶端進行檢查,當(dāng)發(fā)現(xiàn)該內(nèi)存隊列22通信服務(wù)正常,則把該內(nèi)存隊列22重新標(biāo)記為正常。

此時,查看配置接口列表,會實時顯示當(dāng)前各個內(nèi)存隊列22的運行狀態(tài):配置信息(id編號、內(nèi)網(wǎng)ip、cpu、內(nèi)存、優(yōu)先級)、cup溫度、硬盤溫度、內(nèi)存使用率等信息。配置信息可以從本地數(shù)據(jù)庫中直接獲得,而內(nèi)存隊列管理器2的運行狀態(tài)可以從安裝在每個內(nèi)存隊列管理器2的監(jiān)控類軟件的api調(diào)用。

第二步,注冊服務(wù)器客戶端。客戶端接入系統(tǒng),采用發(fā)布/訂閱(pub/sub)模式注冊訂閱者到數(shù)據(jù)總線5的系統(tǒng)中,數(shù)據(jù)總線5記錄客戶端信息(ip、mac地址、用戶信息),數(shù)據(jù)總線5把接入的數(shù)據(jù)接口返回給客戶端。

其中返回給服務(wù)器客戶端傳輸數(shù)據(jù)采用xml數(shù)據(jù)格式如:

<messagefom='datacenter'to='number'type='reg'xml:lang='en'><tag></tag><subject>welcome</subject></message>,from為來自數(shù)據(jù)總線,to發(fā)送到目的地服務(wù)器客戶端,type為注冊類型,tag為返回的認證標(biāo)識,會在發(fā)送消息時使用,subject為備注信息。

第三步,內(nèi)存隊列22保存消息。客戶端根據(jù)數(shù)據(jù)總線5返回的接口數(shù)據(jù)將信息傳送給內(nèi)存隊列管理器2,內(nèi)存隊列管理器2將信息分發(fā)給內(nèi)存隊列22。其具體步驟如下:

(1)客戶端根據(jù)數(shù)據(jù)總線5返回的接口數(shù)據(jù)將信息傳送給內(nèi)存隊列管理器2,傳輸?shù)臄?shù)據(jù)包括數(shù)據(jù)信息、驗證信息(如果檢測到該服務(wù)器客戶端沒有在數(shù)據(jù)總線處注冊,則拒絕接收信息。)。其中數(shù)據(jù)傳輸使用xml格式,xml腳本定義發(fā)送數(shù)據(jù)格式如下:

<messagefrom='my'to='all'type='chat'xml:lang='en'><auth></auth><subject>iimploreyou!</subject></message>,

from為來自服務(wù)器客戶端的信息,to為發(fā)送到目的地,可以是全部,也可以是指定的幾臺服務(wù)器客戶端,type為消息類型,分為普通、緊急、重要,auth為服務(wù)器客戶端的驗證信息,subject為發(fā)送的具體信息內(nèi)容。

(2)內(nèi)存隊列管理器2接收信息后,通過隊列管理器21將依次保存在內(nèi)存隊列22中,內(nèi)存隊列22采用三取二冗余結(jié)構(gòu)保存信息,等待調(diào)度器3的調(diào)用。其中,三取二冗余結(jié)構(gòu)為本發(fā)明的特點之三,由于對系統(tǒng)可靠性和安全性的普遍要求,本次系統(tǒng)的冗余設(shè)計采取三取二冗余結(jié)構(gòu),通過硬件冗余來提高系統(tǒng)的可靠性和安全性,將信息保存在多個的內(nèi)存隊列22中。此時使用的內(nèi)存隊列22都處在up狀態(tài)。內(nèi)存隊列管理器2對所有的內(nèi)存隊列22發(fā)出請求信號,采用給出響應(yīng)最快的兩全內(nèi)存隊列22作為客戶端數(shù)據(jù)信息存儲機器。

第四步,消息分發(fā)。調(diào)度器3根據(jù)分發(fā)策略庫4中設(shè)定的分發(fā)策略將消息分發(fā)給數(shù)據(jù)總線5保存的客戶端,刪除保存在內(nèi)存隊列22中的數(shù)據(jù),在內(nèi)存隊列管理器2持久化消息。其具體步驟如下:

(1)調(diào)度器3建立分發(fā)工作的發(fā)起。

(2)調(diào)度器3從數(shù)據(jù)總線5處獲取已經(jīng)注冊的客戶端信息。

(3)調(diào)度器3從分發(fā)策略庫4獲取分發(fā)算法,從選中的內(nèi)存隊列22中將信息分發(fā)出去,發(fā)布/訂閱(pub/sub)模式將消息分發(fā)給訂閱者(服務(wù)器客戶端)。

(4)在本地持久化數(shù)據(jù),備份數(shù)據(jù)到內(nèi)存隊列管理器2的本地數(shù)據(jù)庫。

(5)根據(jù)內(nèi)存隊列管理器2中用戶信息刪除分布在內(nèi)存隊列22中已經(jīng)分發(fā)出去的消息,及時清理空間,最大限度的利用內(nèi)存空間。

本發(fā)明能夠有效的解決服務(wù)器間高吞吐量、高并發(fā)、易擴展的問題,通過靈活的配置內(nèi)存隊列可以滿足未來的系統(tǒng)業(yè)務(wù)發(fā)展的需要,根據(jù)最優(yōu)的出庫算法,可以保證消息最快的達到服務(wù)器客戶端,而不會產(chǎn)生堵塞、延時等情況,系統(tǒng)采用了三取二的內(nèi)存隊列服務(wù)器模塊,這種軟件冗余結(jié)構(gòu)可以大大降低發(fā)生安全問題的可能性。

以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明的范圍

內(nèi)。本發(fā)明要求的保護范圍由所附的權(quán)利要求書及其等同物界定。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
曲松县| 深水埗区| 霍林郭勒市| 长武县| 罗定市| 仙居县| 林甸县| 汤原县| 江城| 镇原县| 隆化县| 澜沧| 天全县| 浦城县| 汤阴县| 兴海县| 石阡县| 化德县| 嘉峪关市| 平顶山市| 渝北区| 桓台县| 万山特区| 万年县| 福州市| 勃利县| 深圳市| 张掖市| 射阳县| 牙克石市| 舟曲县| 安溪县| 九寨沟县| 昌黎县| 三亚市| 丽水市| 阳新县| 察哈| 秭归县| 新郑市| 东台市|