quinta-feira, 15 de novembro de 2012

Arquitetura de um Solo de Bateria e a Base das Coisas

Estava assistindo a um solo de bateria de um cara que não conhecia e que me chamou muito a atenção (Ronald Bruner Jr amazing drum solo). O cara impressiona pela habilidade nas ghost notes (http://en.wikipedia.org/wiki/Ghost_note). Fiquei pensando na arquitetura do solo dele que tem sua base nas tercinas e ghost notes. Em cima dessa base, ele coloca uns componentes de explosão, velocidade, etc. numa boa medida -- um bom tempero: harmonioso, consistente, agradável.

Toda essa comparação entre a arquitetura do solo do Ronald Bruner Jr. e o principal assunto desse blog (Arquitetura de Sistemas), me lembrou de uma coisa que um amigo e ex-colega de trabalho me disse uma vez: "Se você quiser estudar para ter um diploma, faça Tecnologia da Informação, Administração de Banco de Dados, etc... esses cursos técnicos. Mas se você quiser realmente aprender, estude Matemática, Física, Filosofia. Elas são a base das coisas.".

Com toda essa conversa, gostaria de reforçar a ideia da frase desse meu amigo. Quanto mais ampla for sua base, mais você vai conseguir se aprofundar consistentemente em assuntos específicos. Preocupe-se menos com termos, técnicas novas e exóticas (as pontas) antes de fazer um bom exame da sua base. Quão sólida ela é? Bom, ninguém domina um assunto exaustivamente. Com isso, é sempre possível deixar seu conhecimento sobre determinada coisa mais largo e profundo.

Lembre-se de que uma base firme não vai deixar sua estrutura tombar.

Raiz de uma árvore
Raiz de uma árvore.

quinta-feira, 8 de novembro de 2012

RabbitMQ em Cluster

Para usar o MassTransit com o RabbitMQ apontando os Endpoints sempre para localhost (recomendado para desacoplamento de endereços), é necessário colocar o RabbitMQ em cluster em todas as máquinas onde os Endpoints estiverem.

É realmente muito fácil configurar um cluster com o RabbitMQ:



Um erro comum (nodedown) que ocorre na configuração do cluster se deve aos dois arquivos .erlang.cookie estarem com valores diferentes na mesma máquina. Esses arquivos estão em C:\Windows e C:\Users\<usuário> ou C:\Documents and Settings\<usuário>. Esse erro geralmente ocorre quando o RabbitMQ foi executado por outro usuário na mesma máquina.


Referências:

MSMQ Multicast - Múltiplas Interfaces de Rede

O MSMQ tem um problema quando tentamos receber mensagens enviadas como multicast em uma máquina com mais de uma placa de rede -- tanto a máquina receptora quanto a que envia as mensagens. O MSMQ escolhe aleatoriamente uma placa que pode não ser a placa correta para receber as mensagens multicast. Contudo, há uma maneira de contornar isso.



Insira uma chave REG_SZ em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\MulticastBindIP com o IP da sua placa de rede que se conecta com o serviço de enfileiramento de outras máquinas. A chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\BindInterfaceIP é para ambientes clusterizados.

Após ter adicionado a chave ou chaves, reinicie os serviços de enfileiramento para os novos parâmetros fazerem efeito:

C:\> net stop msmq
C:\> net start msmq

O serviço MSMQTriggers precisará ser reiniciado (automaticamente) também pois depende do MSMQ.


Referência: