1. Linux安装git
yum install git
git --version
git 常用基本命令
# Git 在线参考手册: http://gitref.justjavac.com
# 配置用户名
git config --global user.name "username"
# 配置邮箱
git config --global user.email "xx@gmail.com"
# 初始化生成一个本地仓库
git init
# 添加到暂存区
git add .
# 提交到本地仓库
git commit –m "message"
# 关联到远程仓库
git remote add origin url
# 推送本地 master 分支到远程 master 分支
git push origin master
# 创建一个开发分支并切换到新分支
git checkout -b dev
# 推送本地 dev 分支到远程 dev 分支
git push ogigin dev
# 从远程 dev 分支拉取到本地 dev 分支
git pull origin dev
# 将远程仓库克隆下载到本地
git clone url
# 克隆仓库后切换到 dev 分支
git checkout -b dev origin/dev
2. 服务器配备nodeJS ,升级Node.js的最好方法是使用NVM,这是一个管理多个Node.js版本的实用工具。
sudo apt update
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
wget -q0- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source ~/.bashrc
nvm --version
nvm install 16.17.0
nvm use 16.17.0
command -v nvm
nvm list-remote
nvm install 16.19.0
nvm use 16.19.0
npm i -g yarn
yarn build
yarn start
yarn global add pm2
pm2 start ./dist/index.js --name ${`程序名`} --watch
pm2 start ./dist/index.js --watch
pm2 kill
# npm 命令文档: https://docs.npmjs.com/cli-documentation/
# yarn 命令文档: https://classic.yarnpkg.com/en/docs
# 设置淘宝镜像
npm config set registry https:
yarn config set registry https:
# 初始化项目:
npm init -y
yarn init -y
# 下载项目的所有声明的依赖:
npm instal
yarn
# 下载指定的运行时依赖包:
yarn add webpack@3.2.1
npm install
# 下载指定的开发时依赖:
yarn add webpack@3.2.1 -D
npm install webpack@3.2.1 -D
# 全局下载指定包:
yarn global add webpack
npm install webpack -g
# 删除依赖包:
yarn remove webpack
npm remove webpack -S
yarn global remove webpack
npm remove webpack -g
# 运行项目中配置的 script:
yarn run xxx
npm run xxx
# 查看某个包的信息:
yarn info xxx
npm info xx
pm2 list
pm2 delete [appname] | id
pm2 delete all(关闭并删除应用)
pm2 describe app
pm2 monit(监控各个应用进程cpu和memory使用情况)
pm2 restart app.js
pm2 restart all
pm2 reload app.js
pm2 gracefulReload all
pm2 logs [Name]
pm2 logs [ID]
pm2 logs all
pm2 start app.js -i max
3. docker-compose使用方法(服务器已安装docker-compose)
cd /data
mkdir ${`文件夹名`}
cd ${`文件夹名`}
vim docker-compose.yml
docker-compose up -d
docker-compose down
docker-compose logs -f
安装MySQL
version: '3.1'
services:
mysql:
restart: always
image: mysql:5.7.22
container_name: outline_mysql
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- /usr/local/docker/mysql/conf:/etc/mysql
- /usr/local/docker/mysql/logs:/var/log/mysql
- /usr/local/docker/mysql/data:/var/lib/mysql
安装Postgresql
version: "3.9"
services:
postgres:
image: postgres:12-alpine
container_name: outline_postgres
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 123456
ports:
- 5432:5432
volumes:
- /data/postgresql/data:/var/lib/postgresql/data
注意事项:
1. 需要去腾讯云服务器开启防火墙端口:5432
2. 不能修改user,否则导入sql会报错,导出的sql里面有个owner属性,得改完才行
3. 执行完docker-compose后会在/data/postgresql/data路径下创建文件夹,不能手贱删rm掉
安装Redis
version: "3"
services:
redis:
image: redis
container_name: outline_redis
ports:
- "6379:6379"
user: "redis:redis"
安装RocketMQ
(1)在服务器中安装RocketMQ
前置条件:在/data路径下新建如下结构,具体内容如下
rocketmq
├── conf
│ └── borker.conf
├── logs
├── store
└── docker-compose.yml
$ vim borker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 159.75.103.206
autoCreateTopicEnable=true
version: '3'
services:
namesrv:
image: rocketmqinc/rocketmq
container_name: rmqnamesrv
ports:
- 9876:9876
volumes:
- /data/rocketmq/logs:/home/rocketmq/logs
- /data/rocketmq/store:/home/rocketmq/store
command: sh mqnamesrv
broker:
image: rocketmqinc/rocketmq
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
volumes:
- /data/rocketmq/logs:/home/rocketmq-4.4.0/logs
- /data/rocketmq/store:/home/rocketmq-4.4.0/store
- /data/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
command: sh mqbroker -n namesrv:9876 -c /opt/rocketmq-4.4.0/conf/broker.conf
depends_on:
- namesrv
environment:
- JAVA_HOME=/usr/lib/jvm/jre
console:
image: styletang/rocketmq-console-ng
container_name: rocketmq-console-ng
ports:
- 8087:8080
depends_on:
- namesrv
environment:
- JAVA_OPTS= -Dlogging.level.root=info -Drocketmq.namesrv.addr=rmqnamesrv:9876
- Dcom.rocketmq.sendMessageWithVIPChannel=false
每次拉镜像的时候会有Rocketmq版本会变,需要确保broker.conf能过映射到容器内,
比如上面的rocketmq-4.4.0文件夹可能会改名,导致容器启动失败,我们启动的时候需要检查一下。
docker exec -it {容器ID} /bin/bash
进入容器进行查看broker.conf的准确路径
(2) 访问RocketMQ(要确保连接上了broker)

