/TemplateServer

a Template Server with RabbitMQ RPC

Primary LanguageJavaScriptApache License 2.0Apache-2.0

TemplateServer

a Template Server with RabbitMQ RPC

为了分担Web服务器的部分压力,故而将模板解析部分独立出来,做出一个基于RPC的模板渲染服务。

模板本身需要存在服务器上,RPC调用者通过传输模板名称以及渲染数据来获得

当前版本的服务由两部分组成:

  • RPC服务
  • 模板加载及渲染

###RPC服务 RPC服务是基于RabbitMQ的,采用了topic模式,使得调用者无需关心有几台模板服务器,它们的queue是什么。

接口约定: rpc请求数据以json格式描述,以buffer的形式传输。 json格式如下: {name: String, data: Object}

其中name是模板的文件名,例如我有一模板路径为/var/www/temp/首页.jade,它的name就是“首页”。

###模板加载及渲染 在服务启动的时候,程序会扫描指定的目录,将读取特定后缀名的文件(如.jade文件),并用相应的模板引擎去编译模板,并将编译的结果存放在对象中。

当RPC服务接受到渲染请求的时候,程序会从对象缓存中取得相应的模板函数。由于节省了编译的时间,渲染的时间得到了大幅的缩短。

###未来可能要做的事

  1. 支持更多的模板类型

  2. 数据读取:也许根据具体业务需求,需要从数据库中取数据,届时就需要更改接口,以及将整体业务的实现改成同步串行,而不是现在这样使用回调。

  3. 集群:说不定会用到集群,这样RPC Server的配置就要根据具体环境动态调整