Casa > Q > Qual É A Arquitetura Do Spotify?

Qual é a arquitetura do Spotify?

A arquitetura backend do Spotify é fortemente orientada para o serviço. O backend é composto por cerca de uma centena de serviços, a maioria deles bastante pequenos e simples. Os serviços são escritos em Python ou Java, com algumas exceções. Serviços
comunicar principalmente usando nosso próprio protocolo chamado Hermes, que é uma mensagem baseada e construída em ZeroMQ e Protobuf. Serviços mais antigos ainda usam cargas úteis HTTP e XML/JSON. O armazenamento é principalmente PostgreSQL, Cassandra ou vários índices estáticos. Este último é utilizado principalmente pelos vários serviços de conteúdo, por exemplo, para pesquisa ou metadados. Os arquivos de áudio são armazenados no Amazon S3 e armazenados em cache no nosso backend ou usando CDNs para baixa latência.

Os vários clientes mantêm uma conexão persistente com um serviço de backend chamado "accesspoint". Funciona basicamente como um roteador de mensagens em steroids, lidando com a comunicação com os serviços necessários. O protocolo entre os clientes e a
accesspoint é proprietário.

Clientes para desktop, celulares e nossa biblioteca embeddable, libspotify, todos compartilham uma base de código comum. Cada cliente então se baseia neste núcleo para fornecer interfaces de usuário e outras adoções específicas da plataforma. A base de código compartilhada é escrita em C++ e as adoções da plataforma nas línguas nativas da plataforma, por exemplo, ObjC no iOS. Além disso, muitas visualizações e aplicações no cliente desktop são agora implementadas como aplicações web, usando uma instância embutida de Chromium.

Audio é recuperado do cache local, peer-to-peer ou do nosso armazenamento. Nossa solução P2P foi descrita em detalhes em vários artigos por Gunnar Kreitz (papers).

Infrastructure é fortemente baseada em Debian e software de código aberto em geral.

De Edwyna

Como enraizar um Asus ZenFone 2 Laser ZE601KL Marshmallow 6.0.1 :: A raiz do rei não é apoio... O que devo fazer para enraizar o meu Android? O meu andróide é lava z62...