(3)配置maven和环境
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-common</artifactId>
<version>4.5.1</version>
</dependency>
rocketmq.nameServer=159.75.103.206:9876
rocketmq.producer.group=default
@RestController
public class Producer{
@Resource
private RocketMQTemplate rocketMQTemplate;
@GetMapping("/sendMessage")
public void sendMessage() {
rocketMQTemplate.convertAndSend("test_topic", "dwa");
}
}
@Component
@RocketMQMessageListener(
topic = "test_topic",
consumerGroup = "consumer",
selectorExpression = "*")
public class Consumer implements RocketMQListener<String> {
private final static Logger logger = LogManager.getLogger(Consumer.class);
@Override
public void onMessage(String message) {
logger.info("消费者接收到的消息是: {}", message);
}
}
(4) RocketMQ实现Redis功能
RocketMQ是一个分布式消息系统,可以用于在分布式系统之间传递消息。Redis是一个开源的内存数据存储系统,
提供了丰富的数据结构和在线事务处理功能。
尽管RocketMQ和Redis都是用于在分布式系统之间传递数据的工具,但它们的工作方式和功能略有不同。
RocketMQ主要用于消息传递,而Redis则提供了一种快速读写数据的方法。
如果您想在RocketMQ中实现Redis的功能,可以使用RocketMQ的消息过滤功能来实现。
您可以在生产者端使用过滤器筛选出需要发送的消息,然后在消费者端使用过滤器再次筛选出需要处理的消息。
这样,您就可以在RocketMQ中模拟Redis的功能。
但是,请注意,RocketMQ和Redis有许多不同之处。如果您需要使用Redis的功能,
最好直接使用Redis,而不是尝试在RocketMQ中模拟Redis。
version: '3'
services:
namesrv:
image: rocketmqinc/rocketmq:4.7.2-alpine
command: mqnamesrv
container_name: rmqnamesrv
ports:
- "9876:9876"
volumes:
- $PWD/logs:/root/logs
environment:
- JAVA_OPT=-Xms256m -Xmx256m
broker:
image: rocketmqinc/rocketmq:4.7.2-alpine
command: mqbroker -c /etc/rocketmq/broker.conf
container_name: rmqbroker
ports:
- "10909:10909"
- "10911:10911"
volumes:
- $PWD/logs:/root/logs
- $PWD/store:/root/store
environment:
- JAVA_OPT=-Xms1g -Xmx1g
links:
- namesrv:namesrv
producer:
image: rocketmqinc/rocketmq-console-ng:4.7.2-alpine
command: mqconsole-producer
container_name: rmqconsole-producer
ports:
- "8080:8080"
links:
- namesrv:namesrv
consumer:
image: rocketmqinc/rocketmq-console-ng:4.7.2-alpine
command: mqconsole-consumer
container_name: rmqconsole-consumer
ports:
- "8080:8080"
links:
- namesrv:namesrv
安装kafka
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "test:1:1"
depends_on:
- zookeeper