前言:
在2012年,在一家日本的小公司工作,主要负责了面向一款面向企业用户的聊天类APP的服务器和客户端的设计开发。app画面和功能主要参照的是日本当时刚火起来的Line,服务器用的是Http,当时觉得自己做的东西特别土,一直在想Line或者微信的架构是什么样的。过去了好几年,当时开发的这款APP也已经成为这家公司的主打产品了。2015年的日本杂志也推出一个连载,大概介绍了Line的服务器架构。竟然发现很多原理是一样的,感觉到大道至简,殊途同归,http并不落后,关键在于如何完善和使用。
于是想把这篇文件的主要部分转译过来,当作对自己曾经工作过认真思考过的一段过程的一个纪念,和一次再学习再提升。
LINE的服务端架构
LINE主要是聊天服务,除了聊天消息处理外,也提供了一些其他的服务。
如图 1.其中Talk Server是聊天消息服务的核心程序。除此之外,也有比如用作语音通信的VOIP服务,时间轴服务,这些都是独立的服务,通过API来协同工作。
聊天服务的架构
前端服务器和后端服务器
客户端通过负载平衡服务器跟前端和后端服务器通信。前端服务器实际为后端的代理服务器(reverse proxy),后端服务器即为实际的Talk服务器,构成和一般的Web服务是相同的。前端服务器为自己开发的LEGY。LEGY和Talk服务器在后章介绍。
存储
主要