当前位置: 首页 > 后端技术 > Node.js

在5分钟内构建Node.js微服务原型

时间:2023-04-03 18:10:50 Node.js

作者:SergeyKravchenko在Node.js中构建可扩展且功能强大的云应用程序的主流方法。还有一些进入障碍,其中一些要求您在以下方面做出决定:组织项目结构。将自定义服务连接到第三方服务(数据库、消息代理等)处理微服务之间共享的代码。容器化项目。在本地运行调试,然后部署到云端。SMF框架是一个开箱即用的解决方案:https://github.com/krawa76/smf让我们看看它如何帮助您在不编写任何代码的情况下创建和部署微服务原型。要创建项目安装框架,创建一个新项目并cd到项目目录:$npminstall-gsokyra-microservice-factory$smfnewtest-stack$cdtest-stack生成带有演示服务的样板代码并我们可以很容易地运行项目:$smfup这将生成Docker工件(docker-compose和环境变量文件),构建图像并在本地运行容器:如果你在编辑器中打开项目,你会看到一个自动的generateddemo服务生成了上面日志中的记录。其他重要文件是smf-stack.json(项目配置)、smf-env.json(容器环境变量)、commonDockerfile和smf-docker.yml(docker-compose):要停止项目,运行$smfdown添加一个新服务让我们添加一个可以通过消息代理发送和接收消息并将某些内容保存到数据库的服务:$smfaddserviceservice1选择RabbitMQ和MongoDB,然后输入“0”退出菜单:这是一个带有样板代码的新服务子文件夹将在主模块中创建:让我们再次运行该项目以查看其运行情况:$smfup现在我们有4个容器在运行:RabbitMQ、MongoDB、demo和service1。后者通过RabbitMQ发送和接收消息并将模拟数据保存到MongoDB:可以使用smfdown命令再次停止项目。我们可以类似地添加更多的服务,如果选择相同的消息代理服务,它们都将通过消息中心交换消息。部署将我们的项目部署到安装了Docker和Docker-Compose的远程服务器很容易。如果您还没有,请按照这些简单的说明在AmazonAWSEC2中创建它:https://github.com/krawa76/sm...还需要一个DockerHub帐户。如果丢失,可以在这里免费注册:https://hub.docker.com/在编辑器中打开smf-deploy.json文件并填写DockerHub登录名和密码、主机地址和远程计算机SSH凭据(ssh密钥路径)。运行以下命令部署项目:$smfdeploy当进程结束时,我们可以通过ssh连接到远程机器并查看那里运行的微服务:$ssh-i"/Users/me/.ssh/aws-key.pem"ubuntu@ec2-x-x-x-x.compute1.amazonaws.com$dockerps(提供服务列表)$dockerlogs-ftest-stack-service1(提供实时日志)我们现在在云中有一个容器化的微服务堆栈有效原型.下一步是什么?开始添加更多逻辑。由于每个服务都是一个单独的NPM包,我们可以cd进入服务文件夹,安装其他包,在main.ts模块中编写模式代码,添加新的JavaScript模块等:$cdservices/service1$npminstall...编码愉快!