Node.js微服务实践(一) (3)

微服务与 SOA 之间的另一个不同之处是服务互联和编写服务时所使用的技术。而另一方面,微服务推崇执行的标准(例如 HTTP)却是人民广泛了解并共同使用的。我们可以通过选择合适的语言或者工作来构建某个组件(微服务),进而获得 技术多样性 提到的关键好处。

除了技术栈和服务规模之外,在SOA于微服务之间还有一个更大的区别:领域模型。在一个机遇微服务的软件中,每个微服务应该在本地存储自身管理数据,并将领域模型分别隔离到单个服务中。而在面向SOA的软件中,数据往往存储在单个大型的数据库中,服务之间会共享领域模型。

为什么选择 Node.js

Node.js 是一门新型技术栈,对于很多人而言,它仅仅只是一个趋势,离作为解决问题的实际工具还欠点火候。

让我们来看重点看看 Node.js 。 Node.js 是用来构建面向微服务的架构的绝佳选择,原因如下:

学习门槛低(如果想要精通还是有一定门槛的)

易于扩展

对测试友好

易于部署

可以通过 npm 进行依赖管理

有着大量与主流标准协议相集成的库

API 聚合

API 聚合是一项用于将不同功能(插件、方法等)组合成一个接口的高级技术。例子:

const express = require(\'express\'); const app = express(); app.get(\'/sayhello\', function (req, res) { res.send(\'Hello World!\'); }); app.get(\'/saygoodbye\', function(req, res) { res.send(\'Bye bye!\'); } const server = app.listen(3000, function () { let host = server.address().address; let port = server.address().port; console.log(\'Example app listening at %s:%s\', host, port); });

前面的例子使用了 Express, 这是一个在Node.js技术栈中广为流行的 Web 框架。该框架同样也是围绕API聚合来构建的。

让我们来看下 第四行和第七行。在这些代码里,开发者注册了两个方法。当某人以 GET 请求的方式分别请求 URL:/sayhello 和 /saygoodbye 时,这两个对应的方法将被执行。在该例子中,该接口就是一个在3000端口上监听的app。

小结

在本文中你了解一些面向微服务的架构的关键好处,比如可以为相应的服务选择合适的语言(语言多样性);以及一些可能会加重我们负担的误区,比如如何有面向微服务的架构分布式特性而带来的运维方面开销。

最后,我们讨论了 Node.js 是用来构建微服务的强大工具,以及如何通过利用像 API 聚合这样的技术来从 JavaScript 获益,从而构建出高质量的软件组件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsxdw.html