Ir para o conteúdo
Logo SR
  • Português
  • English
  • Início
  • About
Logo SR
  • Português
  • English
  • Início
  • About

RabbitMQ #1 – O que são sistemas de mensageria?

Protocolos, Rede

English version: RabbitMQ #1 – Messaging Systems

English version: click HERE
Início » Rede » Protocolos » RabbitMQ #1 – O que são sistemas de mensageria?

O que você precisa saber sobre RabbitMQ, o sistema de mensageria mais utilizado pelo mercado. Esse sistema amplamente utilizado, tornou-se uma das aplicações mensageria mais requisitadas pelo mercado.

 Contudo, você sabe o que é um sistema de mensageria? Como ele funciona? Existe mais de um tipo de arquitetura que define o fluxo de mensagens dentro do sistema?  Qual o protocolo de comunicação que define a operação do RabbitMQ?

Sumário
  1. O que é um sistema de mensageria? 
    • Definição de sistemas distribuídos
    • Comunicação orientada a mensagem 
    • Arquitetura de fluxo de mensagens 
  2. Protocolos de comunicação 
  3. Quando esse tipo de sistema se torna interessante? 
  4. Protocolo AMQP
    • O que seria então um framework de semântica? 
  5. AMQP versão 0.9.1
    • Interoperabilidade
  6. RabbitMQ – breve descrição
    • Características do RabbitMQ

Tutorial RabbitMQ:

Artigo 01: RabbitMQ #1 – O que são sistemas de mensageria?

Artigo 02: RabbitMQ #2 – RabbitMQ no docker-compose

Artigo 03: RabbitMQ DLX com Java Spring

Além disso, quais as linguagens de programação com suporte ao RabbitMQ. Esse artigo descreve a teoria por trás do RabbitMQ. Além disso, descrevemos uma visão geral sobre o protocolo de comuicação AMQP.

Em artigos futuros iremos aplicar o conhecimento ao criar um cenário utilizando a API java spring-rabbitmq. 

Se quiser saber sobre outro protocolo de comunicação, o HTTP acesse:

  • Protocolo HTTP – Como funciona?
  • Métodos HTTP
  • Cookies – HTTP Protocol
  • Apache HTTPS Server configurar

O que é um sistema de mensageria? 

Esse conceito de mensageira está fundamentado na matéria de sistemas distribuídos dentro da computação. Caracteriza-se por uma comunicação orientada a mensagem, onde podem ser classificadas como persistentes ou transientes.

Dessa forma, sistemas de mensageria (messaging systems) podem ser clusterizados, possuem escalabilidade, são tolerantes a falhas, com comunicação assíncrona. Além disso, é intuitivo dizer que opera como sistema distribuído. 

Definição de sistemas distribuídos

Um sistema distribuído opera com seus componentes localmente dispersos. Consequentemente, existe um alinhamento entre os componentes. Dessa forma, na comunicação os dispositivos coordenam suas ações conjuntamente. Contudo, o usuário percebe o sistema (ex: RabbitMQ) como um único componente provedor de serviços. 

Comunicação orientada a mensagem 

Em sistemas de comunicação orientada a conteúdo temos o conceito de middleware services, geralmente conhecido como sistema de filas de mensagens. Ainda assim, o middleware também possui a nomenclatura MOM – Message-Oriented Middleware.

Existem algumas formas distintas de implementação de sistemas de orientada a mensagem. Contudo, o sistema de de filas provê um suporte extensivo para comunicações persistentes assíncronas.

Consequentemente, o sistema é mais indicado para cenários com variação no status das partes envolvidas. 

Muito bem… então como ocorre essa comunicação assíncrona? O sistema de mensageria realiza a intermediação do envio e recebimento de requisições. Dessa forma, as partes envolvidas não precisam estar operacionais ao mesmo tempo.

Neste caso, temos um sistema que tolera minutos ao invés de segundos ou milissegundos.  

Arquitetura de fluxo de mensagens 

A arquitetura que determina o fluxo de comunicação entre as partes, são classificadas como: sistema de filas e publisher/subscriber. Cada arquitetura possui um esquema de intermediação. Contudo, ambos cenários utilizam a abstração de filas. A ideia básica da operação de uma fila é o sistema FIFO – First In First Out. 

