如何利用腾讯云搭建分布式应用

推荐理由: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

图片描述

相关文章
相关标签/搜索