如何利用騰訊雲搭建分佈式應用

推薦理由:linux

當遇到忘記zip包密碼時,咱們每每須要一些破解密碼的暴力軟件,但是網上找的這些軟件要麼收費,要麼就是很差用,並且速度又慢,至關不給力;而我推薦的這篇文章就介紹瞭如何本身開發一個分佈式的密碼破解軟件,但願對你們有所幫助。nginx

如下爲文章原文:算法

一.背景apache

以前有個zip包忘記密碼了,網上搜的一些暴力破解的軟件,要麼收費,要麼很差用,最關鍵的是,速度太慢,因而本身決定開發一個分佈式的密碼破解軟件。django

軟件的問題解決了,分佈式執行須要的機器的問題來了。雲自身的分佈式組織,跟分佈式軟件天生契合。安全

二. 分佈式密碼破解軟件架構設計服務器

  1. 架構圖
    圖片描述微信

  1. 模塊設計網絡

總體架構是C/S模式,多個client經過server來調度,執行破解任務。架構

(1) server

server分爲UI層和分發層,UI層是非必要的,能夠作成獨立客戶端,也能夠作成B/S的服務,甚至命令行也是ok的。

分發層,這是分佈式的核心:調度client執行破解操做,同步執行信息。這一層的實現,不能依賴操做系統,也不能依賴UI,這樣能夠保證可移植性。

(2) client

調用層,也是可移植性編寫的一層。分佈式的實現關鍵就在於server的分發層和client的調用層之間的交互協議了。

UI層,能夠跟調用層交互,展現當前的狀態信息和進度,也是非必須的。

實現層,具體實現破解的操做,例如zip、rar等壓縮工具只能暴力破解的能夠考慮用7z.exe,其餘的doc、pdf可使用對應的破解工具或算法。這一層會跟具體平臺相關。(對於7z這種跨平臺的軟件來講,根本也不是問題)

三.使用騰訊雲搭建系統

  1. 購買雲主機

用帳號登錄後,進入控制檯,選擇下圖中的「雲服務器」。

圖片描述

在界面上選擇「新建」,就會有一個流程讓你選擇對應的配置、地區,會標明使用價格。

從根本上講,cpu核數決定了執行的快慢,可是若是核數選擇的很差,可能會致使CPU調度成本,影響總體性能。通常來講,以4核的比較好,其餘的硬盤、網絡等配置能夠低一些,節省成本。

從實現上,能夠在一臺4核的機器上,部署4個client,固然也能夠部署一個client,而後併發4個線程,將cpu使用率最大化。我的比較推薦的是4個client(經過不一樣的端口號或協議內部實現區分),避免進程內部的調度、同步,若是實現的很差,容易致使crash、死鎖或性能消耗。

  1. 機器配置

若是購買了多臺機器,那麼可能要處理機器之間的網絡環境,各種雲服務都提供了豐富的網絡特性,以知足複雜網絡需求。還有更高階的虛擬私有網絡(VPC)、子網(Subnet)等內容,這些是針對企業級或大型應用的,暫時用不到。

圖片描述

能夠配置安全組用於限制本身內部子機間的訪問策略,這個是動態的,相似於iptables,至關於防火牆策略,通常使用默認的所有開放就能夠了,安全級別要求高的應用能夠定製本身的策略。

ssh密鑰,若是你的雲服務器(英文一般稱cvm,cloud virtual machine)綁定了ssh密鑰,那麼你在使用ssh登陸的時候,ssh客戶端會要求你提供證書,證書在建立密鑰後能夠下載到本地。若是沒有綁定,能夠指定登陸帳號和密碼,至少會有一個root帳戶(linux的話)。

彈性公網ip,這個是讓你的應用可以在公網使用的關鍵,一般來講,建立的cvm都是內網ip,是沒法在公網中找到的,若是綁定了彈性公網ip,那麼就能夠在公網上訪問了,相似於家裏路由器對應的dmz主機,是能夠被公網訪問的。

  1. 應用部署

既然放在雲上面,爲了可以本身用,甚至提供給別人用,固然是要作成B/S模式的應用了(應用自身內部是C/S模式)。使用django+nginx+apache,能夠快速構建一個網站,並提供對應的rpc接口,操做server端,下發任務就便捷了。

趕忙本身去試試,作一個分佈式雲應用吧!!

文章出自騰訊雲技術社區

(埋文字鏈https://www.qcloud.com/commun...

推薦你們關注騰訊雲技術社區微信公衆號:QcloudCommunity

圖片描述

相關文章
相關標籤/搜索