A ideia principal desse sistema consiste em estabelecer conexões entre as partes envolvidas. Dessa forma, o sistema fica responsável pelo roteamento e armazenamento das mensagens. Consequentemente, as aplicações de usuários se comunicam de maneira transparente. 

As mensagens trafegadas dentro das filas são roteadas de acordo com algum critério. O fluxo de controle de mensagem define o tipo de roteamento que será aplicado as mensagens. Consequentemente, o fluxo de mensagens depende da arquitetura do sistema. Além disso, há ainda o armazenamento de mensagens.

O roteamento consiste em analisar a partir de critérios previamente estabelecidos para quem será entregue a mensagem. Por sua vez, o armazenamento da mensagem ocorre na fila que conecta o sistema ao destino. Caso a aplicação que irá consumir o conteúdo esteja offline (seja qual for o motivo), a mensagem será armazenada até ser requisitada. 

Protocolos de comunicação 

Os protocolos de comunicação são os responsáveis pela operação do sistema. Consequentemente, o modelo define as diretrizes principais de operação do protocolo. Contudo, a aplicação poderá ainda definir outras features além das que são abordadas no modelo. 

Nosso foco será o protocolo de comunicação AMQP na sua versão 0.9.1. Apesar de parecer contraditório, a versão 1.0 do AMQP implementa um outro modelo de comunicação. Sendo assim, a versão 1.0 não é a evolução do protocolo. 

Existem outros protocolos de comunicação, como HTTP, STOMP, e o próprio AMQP 1.0. Cada um deles implementa um modelo diferenciado de comunicação. Assim, cabe ao profissional de computação verificar qual atenderá suas necessidades.  

Dentro desse contexto, uma das aplicações mais utilizadas atualmente em sistemas de mensageria é o RabbitMQ. Dessa forma, sua base está no modelo AMQ e sua operação no protocolo AMQP 0.9.1. 

Quando esse tipo de sistema se torna interessante? 

O modo de operação de um sistema tradicional requer uma comunicação síncrona, ou seja, o lado do receptor deve estar executando no mesmo momento do envio da requisição. Dessa forma, caso a ponta da comunicação que receberá a mensagem esteja offline, o pacote não será entregue. 

Um exemplo desse cenário se encontra justamente no estabelecimento da comunicação TCP. Dessa forma, para que uma conexão TCP seja estabelecida, as partes devem realizar o handsake antes de efetuar o envio de pacotes. 

Falando ainda em TCP … podemos descrever dois cenários. No primeiro, o cliente envia diversos pacotes de início de conexão. Entretanto, não terá resposta devido a falha no servidor. Diferentemente do primeiro, o segundo cenário que poderá ocasionar a falha na conexão.  

Suponha diversos clientes realizando requisições ao mesmo tempo. Haverá um fluxo enorme de pacotes que poderá ocasionar diferentes problemas, como: lentidão no servidor, queda de performance, atraso na resposta das requisições, e por fim queda (falha) do servidor. 

Em um sistema de mensageria, a comunicação não fica comprometida caso haja falha em um nó destino. O sistema é responsável por gerenciar as mensagens até estas serem entregues aos seus respectivos destinatários.

O leitor pode receber então, que existem cenários em que essa comunicação alternativa é necessária. Assim sendo, sistemas orientados a mensagem são uma solução viável. 

Protocolo AMQP

O AMQP 0-9-1 é um protocolo de mensageria binário, ou seja, onde existem duas partes envolvidas. Dessa forma, as duas pontas da comunicação são denominadas produtores e consumidores. As mensagens recebidas pelos consumidores são enviadas pelos produtores. 

Outra nomenclatura é a de publisher (editor) e subscriber (assinante). Esta por sua vez está associada apenas ao modelo Pub/Sub. Contudo, a primeira nomenclatura pode ser utilizada em sistemas de filas e Pub/Sub. Trataremos este tema futuramente em outro artigo. 

Continuando … o AMQP é então binário, e um framework de semântica para micro serviços, e mensageria de empresas. Ele define como será o fluxo de mensagens dentro do sistema de comunicação assíncrona. Assim como a função dos componentes do sistema. 

