2016-03-18 2 views
-2

J'ai un ensemble d'API écrit en JERSEY, et tout fonctionne bien. Maintenant, disons que l'API doit être consommée par des millions de personnes avec un cas de test de 10 millions de requêtes sur un URI par seconde. Alors, comment puis-je accélérer les performances globales et réduire la latence de mon API. traiterai code comme exemple pour la plupart de mes APIAugmenter la vitesse de repos api

@GET 
    @Path("/path/{id}") 
    public Response getUserData(@PathParam("id")final long id){ 
     chechAuthencticationAndAuthorization(); 
     Userdetails userDetails = dbDao.getUserDetailsFromId(id); 
     return Response.status(200).entity(userDetails).build(); 
    } 

comment la base de données puis-je accélérer la lecture et écrit et sur tous les temps de Reponse à l'échelle jusqu'à des millions de requêtes par seconde.

+1

La manière dont vous accélérez ces opérations dépend de ce que vous faites, mais il est probable que vous aurez besoin de plusieurs serveurs pour prendre en charge ce nombre de requêtes REST par seconde. Je verrais combien un seul serveur peut gérer, et développer une solution de sorte que si vous avez N fois plus de serveurs, vous obtenez N fois le débit. –

Répondre

1

déjà répondu

ici Want to develop website like Facebook - handles millions of requests - high performance

et What needs to be done to develop highly scalable web application in Java?

Comme les réponses ci-dessus sur le point que vous pouvez utiliser un serveur d'applications Java EE telles que JBoss pour utiliser les annotations RolesAllowed et SecurityDomain. Ou vous pouvez utiliser un ServletFilter, de toute façon c'est une bonne idée de séparer l'authentification et l'autorisation. Les techniques d'accès à la base de données, la mise en cache, la technologie de base de données (SQL, NoSQL, etc.) et la bibliothèque de persistance Java (JDBC, Hibernate, MongoDriver, etc.) peuvent avoir un impact énorme sur performance.