从单体应用到微服务:构建电商系统的实践指南
1. Seneca 服务的优势与劣势
Seneca 框架编写的服务易于理解,代码以插件形式编写,可在不同机器上的不同 Seneca 实例中使用。其透明传输机制,能让我们快速将单体应用的部分功能重新部署和扩展为微服务,具有以下优点:
- 易于测试 :对电子邮件功能的更改仅影响邮件发送,新版本易于测试。
- 易于扩展 :复制服务就像配置新服务器并将 Seneca 客户端指向它一样简单。
- 易于维护 :软件更易理解和修改。
然而,微服务并非没有问题,存在以下劣势:
- 操作开销 :可能会消耗使用微服务带来的好处,设计系统时需考虑自动化。
- 应用不统一 :不同团队对某些实践的看法可能不同,增加了团队间的隔离,不利于工程师沟通。
- 通信复杂性 :引入更大的通信复杂性,可能导致安全问题。
2. 拆分单体应用
假设公司营销部门要开展激进的电子邮件活动,可能会影响日常邮件发送。解决方案是将电子邮件服务(email.js)部署在多台机器上:
var seneca = require("seneca")().use("email");
seneca.listen({port: 1932, host: "new-email-service-ip"});
</
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