“Semântica: num sistema linguístico, o componente do sentido das palavras e da interpretação das sentenças e dos enunciados.” 

oxford language 

O que seria então um framework de semântica? 

O conceito de semântica está atrelado ao sentido das palavaras. Consequentemente, podemos extrapolar para nosso contexto como sentido, ou papel de um componente dentro do sistema. Dessa forma, o AMQP define a estrutura, e componentes do sistema.

Cada componente tem sua ordem dentro da estrutura de comunicação. Vamos utilizar o RabbitMQ para exemplificação. Um produtor se comunica com o message-broker enviando as mensagens. Por sua vez, um consumidor estabelece comunicação através das filas.

As permissões, limites, função dentro do sistema e quais features cada componente poderá modificar são definidas pelo protocolo.

AMQP versão 0.9.1

Como mencionei anteriormente, apesar de nomes semelhantes, o AMQP 0-9-1 e AMQP 1.0 são protocolos completamente diferentes. Portanto, o AMQP 1.0 possui um escopo e modelo de topologia diferentes da versão 0.9.1.

O RabbitMQ, foco do nosso artigo, opera com base no AMQP 0-9-1. Contudo, fornece suporte via plugins aos protocolos de comunicação AMQP 1.0, MQTT e STOMP.  

O AMQP realiza a interoperabilidade entre clientes e servidores do tipo messaging middleware servers (brokers). O objetivo do protocolo é permitir que a indústria e os desenvolvedores adotem a padronização referente a tecnologia de messaging middleware.

Assim, diminuir custos das empresas e integração de sistemas, e fornecer integração de serviço à nível de indústria a um público mais amplo. 

Interoperabilidade

Para garantir a interoperabilidade do sistema, protocolos de rede e de semântica devem ser especificados nos serviços do lado do servidor. O AMQP implementa os protocolos definindo um conjunto de recursos de mensagens, e um protocolo denominado network wire-level. 

A base do protocolo AMQP está fundamentada em um conjunto definido de recursos de mensagens denominado “Advanced Message Queuing Model “(modelo AMQ). O modelo AMQ consiste em um conjunto de componentes que roteiam e armazenam mensagens dentro do serviço do broker.

Além disso, há ainda um conjunto de regras para conectar esses componentes. Um protocolo wire-level network, AMQP, que permite que aplicativos clientes conversem com o servidor e interajam com o modelo AMQ que ele implementa. 

RabbitMQ – breve descrição

O RabbitMQ é uma aplicação open source de message-broker (intermediário) de comunicação e troca de mensagens entre as partes. Por ter sido desenvolvido em erlang, é muito leve e eficiente. A linguagem erlang foi desenvolvida pela Ericson, com foco em sistemas distribuídos.

Além disso, diferentemente de sistemas tradicionais, o RabbitMQ opera estabelecendo comunicações assíncronas. Consequentemente, as partes envolvidas não precisam estar operacionais ao mesmo tempo para a comunicação ser efetuada.

O RabbitMQ é uma aplicação do protocolo AMQP na versão 0.9.1. Neste caso, o servidor de produção (de mensagens) estará conectado à uma exchange, ao invés de estar conectado à fila diretamente. A exchange é similar a um correio que direciona as mensagens de acordo com seu endereçamento.

Existem outras aplicações de mensageria no mercado. Contudo, e o que define cada uma delas está relacionado ao fluxo das mensagens dentro do sistema. Em outras palavras, a forma como a mensagem se move pelo sistema.

Características do RabbitMQ

No RabbitMQ, essa informação faz parte dos metadados. Assim, o desenvolvedor tem bastante controle da forma como a mensagem se move pelo sistema ao invés do administrador do broker.

Outro benefício do RabbitMQ é ser cloud friendly. Podendo ser implementado em ambientes como AWS. Ainda assim, pode ser implementado no docker ou outro sistema de containers.

Além disso, o RabbitMQ pode ser clusterizado. Como trata-se de uma aplicação de sistema distribuído, existem vários benefícios, como: full tolerance, high available, high throughput e a clusterização.

O RabbitMQ ainda possui cross-language communication. Isso  significa dizer que a mensagem pode ser consumida por um servidor em javascript ou em python. Portanto, a operação do RabbitMQ independe da linguagem de aplicação.

