Pergunta

Eu realmente estou perguntando isso por procuração, outra equipe de trabalho teve um pedido de alteração de nosso cliente.

O problema é que o nosso cliente não deseja de seus colaboradores, para fazer o login com um usuário mais de um ao mesmo tempo.Que eles estão ficando bloqueada e o compartilhamento de logins.

Uma vez que este está em um web farm, qual seria a melhor maneira de lidar com este problema?

Não o cache do banco de dados causar problemas de desempenho?

Foi útil?

Solução

Você poderia olhar para usar um cache distribuído do sistema como o memcached

Isso resolveria esse problema muito bem (é MUITO mais rápido do que um banco de dados), e também é excelente para a cache de praticamente qualquer coisa muito

Outras dicas

É apenas um custo de fazer negócios.

Sim, o cache para um banco de dados é mais lenta do que em cache no seu servidor.Mas você tem para armazenar informações de estado em um local centralizado, caso contrário, um servidor web não vai saber o que os usuários estão conectados no outro.

Suposição:Você está tentando evitar que vários concorrentes de log-ins por um único usuário.

Uma operação de banco de dados de login e logout não causar um problema de desempenho.

  • Se você estiver usando um proxy de cache, que vai causar um problema:
  • um usuário entrar, mas não ser capaz de fazer logon até que o logout atinge o cache

O seu maior problema em potencial pode ser:

  • se o aplicativo/caixa de falhas, sem a chance de o usuário sair da sessão, o estado do usuário no banco de dados permanecerá "conectado".

Depende de como a autenticação é feita.Se você armazenar o último início de sessão com êxito datetime (qualquer que seja o back-end), então talvez você pode alterar o esquema para armazenar um sinalizador "logged_in" e que não envolvem um rendimento extra custo.(ok, não é limpo)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top