author avatar

Roamverse · Lin

互联网后端开发工程师
总共 133 篇文章

http模块是Node.js官方提供的、用于创建Web服务器的模块。通过http模块提供的http.createServer()方法,就能像Web服务器一样对外提供Web资源服务。 在Node.js中无需使用第三方Web服务器软件,通过http模块就能模拟服务器软件,从而对外提供Web服务。 http模块主要用于搭建HTTP服务端和客户端,使用HTTP服务器或客户端功能必须调用http模块。在Node.js中使用Web服务的基本步骤如下: 导入http模块: 1const http = require('http') 创建Web服务器实例。 1const server = http.createServer() 为服务器实例绑定...

Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。 Node.js 几乎每一个 API 都是支持回调函数的。 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。 Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者时退出。每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数。 事件驱动程序 Node.js 使用事件驱动模型。在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数: 这套流程有点类似于观察者模式,事件相当于一个主题(Subject),而所有注册到这个事件上的...

使用fs模块,首先需要导入: 1const fs = require('fs') 读取文件 下方是一个通过fs.readFile()读取文件的示例: 1// 1. 导入fs模块,来操作文件 2const fs = require('fs') 3/** 4 * 2. 调用 fs.readFile() 方法读取文件 5 * - 参数1(必须):读取文件的存放路径 6 * - 参数2(可选):读取文件时采用的编码格式,默认指定utf8 7 * - 参数3(必须):回调函数,拿到读取失败(err)和成功的结果(dataStr) 8 */ 9fs.readFile('test.txt', 'utf-8', (err, dataStr) =>...

Node.js是一个基于Chrome V8引擎的JavaScript运行环境。 浏览器可以当作是JavaScript的前端运行环境;Node.js可以看作是JavaScript的后端运行环境。但是在Node.js中无法调用DOM和BOM等浏览器内置API。 Node.js的安装这里就不介绍了,推荐使用NVM来管理Node.js:NVM安装。 查看Node.js的版本: 1node -v 升级npm: 1sudo npm install npm -g NPM NPM(Node Package Manager)是 Node.js 的包管理工具,用于在 Node.js 环境中安装、管理和共享代码模块。NPM 是随同 Node.js 一起安...

Debian 安装 NVM NVM(Node Version Manager)是一个用于管理 Node.js 版本的工具。它允许你在同一台机器上同时安装和切换不同的 Node.js 版本,以便于在不同项目中使用特定的 Node.js 版本。 NVM 支持在 Linux、macOS、和 Windows 系统上使用,并且与不同的 Shell(如 Bash、Zsh)兼容。 在Debian上安装NVM的步骤如下(Ubuntu同理): 安装NVM之前,需要先安装依赖: 1sudo apt update 2sudo apt upgrade 3sudo apt install curl build-essential gnupg2 -y 下载并...

AMQP(Advanced Message Queuing Protocol)是用于在应用程序之间传递业务消息的开放标准。该协议与语言和平台无关,更符合微服务中独立性的要求。 RabbitMQ实现了AMQP协议。Spring AMQP是基于AMQP协议定义的一套API规范,提供了模板来发送和接收消息。包含两部分,其中spring-amqp是基础抽象,spring-rabbit是底层的默认实现。 Spring AMQP的依赖如下,其中包含了RabbitMQ的依赖: 1<!-- AMQP依赖,包含RabbitMQ --> 2<dependency> 3...

RabbitMQ官网:https://www.rabbitmq.com/。 官方文档:https://rabbitmq.com/documentation.html。 官方Demo:https://www.rabbitmq.com/getstarted.html。 部署 RabbitMQ 使用Docker来部署RabbitMQ只需要两个步骤: pull RabbitMQ镜像: 1docker pull rabbitmq:3-management RabbitMQ通过插件的方式提供了一个可视化界面。在RabbitMQ官方的镜像中,带management版本的就是集成了该可视化插件的镜像。 通过Docker官方的镜像源来pull...

微服务间通讯有两种方式: 同步通讯:实时响应。 异步通讯:不需要马上回复。 两种方式各有优劣,同步通讯可以立即得到响应,但是却不能跟多个服务同时通讯。异步通讯可以同时与多个服务通讯,但是往往响应会有所延迟。 同步通讯 Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题: 耦合度高:消费者与提供者之间存在直接的调用关系。在服务中每次加入新的需求,都要修改原来的代码。 性能下降:消费者需要等待提供者响应,如果调用链过长,响应时间等于每次调用的时间之和。 资源浪费:消费者在等待响应过程中,不能释放请求占用的资源,高并发场景下会极度浪费系统资源。 级联失败:如果提供者出现问题,所有消费者都会跟着出问题。如同多米话骨牌一...

介绍 Docker Compose是一个文本文件,用于定义和运行多容器 Docker应用程序的工具。通过Compose,可以使用YML文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 Compose使用的三个步骤: 使用Dockerfile定义应用程序的环境。 使用docker-compose.yml定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 最后,执行docker-compose up命令来启动并运行整个应用程序。 docker-compose.yml的配置案例如下: 1version: "3.8" 2 services: 3 mysql: 4 image:...

常见的镜像在Docker Hub就能找到,但是要部署自己的服务可能需要自己构建镜像。构建镜像可以使用Dockerfile。Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 以MySQL镜像的组成结构为例: 镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。构建镜像,其实就是实现上述打包的过程。 语法 构建自定义的镜像时,并不需要一个个文件去拷贝,打包。我们只需要告诉Docker,镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要...