Um produtor pode ter sua aplicação em uma linguagem diferente da aplicação do consumidor, ainda assim o sistema continua operante.

Outra característica atrativa do RabbitMQ está ligada à segurança. Possui suporte a protocolos de segurança como SSL, TLS (3° versão do SSL), de autenticação e autorização como LDAP.

Tutorial RabbitMQ:

Artigo 01: RabbitMQ #1 – O que são sistemas de mensageria?

Artigo 02: RabbitMQ #2 – RabbitMQ no docker-compose

Artigo 03: RabbitMQ DLX com Java Spring

Juliana Mascarenhas

Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer

Linkedin

Artigos relacionados

  • RabbitMQ #2 – RabbitMQ no docker-compose
  • Docker Instalação

Referências Bibliográficas 

Especificação do protocolo de comunicação AMQP 

Tanenbaum, Andrew S., and Steen V. Maarten. “Distributed Systems: Principles and Paradigms” Pearson – 2° edição. 

Sistemas Distribuídos: Princípios e Paradigmas

RabbitMQ Essentials (English Edition)

Simplificando Redes nas Redes Sociais

  • Instagram
  • YouTube
  • LinkedIn

Como Usar o Snap em Redes com Proxy (Linux)

6 de maio de 2025 Nenhum comentário

Neste post, você vai aprender a configurar o Snap para funcionar atrás de um proxy,…

Ler mais

Como Criar uma Rede com Switch no Packet Tracer: Passo a Passo para Iniciantes

24 de abril de 2025 Nenhum comentário

Neste tutorial prático, vou te mostrar como criar uma rede simples com switch utilizando o…

Ler mais

Por que usar o Kali Linux dentro do VirtualBox?

22 de março de 2025 Nenhum comentário

Neste artigo, veremos os principais motivos para considerar o uso do Kali Linux em um…

Ler mais

Como instalar pfblocker no pfsense: guia passo a passo

12 de março de 2025 Nenhum comentário

Hoje vamos aprender a instalar o pfBlockerNG no pfsense. O pfBlocker NG é uma excelente…

Ler mais

Crie sua Primeira Rede no Packet Tracer: Guia Passo a Passo para Iniciantes (2 Computadores)

7 de março de 2025 Nenhum comentário

Está pronto para dar o primeiro passo no mundo fascinante das redes de computadores? Neste…

Ler mais

Aprenda a usar o comando curl: tutorial com exemplos práticos

1 de março de 2025 Nenhum comentário

Hoje vamos aprender sobre o comando curl no Linux! Esse comando é uma ferramenta incrivelmente versátil…

Ler mais
← Post anterior
Post seguinte →

Posts relacionados

Instalando OpenWrt no VirtualBox

OpenWRT, Raspberry PI, Rede, VirtualBox, Virtualizacao

pfBlockerNG lista de bloqueio

pfBlockerNG, PfSense, Rede

Instalando Android no VirtualBox

Rede, VirtualBox, Virtualizacao

Instalar Raspbian VirtualBox

Rede, VirtualBox, Virtualizacao

Squid Proxy Instalação e Configuração.

Proxy, Rede, Servidores

PfBlockerNG lista de exceção IPs MACs

pfBlockerNG, PfSense, Rede, Segurança
  • Português
  • English
  • Blockchain_en (3)
  • Dados (10)
    • Banco de Dados (6)
    • Data Science (4)
  • Equipamentos (2)
  • Livros (2)
  • PfSense (9)
    • pfBlockerNG (3)
  • Programação (17)
    • Java (2)
    • Python (13)
  • Raspberry PI (6)
  • Rede (65)
    • Cloud (3)
    • OpenWRT (3)
    • PacketTracer (3)
    • Protocolos (13)
    • Proxy (6)
    • Servidores (10)
  • Segurança (20)
    • Suricata (3)
  • Virtualizacao (20)
    • Docker (6)
    • VirtualBox (14)
  • VPN (8)
  • Zabbix (5)
  • English

