因为我数据库是用leveldb,不是mongodb这类型带服务的,而是类似sqlite这样的。 而昨天出现了一个问题,我在重启pm2后,2个副数据库崩了,就是数据损坏,无法访问了! 所以我考虑用某些方法来独立运行leveldb在一个进程,而逻辑业务层通过某种方法来访问数据层。 更新的时候,只要pm2重启业务层即可;也可先停止业务层,等一会,再重启数据层,这样数据层的读写应该完成了,就不会那么容易出问题。
昨晚痛定思痛,在坛子里问了,先想到的是rpc通讯,也查到了tj的axon,但是感觉都是回调,要对原有的程序进行比较大的调整。 后来想到,何不直接用expressjs来做一个数据层dal,例如绑定在127.0.0.1:1024,开放restful来访问。 原有的expressjs的www逻辑层,例如绑定在127.0.0.1:3000,直接访问dal的restful来做CRUD即可。 直接的,用request库或者mzabriskie/axios,直接yield rest dal层,就完成了。 原有的www程序改动不大,只是把从原来的一些具体的数据操作变成了网络访问,也是基于promise的,基本上co yield上就没有多少改变。
可行吗?求吐槽。
搜一下micro service架构吧
@ravenwang 是node的吗?求问
@klausgao 相信自己,你想到的可能已经是很厉害的东西了,只是缺少细节
@captainblue2013 哈哈希望如此