Startec

Startec

[Ajuda] Estou trocando uma arquitetura, quero opiniões! · Ytu

Mai 22, às 22:37

·

2 min de leitura

·

0 leituras

Contextualizando [ ] Estou ultilizando TS! Tenho um bot no discord que caiu a umas semanas, porém está em um grande numero de servidores (100+), onde o úsuario digita um texto e é adicion...
[Ajuda] Estou trocando uma arquitetura, quero opiniões! · Ytu

Contextualizando

  • Estou ultilizando TS!

Tenho um bot no discord que caiu a umas semanas, porém está em um grande numero de servidores (100+), onde o úsuario digita um texto e é adicionado a uma fila, onde o processamento é demorado, então primeiro é retornado um embed com o lugar na fila, e depois,tardiamente, a atualização da fila e o por fim o resultado do texto.

busco por opniões, dicas, soluções e +

Atualmente

Para não travar o bot entre todas as requisições, cheguei a essa arquitetura:
imagem da arquitetura atual

Nesta arquitetura, temos 3(para extrair o melhor do bull, são 3, com um sistema dedicado) arquivos rodando e um serviço REDIS, desta forma, o bot(1) se conecta ao socket aberto pelo backend(2), que envia requisições para o bull, que tem por padrão uma conexão com redis(que custa muitas requisições, o que não vale a pena no momento), onde distribui suas tarefas entre 3 processos, que também se conectam ao socket, e retornarm emitindo da thread direto para o bot, que interage com o servidor.

Nesta arquitetura(além de ocorer requests demais para o redis, quase 50 por mensagem), a queue trava ou se torna muito demorada devido a pouca quantidade de processos do bull, até poderia escalar esses processos, porém isso custaria mais máquina, mais redis, e uma conexão socket mais robusta para lidar com mais servidores ao mesmo tempo (atualmente processa 3 mensagens num tempo de 10 segundos aproximadamente, então se voce estiver em 120° na fila, você deve esperar um tempo minimo de 760 segundos)

Nova arquitetura proposta:

Nova arquitetura

Nesta Arquitetura, rodeamos ao redor de um serviço Rabbit mq, com um processo Lider ( main ), que divide a tarefa entre muitos outros customers, podendo ter varios por maquina, ou até em máquinas separadas sem muito problema, desta forma o redis se torna apenas um cache e o main orquestra a divisão de tarefas entre customers, onde o bot se comunica somente com o processo main, e, para escalonar o serviço, bastaria subir mais consumers(o main se encarrega de dividir a carga, sem nem precisar parar o serviço para ser escalonado, dessa forma eu poderia ter 5 maquinas rodando apenas consumers sem problema nenhum de escalonamento e velocidade, e, o rabbit mq seria robusto o suficiente para orquestrar toda comunicação, sendo o bot apenas a parte final.


Continue lendo

DEV

How to Create an Evil Twin Access Point; Step-by-Step Guide
Step-by-Step Guide: Creating an Evil Twin An Evil Twin Access Point is a malicious wireless access point that is set up to mimic a legitimate one. It can be used to intercept sensitive information such as...

Jun 3, às 23:41

DEV

Atomic Design: A Methodology for Building Design Systems
Introduction Atomic Design is a methodology for creating design systems that recognizes the need to develop thoughtful design systems, rather than creating simple collections of web pages. In this approach,...

Jun 3, às 23:04

Hacker News

Thought Cloning: Learning to Think while Acting by Imitating Human Thinking
Language is often considered a key aspect of human thinking, providing us with exceptional abilities to generalize, explore, plan, replan, and adapt to new situations. However, Reinforcement...

Jun 3, às 23:00

AI | Techcrunch

YouTube rolls back its rules against election misinformation
YouTube was the slowest major platform to disallow misinformation during the 2020 U.S. election and almost three years later, the company will toss that policy out altogether. The company announced Friday...

Jun 3, às 22:57

DEV

Techinical Debt; what is it?
Imagine you're building a house. You want to finish it quickly, so you take some shortcuts along the way. You use low-quality materials, skip some important steps, and don't do thorough testing. The house is...

Jun 3, às 22:45

Marktechpost AI Research News

Researchers From UT Austin and UC Berkeley Introduce Ambient Diffusion: An AI Framework To Train/Finetune Diffusion Models Given Only Corrupted Data As Input
For learning high-dimensional distributions and resolving inverse problems, generative diffusion models are emerging as flexible and potent frameworks. Text conditional foundation models like Dalle-2, Latent...

Jun 3, às 22:40

DEV

Exploring Tech Paths: Discovering Exciting Possibilities
Table of Contents: Introduction Understanding the Diverse Fields in Tech The Search for the Right Tech Path A Case Scenario: Linda's Journey Actionable Advice for Exploring Tech Paths Success Story: Jane's...

Jun 3, às 20:55

Código Fonte

Ele usou o GPT-4 para criar uma nova linguagem de programação – Código Fonte
É inegável que os largos modelos de linguagem (LLMs), que são a base dos atuais algoritmos de Inteligência Artificial generativa, chegaram para revolucionar, nem que seja somente o ano de 2023, até a...

Jun 3, às 20:51

DEV

☸️ How to deploy a cost-efficient AWS/EKS Kubernetes cluster using Terraform in 2023
Introduction Variables Providers and locals The enclosing VPC network The actual Kubernetes cluster Docker registries S3 application bucket Outputs Conclusion Cover image generated locally by DiffusionBee...

Jun 3, às 20:18

AI | Techcrunch

Gig workers get paid, Fidelity slashes Reddit's valuation and AI conquers Minecraft
Hey, folks, welcome to Week in Review (WiR), TechCrunch’s regular newsletter that recaps the week in tech. Hope the summer’s treating y’all well — it’s a balmy 90 degrees here in NYC! — and that some...

Jun 3, às 20:15