Últimos artigos

  • Como Usar o Snap em Redes com Proxy (Linux)
  • Como Criar uma Rede com Switch no Packet Tracer: Passo a Passo para Iniciantes
  • Por que usar o Kali Linux dentro do VirtualBox?
  • Como instalar pfblocker no pfsense: guia passo a passo
  • Crie sua Primeira Rede no Packet Tracer: Guia Passo a Passo para Iniciantes (2 Computadores)
  • Aprenda a usar o comando curl: tutorial com exemplos práticos
  • Instalando Kali Linux no VirtualBox: Guia Passo a Passo para Iniciantes
  • Gerenciadores de Pacotes em Python: Guia Completo sobre Pip e Conda para Iniciantes
  • O que é CGNAT ?
  • Tutorial: Como usar o WHOIS ou RDAP
  • Tutorial servidor de email com Postfix e Dovecot
  • Tutorial Instalar VNC em Linux Ubuntu
  • Tutorial: Instale seu Servidor DNS no Linux com Bind9 Passo a Passo
  • SSH: Como criar chave pública
  • Socket em Python criando chat UDP
  • Socket em Python, criando um Chat
  • Como usar apt get com proxy
  • Qual a melhor IDE para Python?
  • Python: como obter metadados de imagens e PDFs
  • Como usar o Ngrok ?
  • Português
  • English
  • Cookie Policy / Política de Cookies
  • Privacy Policy
  • About
We use cookies on our website remembering your preferences and visits. By clicking “Accept All”, you consent to the use of ALL the cookies. Visit " Settings" to provide a controlled consent./ Usamos cookies no site lembrando suas preferências e visitas. Clicando em “Aceitar todos”, você concorda com o uso de TODOS os cookies. visite "Configurações cookies" para um consentimento controlado.
Settings/ConfiguraçõesAccept All / Aceitar tudo
Manage consent / Gerenciar consentimento

Privacy Overview / Visão geral da privacidade

