前后端项目是如何部署的
之前公司的前后端部署流程是这样的:
- 本地推送feature分支到远端gitlab。
- 在gitlab将feature分支merge到目标分支比如test分支(test分支上挂有任务)。
- merge完成后会触发任务,任务包括这几个阶段:
3.1 运行测试任务。
3.2 构建项目和编译目标代码。
3.3 将Dockerfile(镜像)以及编译出的代码推送到目标服务器。
3.4 在目标服务器上构建出Docker容器,启动Docker容器。
之前公司的前后端部署流程是这样的:
Node.js高并发方案
Kafka相比于RabbitMQ性能更好。
消息队列(MQ)可以让系统中不同部分的应用程序或者不同的微服务之间进行异步通信。
Node.js常用的MQ有RabbitMQ、Kafka、或Redis等。
微服务是一种软件架构风格,在这种架构中,应用程序被构建为一组小的、独立的服务,每个服务负责处理特定的业务功能。这些服务可以独立开发、部署和扩展,并通过轻量级的通信机制(通常是 HTTP API)进行互相通信。
Mongoose
是 Node.js的ODM库。
和Sequelize类似,Mongoose提供了node.js对于MongoDB进行操作的便利。
在 Node.js 项目中可以使用Sequelize
这个ORM
(对象关系映射)库来将项目中的 Model 和数据库表进行映射以及可以让我们可以使用 JavaScript 的对象和方法来操作数据库(CRUD),而不必编写原生 SQL 语句。
Node.js使用的是事件驱动模型。
可以通过EventEmitter
来实现事件的监听和触发,Node.js中其他的异步API也都是通过继承EventEmitter实现的。
服务器端路由是指:服务器端根据客户端请求的不同路径、http方法来执行不同的处理逻辑。
node启动的服务是一个进程的,且进程内只有一个线程,这样就只能使用一个核心的算力。
可以使用cluter创建多进程来利用多核心cpu。