Une vision de la pile serveur de king.com

King.com, ce sont les jeux en Flash sur FesseBouc, et les publicités à la télévision pour installer la Saga Brise Bonbon (Candy Crush Saga) sur votre mobaïle. De temps en temps, on peut avoir un aperçu de ce qui se passe côté serveur pour gérer la machinerie.

com.king.core.InternalException: DB error com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
	at com.king.core.db.DataStoreImpl.handleSQLException(DataStoreImpl.java:322)
	at com.king.core.db.DataStoreImpl.setData(DataStoreImpl.java:140)
	at com.king.core.db.DataStoreImpl.setData(DataStoreImpl.java:121)
	at com.king.core.db.JsonStoreImpl.set(JsonStoreImpl.java:134)
	at com.king.core.db.JsonStoreImpl.set(JsonStoreImpl.java:40)
	at com.king.platform.user.UserJsonStoreImpl.set(UserJsonStoreImpl.java:86)
	at com.king.platform.user.UserJsonStoreImpl.set(UserJsonStoreImpl.java:55)
	at com.king.platform.user.SignInDataManagerImpl.saveSignInData(SignInDataManagerImpl.java:82)
	at com.king.platform.user.SignInDataManagerImpl.updateSignInData(SignInDataManagerImpl.java:105)
	at com.king.platform.user.CoreUserManagerImpl.signInExistingUser(CoreUserManagerImpl.java:62)
	at com.king.platform.facebook.FacebookManagerImpl.signIn(FacebookManagerImpl.java:62)
	at com.king.platform.facebook.FacebookSessionManagerImpl.initFacebookUserSession(FacebookSessionManagerImpl.java:139)
	at com.king.platform.facebook.FacebookSessionManagerImpl.initFacebookUserSession(FacebookSessionManagerImpl.java:111)
	at com.king.platform.facebook.FacebookHttpEntrypointImpl.enter(FacebookHttpEntrypointImpl.java:146)
	at com.king.apps.bubblewitch.BubbleWitchFacebookServlet.service(BubbleWitchFacebookServlet.java:65)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336)
	at com.king.platform.session.PlatformServletFilter.doFilter(PlatformServletFilter.java:111)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
	at com.king.platform.jetty.AddCloseHeaderFilter.doFilter(AddCloseHeaderFilter.java:16)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)

Jetty pour le "serveur d'application", MySQL pour la base de données, avec stockage direct en JSON (peut-être). Les Impl partout font craindre qu'il y ait une forêt d'interfaces inutiles de maintenue, sinon c'est assez propre comme pile d'appel, pas de Spring, pas de proxys : sans doute des gens qui savent coder.

Commentaires

1. Le mercredi 31 juillet 2013, 08:07 par Bouilloire

C'est bon, on peut continuer à jouer l'esprit en paix alors :)

La discussion continue ailleurs

URL de rétrolien : http://www.cynicalturtle.net/kame/trackback/1539

Fil des commentaires de ce billet