This website, uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience. **/** Este site usa cookies para melhorar a sua experiência enquanto navega pelo site. Destes, os cookies que são categorizados como necessários são armazenados no seu navegador, pois são essenciais para o funcionamento das funcionalidades básicas do site. Também usamos cookies de terceiros que nos ajudam a analisar e entender como você usa este site. Esses cookies serão armazenados em seu navegador apenas com o seu consentimento. Você também tem a opção de cancelar esses cookies. Porém, a desativação de alguns desses cookies pode afetar sua experiência de navegação.
Necessary
Sempre ativado
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously. ** / ** Os cookies necessários são absolutamente essenciais para o funcionamento adequado do site. Esses cookies garantem funcionalidades básicas e recursos de segurança do site, de forma anônima.
CookieDuraçãoDescrição
cookielawinfo-checkbox-advertisement1 yearSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .   ** / ** Definido pelo plugin GDPR Cookie Consent, este cookie é usado para registrar o consentimento do usuário para os cookies na categoria Publicidade = "Advertisement".
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". /   Este cookie é definido pelo plug-in GDPR Cookie Consent. O cookie é usado para armazenar o consentimento do usuário para os cookies na categoria "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".  / O cookie é definido pelo consentimento do cookie GDPR para registrar o consentimento do usuário para os cookies na categoria"Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".           /            Este cookie é definido pelo plug-in GDPR Cookie Consent. Os cookies são usados para armazenar o consentimento do usuário para os cookies na categoria "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other".  /    Este cookie é definido pelo plug-in GDPR Cookie Consent. O cookie é usado para armazenar o consentimento do usuário para os cookies na categoria "Other.".  
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".         /               Este cookie é definido pelo plug-in GDPR Cookie Consent. O cookie é usado para armazenar o consentimento do usuário para os cookies na categoria "Performance".
CookieLawInfoConsent1 yearRecords the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.        /              O cookie é definido pelo plug-in GDPR Cookie Consent e é usado para armazenar se o usuário consentiu ou não com o uso de cookies. Não armazena nenhum dado pessoal.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features. ** / ** Os cookies funcionais ajudam a realizar certas funcionalidades, como compartilhar o conteúdo do site em plataformas de mídia social, coletar feedbacks e outros recursos de terceiros.
CookieDuraçãoDescrição
pll_language1 yearThe pll _language cookie is used by Polylang to remember the language selected by the user when returning to the website, and also to get the language information when not available in another way.   ** / **  O cookie pll _language é utilizado pela Polylang para lembrar o idioma selecionado pelo usuário ao retornar ao site, e também para obter a informação do idioma quando não estiver disponível de outra forma.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors. ** / ** Os cookies de desempenho são usados para entender e analisar os principais índices de desempenho do site, o que ajuda a fornecer uma melhor experiência do usuário para os visitantes.
CookieDuraçãoDescrição
_tccl_visit30 minutesThis cookie is set by the web hosting provider GoDaddy. This is a persistent cookie used for monitoring the website usage performance.   ** / ** Este cookie é definido pelo provedor de hospedagem na web GoDaddy. Este é um cookie persistente usado para monitorar o desempenho de uso do site.
_tccl_visitor1 yearThis cookie is set by the web hosting provider GoDaddy. This is a persistent cookie used for monitoring the website usage performance.  ** / ** Este cookie é definido pelo provedor de hospedagem na web GoDaddy. Este é um cookie persistente usado para monitorar o desempenho de uso do site.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc. **/** Cookies analíticos são usados ​​para entender como os visitantes interagem com o site. Esses cookies ajudam a fornecer informações sobre as métricas do número de visitantes, taxa de rejeição, origem do tráfego, etc.
CookieDuraçãoDescrição
__gads1 year 24 daysThe __gads cookie, set by Google, is stored under DoubleClick domain and tracks the number of times users see an advert, measures the success of the campaign and calculates its revenue. This cookie can only be read from the domain they are set on and will not track any data while browsing through other sites. ** / ** O cookie __gads, definido pelo Google, é armazenado no domínio da DoubleClick e rastreia o número de vezes que os usuários veem um anúncio, mede o sucesso da campanha e calcula sua receita. Este cookie só pode ser lido no domínio em que está configurado e não rastreará nenhum dado durante a navegação em outros sites.
_ga2 yearsThe _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.    ** / **  O cookie _ga, instalado pelo Google Analytics, calcula os dados do visitante, da sessão e da campanha e também acompanha o uso do site para o relatório de análise do site. O cookie armazena informações anonimamente e atribui um número gerado aleatoriamente para reconhecer visitantes únicos.
_ga_4S4FKY1F7W2 yearsThis cookie is installed by Google Analytics.
_ga_8V3HHZY0KL2 yearsThis cookie is installed by Google Analytics.
_gat_gtag_UA_199766752_11 minuteSet by Google to distinguish users.  ** / ** Definido pelo Google para distinguir os usuários.
_gh_sesssessionGitHub sets this cookie for temporary application and framework state between pages like what step the user is on in a multiple step form.
_gid1 dayInstalled by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.  ** / ** Instalado pelo Google Analytics, o _gid cookie armazena informações sobre como os visitantes usam um site, ao mesmo tempo que cria um relatório analítico do desempenho do site. Alguns dos dados coletados incluem o número de visitantes, sua fonte e as páginas que visitam anonimamente.
CONSENT2 yearsYouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads. **/** Os cookies de publicidade são usados para fornecer aos visitantes anúncios e campanhas de marketing relevantes. Esses cookies rastreiam visitantes em sites e coletam informações para fornecer anúncios personalizados.
CookieDuraçãoDescrição
test_cookie15 minutesThe test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies. ** / ** O test_cookie é definido por doubleclick.net e é usado para determinar se o navegador do usuário oferece suporte a cookies.
VISITOR_INFO1_LIVE5 months 27 daysA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
YSCsessionYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
yt-remote-connected-devicesneverYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt-remote-device-idneverYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt.innertube::nextIdneverThis cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.
yt.innertube::requestsneverThis cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet. ** / ** Outros cookies não categorizados são aqueles que estão sendo analisados e ainda não foram classificados em uma categoria.
CookieDuraçãoDescrição
_octo1 yearNo description available.
DEVICE_INFO5 months 27 daysNo description
FCCDCF12 hoursNo description available.
GoogleAdServingTestsessionNo description ** / ** Sem descrição
logged_in1 yearNo description available.
SALVAR E ACEITAR
Desenvolvido por CookieYes Logo