挨踢部落坐診第四期:Java消息隊列的應(yīng)用場景和作用
原創(chuàng)【51CTO.com原創(chuàng)稿件】活動說明:挨踢部落是為核心開發(fā)者提供深度技術(shù)交流,解決開發(fā)需求,資源共享的服務(wù)社群?;诖松缛海覀冄埩藰I(yè)界技術(shù)大咖對開發(fā)需求進(jìn)行一對一突破,解除開發(fā)過程中的絆腳石。以最專業(yè)、***效的答復(fù)為開發(fā)者解決開發(fā)難題。
消息隊列
話題關(guān)鍵詞:消息隊列、索引、App、路由、接口
部落陣容:51CTO管理團(tuán)隊;
面向?qū)ο?/strong>:移動開發(fā)者、IT運維、數(shù)據(jù)分析師
參與方式:加入51CTO開發(fā)者QQ交流群(群號370892523(已滿)、請加312724475),有任何技術(shù)問題,在群里提問,或發(fā)給群主小官。
活動詳情:
重慶-小包-Android:我一運行就報這個錯,等待程序接入,這是什么問題?
成都-恩威-云計算:看一下防火墻或者安全規(guī)則是否攔截了?打開AndroidManifest.xml代碼文件,注釋掉或者刪除掉這行:
- <uses-sdk android:minSdkVersion="8" /> 即可。
吉林-初見-SE:創(chuàng)建的索引,查詢確實變快了,不過1.6G的數(shù)據(jù)漲了1G多,"變?yōu)?.6G了!這漲了一半的量對勁嗎?我是插入完數(shù)據(jù)再添加的索引,很慢。表只有兩個列,只給一個列添加了索引,下次試試創(chuàng)建表的時候添加索引有什么區(qū)別。
廣州-大數(shù)據(jù)-益達(dá):肯定不一樣。建表加索引,是結(jié)構(gòu)已經(jīng)固定,比如采用B-tree,當(dāng)數(shù)據(jù)來的時候,才添加索引到索引樹里面了。你整體數(shù)據(jù)導(dǎo)入后再建索引,數(shù)據(jù)量越大,B-tree的構(gòu)建時間越長。只是構(gòu)建花時間,索引構(gòu)建時機(jī)不同。一般設(shè)計在建表的時候就要建索引。設(shè)計合理,索引本身就會增加空間??梢岳斫獬墒且钥臻g換時間的方式。不合理的索引設(shè)計,會導(dǎo)致索引成本增加。你這只有2列。索引主要是為了where條件里面的查詢,可以了。
深圳-圳-Java:請求大神一個問題,Java消息隊列主要用于什么場景?在程序中又起到了什么作用?
1>北京-陽陽-安卓:很明顯,隊列的長度有限,所以不適用于大數(shù)據(jù)量的,消息如果一直在隊列中,得不到處理,也會有問題。發(fā)送消息的時候太多,處理不過來,就放到隊列里,一個個處理。
2>廣州-大數(shù)據(jù)-益達(dá):最明顯的一個作用,就是防止雪崩。某一時刻數(shù)據(jù)量突然增大,起到一個緩沖。
3>北京-arige-Android:一般都是異步的,不要求立即響應(yīng)。打個比喻,你同時只能做一件事,但是你有一個ToDoList,每做完一個,在ToDoList中劃掉一個,有新的分給你的任務(wù),就放到ToDoList后面,這個ToDoList差不多就是一個隊列了,隊列就是一種數(shù)據(jù)結(jié)構(gòu),減輕的不止是數(shù)據(jù)庫的壓力。
4>成都-劉聲杰-后端:消息隊列可以用來實現(xiàn)一些懶操作,很多懶操作,我們都可以用消息隊列來實現(xiàn),當(dāng)然還可以用來實現(xiàn)不同語言之間的通訊。懶操作是指一些不及時的操作,耗時的操作,比如發(fā)送郵件、圖片處理、數(shù)據(jù)統(tǒng)計等等。這些不需要立即返回結(jié)果的,都可以先用消息隊列保存起來,然后一個個的處理。比如發(fā)送郵件的操作,一種是多線程來處理,因為發(fā)送郵件需要時間, 如果有了消息隊列,我們僅僅需要將發(fā)送郵件所需要的數(shù)據(jù)放在消息隊列里面,然后另一個專門發(fā)送郵件的程序從消息隊列里面一個個的獲取,然后發(fā)送。而這時發(fā)送郵件的前端,僅僅只需要將數(shù)據(jù)保存到消息隊列就返回了,不需要等郵件真正的發(fā)送出去才返回。你可以發(fā)郵件,但是有一個阻塞,如果你不用單獨的線程,就像你要遠(yuǎn)程計算一張圖片的大小一樣,還是需要等圖片下載完了,才能夠獲取大小,而這個圖片下載需要時間,是對中間等待時間的優(yōu)化。
深圳-圳-Java:有誰知道H5如何實現(xiàn)手機(jī)錄音?
安徽-Coeus-PHP:需要第三方支持,要是微信開發(fā)簡單點,直接調(diào)用微信的API就可以了,之前github上有record.js處理這個問題,可以搜一下。https://github.com/mattdiamond/Recorderjs看看行不行 。
安徽-Coeus-PHP:話說關(guān)于JAVA學(xué)習(xí)我有一個疑問,Android是屬于Java WEB前端的范疇嗎?
北京-arige-Android:不屬于吧,Java只是一個語言而已,Android是一個系統(tǒng),能寫win應(yīng)用的語言有很多,但是不能說WIN是哪個語言的一部分。
鄭州-白楊-返校學(xué)習(xí):曹老師,視覺分辨人臉技術(shù)和驗證碼圖形自動填充屬于一個理念嗎?人臉檢測使用什么框架的?
北京-曹洪偉-半吊子全棧工匠 :不一樣。人臉檢測 用的是 OpenCV3,計算機(jī)視覺領(lǐng)域著名的開源庫。
上海-小杰-學(xué)生:請教下,我這個問題怎么調(diào)整?
1>安徽-coeus-PHP:是不是安裝固態(tài)硬盤?要把BIOS的硬盤模式修改一下。
2>江蘇-麥克-大數(shù):是不是新的機(jī)器,BIOS有個模式改為傳統(tǒng)就行了,目前應(yīng)該是UEFI模式。
3>南昌-小草-設(shè)計/前端:不需要裝固態(tài),這種進(jìn)PE修改一下硬盤分區(qū),你只需要一個分區(qū)助手。應(yīng)該是重裝系統(tǒng)激活時候提示的吧,一般重新分區(qū)就好了。
鄭州-哎呀-php:接口使用HTTPS時,App應(yīng)用訪問接口加上Token,是否需要再使用簽名?對于一些不需要登錄就能瀏覽的接口安全應(yīng)該怎么限制呢?也就是不需要權(quán)限驗證就能瀏覽,為了防止一些數(shù)據(jù)抓取,惡心行為,大神們誰給普及下。
1>北京-崔一凡-架構(gòu)師:一般來說,有Token就可以了??茨愕哪康牧耍愕慕涌谠O(shè)計如果只能讓你的App訪問的話,你和App協(xié)商好交互協(xié)議就行了,后臺和App約定秘鑰,報文加密傳。每次版本換一個,報文中約定版本號,根據(jù)版本號再做點手段?;蛘吣憧梢栽O(shè)計的復(fù)雜點,比如App安裝初始化的時候自動生成秘鑰,發(fā)到后臺保存起來,設(shè)備標(biāo)記是不變的。反正無論你怎么考慮安全,都是能被破解的,我也沒有萬無一失的手段,只能多加幾層驗證機(jī)制,增加別人破解的成本。
2>安徽-Coeus-PHP:基本上這么做,分配app_key和app_secret,客戶端通過app_key和app_secret去服務(wù)端驗證并且換來具有失效性的token_code,然后客戶端在通過token_code為憑證去取數(shù)據(jù)。
北京-晶晶-lT:我問下,公司網(wǎng)絡(luò),必須在這里配置一下才能上網(wǎng),不配置的話不能上網(wǎng),這里面怎么配置?比如現(xiàn)在我有20臺電腦不想讓他們上網(wǎng),然后要是需要網(wǎng)絡(luò)呢,就在這里配置一下就可以上網(wǎng)了。
1>云南-小元素-VBA:其實告訴你一個簡單辦法。MAC封鎖就可以了,路由器有MAC封鎖功能。可以制作網(wǎng)絡(luò)IP沖突,找到局域網(wǎng)內(nèi)能上網(wǎng)的某個IP,修改你計算機(jī)MAC,填寫對方MAC就可以了,可以ping下你們LAN中哪個地址可ping通,然后arp -a 就能解析到對方的macle。也可以批量ping下你們公司的IP,寫個bat腳本,或者直接下載MAC工具直接掃,這三個方法都可以。
2>北京-軍閥-嵌入式:把你的IP地址改成他的,然后去路由器表里綁定MAC,如果對方是自動獲取地址就不管用了。
北京-晶晶-lT:紅線的這個路由器端口是不是要配置下?現(xiàn)在紅線的這個我按照綠線那臺配置的,不通,不知道哪里出錯了。
1>北京-RK-Java:你用的是 Cisco Packet Tracer 吧,可以去51CTO看韓立剛老師的關(guān)于Packet Tracer的視頻。
2>北京-小蟲-安全:看看你的接口弄錯了沒,華為的模擬器和思科的模擬器配置都不一樣,命令和思科的也不一樣,都是相同的網(wǎng)絡(luò)技術(shù)做基礎(chǔ),只是命令上會有一些區(qū)別,想學(xué)這個,要不就學(xué)思科,要不就學(xué)華為,命令沒有必要死記硬背,用到的時候打個問號就都出來了。
問號出來的就是在當(dāng)前地方可以輸入那些命令,后面還有命令的解釋,我記得華為的還有中文的解釋。你輸show ?就會出來show這個后面可以跟那些命令,比如你輸入show和輸入sh效果是一樣的。
每個模式都有自己的命令,帶#號的是進(jìn)入特權(quán)模式,你找本CCNA的書看看,51CTO下載頻道多的是。也可以看HCNA和HCNP,HCNA和HCNP是華為的,CCNA是思科的。敲命令沒啥難度,先把理論看看,然后在敲命令做相關(guān)的實驗,這樣會比較好學(xué),給個很簡單的Cisco PT的實例教程,跟著上面敲一遍理解交換和路由理論。***你也可以看看IE。
武漢-華子-運維:Dynamips,Boson NetSim,GNS3,Cisco設(shè)備模擬哪家強(qiáng)?有沒有可以同時模擬Cisco和華為多廠家的?
廣州-狄欽dQ-PHP:沒有一個模擬器可以模擬所有的,掌握理論才是最重要的。PT是思科官方模擬器,圖形化前端,簡單易用,目前比較流行的有GNS, Dynamips。
您對這些解答方案是否仍有疑問?歡迎加51CTO開發(fā)者QQ交流群 312724475 討論。
下期活動預(yù)告:5月9日
關(guān)鍵詞:智能客服、深度學(xué)習(xí)、移動、云平臺
活動回顧:挨踢部落***期:Spark離線分析維度
挨踢部落第二期:大數(shù)據(jù)在醫(yī)療領(lǐng)域的應(yīng)用和實踐
挨踢部落坐診第三期:Python在大數(shù)據(jù)處理上的優(yōu)勢分析
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】