关于服务的一些想法

这次说的是58的Gaea服务,据说是SCF的开源版本。

Gaea是支持跨平台具有高并发、高性能、高可靠性,并提供异步、多协议、事件驱动的中间层服务框架。相对于其它重量级的中间件,比如淘宝的dubbo,Gaea只做一件事,因此没有过多的项目依赖。目前来看是比较符合我们单工程架构的服务要求的,性能上足够了。

Github地址:https://github.com/58code/Gaea
对于想初步了解服务架构的同学可以多看看,里面提供的demo简单实用。客户端的编写和服务端的调用都蛮清晰的,流畅用起来是没有问题的。

但是工作中发现了一些问题:

  1. 单服务可能因为服务主机内存不足容易被清理掉。因为我们目前的单Gaea服务器上还有别的许多程序在跑,半个月左右就容易内存不足导致Gaea宕掉,当然可以写脚本周期性监控内存,有问题发邮件出来并自动清理内存然后自动重启Gaea服务,但是这样未免太弱鸡,好的方法是进行分布式部署,把Gaea服务放在多台主机上,调用时实现类似fail-over机制,达到高可用效果。
  2. 后面有时间可以重构为使用Dubbo,实现真正的分布式服务。