Resultados 1 a 7 de 7
  1. #1
    WHT-BR Top Member
    Data de Ingresso
    Dec 2010
    Localização
    /sc/rionegrinho
    Posts
    1,036

    Puzzle pra galera

    Pessoal, estou com uma necessidade no momento e quero ver o que os amigos aqui podem me sugerir.

    Tenho um script (bot) que faz a conexão em uma API de um determinado site para fazer trade em BTC.
    Até aí, tudo certo e funcionando.

    Agora, estou estudando a possibilidade de permitir outros usuários usarem o meu bot me pagando uma licença mensal e tal.
    A questão é que eu quero ter mais instâncias do meu bot rodando, só que o site só aceita 5 conexões na API por segundo, por IP. Se eu rodar mais de uma instância do meu bot, já era.

    Pra resolver isso, pensei em usar um proxy, que minha conexão lá na API chegasse de um IP diferente da minha máquina. Entretanto, com isso eu perderia a segurança de poder especificar o IP permitido de acessar a API com minha chave.

    A outra opção que me veio à mente seria pegar uma máquina com muitos IPs e virtualizar micro instâncias com 1 IP cada pra rodar as instâncias do bot isoladamente. Isso até seria legal, se eu pudesse acessar todos de uma única interface.

    Também pensei em pegar umas VMs micro por aí, mas eu realmente quero gastar o mínimo possível com isso.

    Por isso o puzzle. Qual a forma mais barata e simples de fazer isso?
    Alexandre Silva Hostert

    Veezon
    Gerenciamento de Servidores


    http://veezon.com.br
    http://br.linkedin.com/in/alexandreveezon

  2. #2
    WHT-BR Top Member
    Data de Ingresso
    Dec 2010
    Posts
    15,049
    Citação Postado originalmente por AlexandreVeezon Ver Post

    Também pensei em pegar umas VMs micro por aí, mas eu realmente quero gastar o mínimo possível com isso.
    Se envolve "muito" uso de CPU ou IO, Vultr e DigitalOcean não são opções.

    https://discuss.vultr.com/discussion...oyal-customer-

  3. #3
    WHT-BR Top Member
    Data de Ingresso
    Dec 2010
    Localização
    /sc/rionegrinho
    Posts
    1,036
    Não, CPU e IO é quase zero. Tanto que atualmente, rodo umas 5 instâncias para diferentes sites no meu próprio servidor e não mudou nada

    Tudo que o bot faz é GET e POST usando o curl.
    Alexandre Silva Hostert

    Veezon
    Gerenciamento de Servidores


    http://veezon.com.br
    http://br.linkedin.com/in/alexandreveezon

  4. #4
    WHT-BR Top Member
    Data de Ingresso
    Jul 2011
    Posts
    1,038
    Uma única máquina, real ou virtual, com 5 IPs configurados. 5 threads de requisições, cada um atrelado a um IP de saída. Cada thread sabe seguir o limite dela de 5 reqs por segundo. Quando um dos seus usuários pagantes faz uma requisição, seu sistema escolhe com probabilidade de 20% qual worker vai receber a requisição.

  5. #5
    WHT-BR Top Member
    Data de Ingresso
    Dec 2010
    Localização
    /sc/rionegrinho
    Posts
    1,036
    Citação Postado originalmente por rubensk Ver Post
    Uma única máquina, real ou virtual, com 5 IPs configurados. 5 threads de requisições, cada um atrelado a um IP de saída. Cada thread sabe seguir o limite dela de 5 reqs por segundo. Quando um dos seus usuários pagantes faz uma requisição, seu sistema escolhe com probabilidade de 20% qual worker vai receber a requisição.
    Interessante. Preciso estudar como fazer um processo sair por um IP definido, ao invés do main. É uma boa sugestão.
    Alexandre Silva Hostert

    Veezon
    Gerenciamento de Servidores


    http://veezon.com.br
    http://br.linkedin.com/in/alexandreveezon

  6. #6
    WHT-BR Top Member
    Data de Ingresso
    Jul 2011
    Posts
    1,038
    Citação Postado originalmente por AlexandreVeezon Ver Post
    Interessante. Preciso estudar como fazer um processo sair por um IP definido, ao invés do main. É uma boa sugestão.
    Isso vai depender da linguagem, mas existe na interface sockets essa opção. Quando se abre um socket pode-se colocar ANY (o que parece no netstat como *) e aí o IP de origem vai ser o IP de saída, mas não precisa necessariamente ser assim.

  7. #7
    WHT-BR Top Member
    Data de Ingresso
    Dec 2010
    Localização
    /sc/rionegrinho
    Posts
    1,036
    Citação Postado originalmente por rubensk Ver Post
    Isso vai depender da linguagem, mas existe na interface sockets essa opção. Quando se abre um socket pode-se colocar ANY (o que parece no netstat como *) e aí o IP de origem vai ser o IP de saída, mas não precisa necessariamente ser assim.
    Hehehe, deu certo, obrigado pela dica!

    Código:
    root@server [~]# curl -I veezon.com.br
    X.X.X.100 - - [11/Nov/2015:11:07:10 -0200] "HEAD / HTTP/1.1" 200 - "-"  "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic  ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
    
    root@server [~]# curl -I --interface eth0:cp1 veezon.com.br
    
    X.X.X.101 - - [11/Nov/2015:11:07:13 -0200] "HEAD / HTTP/1.1" 200 -  "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1  Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
    Alexandre Silva Hostert

    Veezon
    Gerenciamento de Servidores


    http://veezon.com.br
    http://br.linkedin.com/in/alexandreveezon

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •