Tuesday 22 October 2019

Akka trading system


O modelo do ator fornece um nível mais elevado da abstração para escrever sistemas concurrentes e distribuídos. Alivia o colaborador de ter que tratar do fechamento explícito e da gerência da linha, tornando mais fáceis escrever sistemas concurrentes e paralelos corretos. Papel por Carl Hewitt mas popularized pela língua de Erlang, e usado por exemplo em Ericsson com grande sucesso construir sistemas de telecomunicações altamente concomitantes e de confiança. Distribuído por Default. Everything dentro é projetado trabalhar em um ajuste distribuído todas as interações dos atores usam Puramente passagem de mensagem e tudo é assíncrono. Este esforço foi realizado para garantir que todas as funções estão disponíveis igualmente quando executado em um único processo ou em um cluster de centenas de máquinas A chave para habilitar isso é ir de remoto para local por meio de Otimização em vez de tentar ir do local ao remoto por meio da generalização. Veja este documento clássico para uma Scussion sobre por que a segunda abordagem é obrigado a falhar. Supervision monitoring. Actors formam uma árvore com atores sendo pais para os atores que eles criaram. Como pai, o ator é responsável por lidar com as falhas de seus filhos chamada supervisão, formando um Quando um ator falha, seu pai pode reiniciá-lo ou interrompê-lo ou escalar o fracasso até a hierarquia de atores. Isso permite um conjunto limpo de semânticas para gerenciar falhas em um sistema distribuído e concorrente. Permite a escrita de sistemas altamente tolerantes a falhas que auto-heal. Let s imaginar um hipotético HFT sistema em Java, exigindo muito baixa latência, com lotes de curta duração pequenos objetos um pouco devido à imutabilidade Scala, milhares de conexões por segundo e Um número obsceno de mensagens passando em torno de uma arquitetura orientada a eventos akka e amqp. Para os especialistas lá fora, o que seria hipoteticamente a melhor afinação para JVM 7 Que tipo de código faria feliz Será Scala e Akka estão prontos para este tipo de sistemas. Nota Houve algumas perguntas semelhantes, como esta, mas eu ainda tenho que encontrar uma cobertura Scala que tem sua própria pegada idiossincrática na JVM. asked Mar 30 12 às 23 15.It É possível alcançar um desempenho muito bom em Java No entanto, a questão precisa ser mais específico para fornecer uma resposta credível Suas principais fontes de latência virão de seguir lista não exaustiva. Quanto lixo você cria eo trabalho do GC para coletar e Promovê-lo Projetos imutáveis ​​em minha experiência não se encaixam bem com baixa latência GC ajuste precisa ser um foco grande. Warm até a JVM para que as classes são carregadas e JIT teve tempo para fazer o seu work. Design seus algoritmos para ser O 1 ou pelo menos O log2 n, e têm testes de desempenho que afirmam this. Your design precisa ser lock-free e seguir o Princípio Single Writer. Um esforço significativo deve ser colocado em compreender a pilha inteira e mostrando simpatia mecânica em seu uso. Desenhar seus algoritmos E as estruturas de dados para ser cache amigável Cache falha estes dias são o maior custo Isso está intimamente relacionado com a afinidade do processo que, se não configurado corretamente pode resultar e significativa poluição de cache Isso vai envolver simpatia para o sistema operacional e até mesmo alguns JNI código em alguns casos. Certifique-se de que você tem núcleos suficientes para que qualquer segmento que precisa ser executado tem um núcleo disponível sem ter que esperar. Eu bloguei recentemente sobre um estudo de caso de tal exercício. Você pode achar que o uso de um buffer de anel para a passagem de mensagens vai superar o que pode Ser feito com Akka A aplicação de buffer de anel principal que as pessoas usam na JVM para aplicações financeiras é um chamado Disruptor que é cuidadosamente ajustado para eficiência de dois tamanhos, para a JVM sem GC, sem bloqueios e para CPUs modernas não falso compartilhamento de cache Line. Here é uma apresentação de introdução a partir de um ponto de vista Scala e há links no último slide para o LMAX original stuff. answered Jul 3 12 at 3 52. Muito interessante Obrigado por compartilhar Hugo Sere No Ferreira Jul 10 12 at 19 20.Sua Resposta.2017 Stack Exchange, Inc. Scala Backtesting Estrutura de negociação ao vivo construído em cima de Akka Spray. What é bom para. Esta estrutura pode ser útil para pessoas que vêm do fundo Scala que estão fazendo Suas primeiras etapas na parte traseira vivem testando estratégias negociando automatizadas que usam a API REST de Oanda, que é na minha opinião uma das melhores APIs varejistas disponíveis Desde que este é trabalho no progresso, se você é um entusiasta de Scala e está interessado na negociação automatizada, tem um Olhar e sentir livre para fork repo e contribuir. Just clonar o repo e solte a sua lógica de negociação em Don t esquecer de modificar para incluir sua própria conta ID e token de acesso para Oanda s REST API. Note Se você está simplesmente procurando uma maneira de Conectar-se a Oanda REST API usando Scala Akka, confira meu projeto Scalanda. Você não pode executar essa ação neste momento. Você fez login com outra guia ou janela Recarregar para atualizar sua sessão Você efetuou login em outra guia ou janela Recarregar para atualizar sua sessão.

No comments:

Post a Comment