从前慢-各种工具的安装与卸载

各种工具的安装与卸载

在这里插入图片描述

前端

1 less

npm install -g less

2 node

配置环境变量
NODE_HOME= nodejs安装目录
PATH=xxxx;%NODE_HOME%
node_modules文件夹的问题
文件夹以及文件过多过碎,当我们将项目整体拷贝给别人的时候,,传输速度会很慢很慢. 
复杂的模块依赖关系需要被记录,确保模块的版本和当前保持一致,否则会导致当前项目运行报错。所以package.json就诞生了
package.json文件的作用
项目描述文件,记录了当前项目信息,例如项目名称、版本、作者、github地址、当前项目依赖了哪些第三方模块等。
使用npm init -y(这个选项就是yes的意思,没有这个选项,就要手动设置)命令生成。
当我们下载别人的文件时,一般没有 node_modules这个文件夹,项目就运行不起来,所以,我们需要使用npm install命令,
这个命令会自动找到package.json中,然后下载相应的依赖到node_modules.

3 npm

npm (node package manager) : node的第三方模块管理工具
下载:npm install 模块名称  # 默认在下载的目录下生成node_modules。
卸载:npm unintall package    # 模块名称

npm install --save 、--save-dev 、-D、-S 的区别
1、npm install <=> npm i

   --save   <=> -S     

   --save-dev  <=> -D 

npm run start <=> npm start  // 对应"scripts"里的"start"命令

2、npm i --save-dev  <packname>  

工程构建(开发时、“打包”时)依赖 ;例:xxx-cli , less-loader , babel-loader...

3、npm i --save <packname> 

项目(运行时、发布到生产环境时)依赖;例:antd , element,react...

在这里插入图片描述

5、使用 npm i 安装package.json里的依赖时,两部分的包都会pull下来
使用 --prod
npm i --prod <=> npm i --production  // 仅会拉取dependencies中的依赖


npm常规配置
命令
//设置淘宝源
npm config set registry https://registry.npm.taobao.org
//设置公司的源
npm config set registry http://127.0.0.1:4873
//查看源,可以看到设置过的所有的源
npm config get registry
通过使用cnpm安装
npm install -g cnpm --registry=https://registry.npm.taobao.org  # 这里的意思就是安装cnpm,并且registry=https://registry.npm.taobao.org
使用cnpm代替npm(因为npm下载慢)  cnpm install xxx

windows:
npm config set cache "E:\installation_program\nodeRepository\npm_cache"  # 设置安装模块的缓存
npm config set prefix "E:\installation_program\nodeRepository\npm_global"  # 设置全局模块的下载位置
注意:当你设置这个的时候,一定要设置相应的环境变量。比如
npm install -g @vue/cli   这里生成的vue命令在E:\installation_program\nodeRepository\npm_global目录下,必须配置环境变量才能识别到vue命令,否则找不到该命令

4 cnpm

有两个办法:

1、安装cnpm

命令:npm install cnpm -g --registry=https://registry.npm.taobao.org

以后就用 cnpm 代替 npm 做操作。从地址看出这是淘宝的国内镜像,比较快。据说每10分钟更新一次仓库,同步性也好


2、更改npm的绑定地址
命令:npm config set registry https://registry.npm.taobao.org
这样以后还是用npm,但已切换到淘宝镜像
更改后可通过下面命令来验证是否成功

npm config get registry

当然,想换回来也行,npm的原始仓库地址是 https://registry.npmjs.org/



2、更改npm的绑定地址
命令:npm config set registry https://registry.npm.taobao.org
这样以后还是用npm,但已切换到淘宝镜像
更改后可通过下面命令来验证是否成功

npm config get registry

当然,想换回来也行,npm的原始仓库地址是 https://registry.npmjs.org/

npm config list # 查看npm的配置信息

5 nodemon

nodemon是一个命令行工具,用以辅助项目开发。
在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐。
使用npm install -g  nodemon下载它
在命令行工具中用nodemon命令替代node命令执行文件

6 nrm

nrm ( npm registry manager ):npm下载地址切换工具
npm默认的下载地址在国外,国内下载速度慢
使用步骤
使用npm install nrm –g 下载它
查询可用下载地址列表 nrm ls
切换npm下载地址 nrm use 下载地址名称

7 Gulp

npm install gulp
基于node平台开发的前端构建工具
将机械化操作编写成任务, 想要执行机械化操作时执行一个命令行命令任务就能自动执行了.
用机器代替手工,提高开发效率。

8 Express

Express是一个基于Node平台的web应用开发框架,它提供了一系列的强大特性,帮助你创建各种Web应用。我们可以使用 npm install express 命令进行下载。
提供了方便简洁的路由定义方式
对获取HTTP请求参数进行了简化处理
对模板引擎支持程度高,方便渲染动态HTML页面
提供了中间件机制有效控制HTTP请求
拥有大量第三方中间件对功能进行扩展

9 express-art-template

为了使art-template模板引擎能够更好的和Express框架配合,模板引擎官方在原art-template模板引擎的基础上封装了express-art-template。

使用npm install art-template express-art-template命令进行安装。

10 vue-cli的卸载与安装(包括创建项目)

第一步:安装node环境
参看前面步骤即可
第二步:安装脚手架环境
安装
1.x或2.x
npm install vue-cli -g
3.x以上
npm install -g @vue/cli 
# OR
yarn global add @vue/cli

卸载vue-cli(1.x 或2.x)
npm uninstall vue-cli -g 或yarn global remove vue-cli 
卸载cli3
npm uninstall -g @vue/cli 或 yarn global remove @vue/cli

升级
如需升级全局的v Vue CLI 包,请运行:
npm update -g @vue/cli
# 或者
yarn global upgrade --latest @vue/cli


创建vue-cli2项目
vue init webpack 项目名称

创建vue-cli3项目
图形界面的方式创建项目
vue ui
通过命令行创建(主流方式)
vue create 项目名称


脚手架2启动方式
cd 项目
npm run dev
脚手架3启动方式
cd 项目
npm run serve

安装serve:npm install -g serve # 因为你最后直接给的是打包文件,交工之前直接测试一下,运行打包文件,查看项目是否完整
脚手架2打包
npm run build # 生成的是build文件
脚手架3打包
npm run build # 生成的是dist文件



npm install -g serve
脚手架2本机测试
serve build # 因为你最后直接给的是打包文件,交工之前直接测试一下,运行打包文件,查看项目是否完整
脚手架3本机测试
serve dist

11 Element-UI 的基本使用

脚手架2
1. 基于命令行方式手动安装
- 安装依赖包 npm i element-ui –S
- 导入 Element-UI 相关资源
 // 导入组件库
 import ElementUI from 'element-ui';
 // 导入组件相关样式
 import 'element-ui/lib/theme-chalk/index.css';
 // 配置 Vue 插件
 Vue.use(ElementUI);
2. 基于图形化界面自动安装
- 运行 vue ui 命令,打开图形化界面
- 通过 Vue 项目管理器,进入具体的项目配置面板
- 点击 插件 -> 添加插件,进入插件查询面板
- 搜索 vue-cli-plugin-element 并安装
- 配置插件,实现按需导入,从而减少打包后项目的体积

脚手架3
1 安装
npm i element-ui -S
2 引入
import ElementPlus from 'element-plus';
import 'element-plus/lib/theme-chalk/index.css';

createApp(App).use(ElementPlus).mount('#app')

12 在脚手架中使用axios

vue 2
# 1.安装axios
npm install --save axios vue-axios

# 2.配置main.js中引入axios
import axios from 'axios'
import VueAxios from 'vue-axios'


# 3.使用axios
Vue.use(VueAxios, axios)


# 使用axios
Vue.axios.get(api).then((response) => {
  console.log(response.data)
})

this.axios.get(api).then((response) => {
  console.log(response.data)
})

this.$http.get(api).then((response) => {
  console.log(response.data)
})


vue 3
import axios from 'axios'
import VueAxios from 'vue-axios'
createApp(App).use(VueAxios, axios).mount('#app')

使用
this.axios.get(api).then((response) => {
  console.log(response.data)
})

this.$http.get(api).then((response) => {
  console.log(response.data)
})

13 Vuex

Vue 2
1. 安装 vuex 依赖包
 npm install vuex --save
2. 导入 vuex 包
import Vuex from 'vuex'
Vue.use(Vuex)
3. 创建 store 对象
const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  }
})


现在,你可以通过 store.state 来获取状态对象,以及通过 store.commit 方法触发状态变更:
store.commit('increment')
console.log(store.state.count) // -> 1

4. 将 store 对象挂载到 vue 实例中
new Vue({
 el: '#app',
 render: h => h(app),
 router,
 // 将创建的共享数据对象,挂载到 Vue 实例中
 // 所有的组件,就可以直接从 store 中获取全局的数据了
 store
})

5 现在我们可以从组件的方法提交一个变更:
methods: {
  increment() {
    this.$store.commit('increment')
    console.log(this.$store.state.count)
  }
}

Vue3
npm install vuex@next --save
import { createStore } from 'vuex'
// 创建一个新的 store 实例
const store = createStore({
  state () {
    return {
      count: 0
    }
  },
  mutations: {
    increment (state) {
      state.count++
    }
  }
})

createApp(App).use(store).mount('#app')
现在,你可以通过 store.state 来获取状态对象,并通过 store.commit 方法触发状态变更:
store.commit('increment')

console.log(store.state.count) // -> 1

在 Vue 组件中, 可以通过 this.$store 访问store实例。现在我们可以从组件的方法提交一个变更:
methods: {
  increment() {
    this.$store.commit('increment')
    console.log(this.$store.state.count)
  }
}

14 TypeScript

1 命令行运行如下命令,全局安装 TypeScript:
npm install -g typescript

2 安装完成后,在控制台运行如下命令,检查安装是否成功:
tsc -V 

vscode自动编译
1) 生成配置文件tsconfig.json
    tsc --init
2) 修改tsconfig.json配置
    "outDir": "./js",
    "strict": false,    
3) 启动监视任务: 
    终端 -> 运行任务 -> 监视tsconfig.json

15 vite 创建Vue3

安装vue-cli到最新版本 (必须高于4.5.0)
npm init vite-app   <project-name>
cd  <project-name>
npm install 
npm run dev

16 webpack

全局安装webpack
npm install webpack -g

后端

1 docker

1 卸载原有 docker
sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine
                
2 安装docker
安装docker依赖
sudo yum install -y yum-utils
设置docker的yum源
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3 安装最新版的docker
sudo yum install docker-ce docker-ce-cli containerd.io

4 启动docker
sudo systemctl start docker
关闭docker
sudo systemctl stop docker

5 docker配置阿里云镜像加速(每个人都不一样,根据自己的来配置)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://r46nkja7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

6 验证docker的镜像加速是否生效  docker info
出现以下信息说明是正确的
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://r46nkja7.mirror.aliyuncs.com/
Live Restore Enabled: false
1.1 安装mysql
1 拉去mysql镜像
sudo docker pull mysql:8.0

2 启动mysql容器
# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
sudo docker run --name mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql:/etc/mysql/conf.d -v /usr/local/mysql/log:/var/log/mysql  -e MYSQL_ROOT_PASSWORD=root  -p 3306:3306 -d mysql:8.0

3 使用su - root(切换为root,这样就不用每次都sudo来赐予了)
su - root
4 进入mysql容器
docker exec -it 容器名称|容器id bin/bash
1.2 安装rabbitmq
1 安装
docker run -it -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management   # 以后端启动rabbitmq

2 访问
http://192.168.11.134:15672/  # 访问15672端口

3 默认账号密码为guest
1.3 安装redis
1 在docker hub搜索redis镜像
docker search redis

2 拉取redis镜像到本地
docker pull redis:6.0.10

3 修改需要自定义的配置(docker-redis默认没有配置文件,
自己在宿主机建立后挂载映射)
创建并修改/usr/local/redis/redis.conf
bind 0.0.0.0 开启远程权限
appendonly yes 开启aof持久化

4 启动redis服务运行容器
docker run --name redis  -v /usr/local/redis/data:/data  -v /usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 -d redis:6.0.10  redis-server /usr/local/etc/redis/redis.conf 

解释: -v /usr/local/redis/data:/data  # 将数据目录挂在到本地保证数据安全
 -v /root/redis/redis.conf:/usr/local/etc/redis/redis.conf   # 将配置文件挂在到本地修改方便
 
5  直接进去redis客户端。
docker exec -it redis redis-cli
1.3.1 redis主从复制
主从复制架构用来解决数据的冗余备份
拉取redis
docker pull redis

在各自宿主机建立各自的配置文件
redis-6377.conf 
port 6377
bind 0.0.0.0
appendonly yes

redis-6378.conf
port 6378
bind 0.0.0.0 
appendonly yes 
replicaof 192.168.11.148 6377 

redis-6379.conf
port 6379
bind 0.0.0.0 
appendonly yes 
replicaof 192.168.11.148 6377


docker run --name redis-6377  -v /usr/local/redis/data:/data  -v /usr/local/redis/conf/redis-6377.conf:/usr/local/etc/redis/redis-6377.conf -p 6377:6377 -d redis  redis-server /usr/local/etc/redis/redis-6377.conf
docker run --name redis-6378  -v /usr/local/redis/data:/data  -v /usr/local/redis/conf/redis-6378.conf:/usr/local/etc/redis/redis-6378.conf -p 6378:6378 -d redis  redis-server /usr/local/etc/redis/redis-6378.conf
docker run --name redis-6379  -v /usr/local/redis/data:/data  -v /usr/local/redis/conf/redis-6379.conf:/usr/local/etc/redis/redis-6379.conf -p 6379:6379 -d redis  redis-server /usr/local/etc/redis/redis-6379.conf

测试
docker exec -it redis-6377 redis-cli -p 6377
docker exec -it redis-6378 redis-cli -p 6378
docker exec -it redis-6379 redis-cli -p 6379
1.3.2 redis哨兵机制
Sentinel(哨兵)是Redis的高可用性解决方案:由一个或
多个Sentinel实例组成的Sentinel系统可以监视任意多个主服
务器,以及这些主服务器属下的所有从服务器,并在被监视的
主服务器进入下线状态时,自动将下线主服务器属下的某个从
服务器升级为新的主服务器。简单的说哨兵就是带有自动故障转
移功能的主从架构。
在各自宿主机建立各自的配置文件
sentinel-26377.conf
sentinel monitor mymaster 192.168.11.148 6377 2

sentinel-26378.conf 
sentinel monitor mymaster 192.168.11.148 6377 2

sentinel-26379.conf
sentinel monitor mymaster 192.168.11.148 6377 2


docker run --name sentinel-26377 -v /usr/local/redis/data:/data  -v /usr/local/redis/conf/sentinel-26377.conf:/usr/local/etc/redis/sentinel-26377.conf -p  26377:26377 -d redis  redis-sentinel /usr/local/etc/redis/sentinel-26377.conf
docker run --name sentinel-26378 -v /usr/local/redis/data:/data  -v /usr/local/redis/conf/sentinel-26378.conf:/usr/local/etc/redis/sentinel-26378.conf -p  26378:26378 -d redis  redis-sentinel /usr/local/etc/redis/sentinel-26378.conf
docker run --name sentinel-26379  -v /usr/local/redis/data:/data  -v /usr/local/redis/conf/sentinel-26379.conf:/usr/local/etc/redis/sentinel-26379.conf -p  26379:26379 -d redis  redis-sentinel /usr/local/etc/redis/sentinel-26379.conf

2 maven的安装

前往maven官网下载最新maven安装包,此处我们下载apache-maven-3.6.0-bin.zip

在这里插入图片描述

解压maven安装包至本地硬盘

在这里插入图片描述

右键“计算机”,选择“属性”,之后点击“高级系统设置”,点击“环境变量”,来设置环境变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MAVEN_HOME  变量值为解压路径;MAVEN_HOME变量值为解压路径;如我配置为:D:\apache-maven-3.6.0

在这里插入图片描述
在这里插入图片描述

在系统变量Path中添加变量值:;%MAVEN_HOME%\bin

在这里插入图片描述
在这里插入图片描述

用win键+R,来打开命令行提示符窗口,即Dos界面,输入mvn -version  若出现以下情况说明配置成功

在这里插入图片描述

下载慢配置本地仓库跟阿里云镜像
在settings.xml配置
<localRepository>D:\install\Repository</localRepository>

因为国外的服务器下载jar包很慢所以我们改为阿里云服务器,这两个仓库只用选一个(根据大家反馈建议使用第一个,第二个在有的版本可能会出现warning)
<!-- 阿里云仓库 -->
        <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>
     或者
      <mirror>
		<id>nexus-aliyun</id>
		<mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
	 </mirror>

最后配置jdk,也要夹在两个profiles标签之间(我这里使用的为jdk8)
<!-- java版本 --> 
<profile>
      <id>jdk-1.8</id>
      <activation>
	    <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>

      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
</profile>


配置完成,在命令行输入mvn help:system测试,看到下载链接里面是ailiyun的链接表示配置成功
IDEA下配置Maven

在这里插入图片描述
在这里插入图片描述

3 tomcat的安装

3.1 window
下载Tomcat

在这里插入图片描述

要根据自己的JDK版本选择Tomcat的版本。

在这里插入图片描述

配置环境变量
CATALINA_HOME (一定要这个名字,否则会错)
验证
catalina version
3.2 linux
# 0.下载tomcat
	http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.46/bin/apache-tomcat-8.5.46.tar.gz

# 1.通过工具上传到Linux系统中

# 2.解压缩到/usr目录中
	[root@localhost ~]# tar -zxvf apache-tomcat-8.5.46.tar.gz -C /usr/
	-C 用来指定解压缩的位置

# 3.查看解压内容
	[root@localhost apache-tomcat-8.5.46]# ls -l
    总用量 124
    drwxr-x---. 2 root root  4096 10月 13 12:27 bin
    -rw-r-----. 1 root root 19318 9月  17 02:19 BUILDING.txt
    drwx------. 2 root root   238 9月  17 02:19 conf
    -rw-r-----. 1 root root  5407 9月  17 02:19 CONTRIBUTING.md
    drwxr-x---. 2 root root  4096 10月 13 12:27 lib
    -rw-r-----. 1 root root 57011 9月  17 02:19 LICENSE
    drwxr-x---. 2 root root     6 9月  17 02:17 logs
    -rw-r-----. 1 root root  1726 9月  17 02:19 NOTICE
    -rw-r-----. 1 root root  3255 9月  17 02:19 README.md
    -rw-r-----. 1 root root  7139 9月  17 02:19 RELEASE-NOTES
    -rw-r-----. 1 root root 16262 9月  17 02:19 RUNNING.txt
    drwxr-x---. 2 root root    30 10月 13 12:27 temp
    drwxr-x---. 7 root root    81 9月  17 02:17 webapps
    drwxr-x---. 2 root root     6 9月  17 02:17 work

# 4.启动tomcat
	[root@localhost apache-tomcat-8.5.46]# ./bin/startup.sh 

# 5.关闭网络防火墙
	systemctl stop firewalld	   关闭网络防火墙
	systemctl disable firewalld  关闭开机自启动(永久关闭)

# 6.在windows中访问tomcat
	http://10.15.0.8:8080/

# 7.显示tomcat实时控制台信息
	进入tomcat的logs目录中使用tail -f catalina.out 命令实时查看控制台信息 

# 8.关闭tomcat
	在tomcat的bin目录下面使用 ./shutdown.sh

4 docker

4.1 卸载原有 docker
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
4.2 安装docker
安装docker依赖
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
设置docker的yum源
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
安装最新版的docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
指定版本安装docker
$ yum list docker-ce --showduplicates | sort -r
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
$ sudo yum install docker-ce-18.09.5-3.el7 docker-ce-cli-18.09.5-3.el7 containerd.io
启动docker
$ sudo systemctl start docker
关闭docker
$ sudo systemctl stop docker
测试docker安装
$ sudo docker run hello-world
Docker 配置阿里镜像加速服务

在这里插入图片描述

5 RabiitMQ

5.1 linux版
5.1.1 下载

在这里插入图片描述

5.1.2 下载的安装包

在这里插入图片描述

注意:这里的安装包是centos7安装的包
5.1.3 安装步骤
# 1.将rabbitmq安装包上传到linux系统中
erlang-23.3.4.4-1.el7.x86_64.rpm #l7表示是Centosl7,Centosl8表示Centos8
rabbitmq-server-3.8.18-1.el7.noarch.rpm

# 2.安装Erlang依赖包
	rpm -ivh erlang-23.3.4.4-1.el7.x86_64.rpm

# 3.安装RabbitMQ安装包(需要联网)
	yum install -y rabbitmq-server-3.8.18-1.el7.noarch.rpm

# 4.执行如下命令,启动rabbitmq中的插件管理
	rabbitmq-plugins enable rabbitmq_management
	
	出现如下说明:
		Enabling plugins on node rabbit@localhost:
    rabbitmq_management
    The following plugins have been configured:
      rabbitmq_management
      rabbitmq_management_agent
      rabbitmq_web_dispatch
    Applying plugin configuration to rabbit@localhost...
    The following plugins have been enabled:
      rabbitmq_management
      rabbitmq_management_agent
      rabbitmq_web_dispatch

    set 3 plugins.
    Offline change; changes will take effect at broker restart.

# 5.启动RabbitMQ的服务
	systemctl start rabbitmq-server
	systemctl restart rabbitmq-server
	systemctl stop rabbitmq-server
	

# 6.查看服务状态(见下图:)
	systemctl status rabbitmq-server
  ● rabbitmq-server.service - RabbitMQ broker
     Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
     Active: active (running) since 三 2019-09-25 22:26:35 CST; 7s ago
   Main PID: 2904 (beam.smp)
     Status: "Initialized"
     CGroup: /system.slice/rabbitmq-server.service
             ├─2904 /usr/lib64/erlang/erts-10.4.4/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -
             MBlmbcs...
             ├─3220 erl_child_setup 32768
             ├─3243 inet_gethost 4
             └─3244 inet_gethost 4
      .........

在这里插入图片描述

#7.关闭防火墙服务
	systemctl disable firewalld  # 需要关闭防火墙,否则访问不了
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
	systemctl stop firewalld   

# 8.访问web管理界面
	http://192.168.11.136:15672/

在这里插入图片描述

#  9.登录管理界面
	username:  guest
	password:  guest

在这里插入图片描述

解决办法:
rabbitmqctl add_user admin 123 # 账号admin,密码123
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"  # 设置权限
rabbitmqctl set_user_tags admin administrator  # 设置权限

然后输入账号admin,密码123,则可以成功访问

在这里插入图片描述

5.1.4 集群搭建
# 0 为了能正常访问,先把三台机器防火墙关了
# 1 集群规划
node1: 10.15.0.3  mq1  master 主节点
node2: 10.15.0.4  mq2  repl1  副本节点
node3: 10.15.0.5  mq3  repl2  副本节点
   
# 2 克隆三台机器主机名和ip映射
   	vim /etc/hosts加入:
   		10.15.0.3 mq1
       	10.15.0.4 mq2
       	10.15.0.5 mq3
# 3 修改主机名      	
   	node1: vim /etc/hostname 加入:  mq1
   	node2: vim /etc/hostname 加入:  mq2
   	node3: vim /etc/hostname 加入:  mq3
   
# 4 三个机器安装rabbitmq,并同步cookie文件,在node1上执行:
   	scp /var/lib/rabbitmq/.erlang.cookie root@mq2:/var/lib/rabbitmq/
   	scp /var/lib/rabbitmq/.erlang.cookie root@mq3:/var/lib/rabbitmq/
   
# 5 查看cookie是否一致:
   	node1: cat /var/lib/rabbitmq/.erlang.cookie 
   	node2: cat /var/lib/rabbitmq/.erlang.cookie 
   	node3: cat /var/lib/rabbitmq/.erlang.cookie 

# 6 启动node1服务:systemctl start rabbitmq-server
# 7 后台启动rabbitmq所有节点执行如下命令,启动成功访问管理界面:
   	rabbitmq-server -detached 
# 8 在node2和node3执行加入集群命令:
   	1.关闭       rabbitmqctl stop_app
   	2.加入集群    rabbitmqctl join_cluster rabbit@mq1
   	3.启动服务    rabbitmqctl start_app
   
# 9 查看集群状态,任意节点执行:
   	rabbitmqctl cluster_status
   
# 10 如果出现如下显示,集群搭建成功:

在这里插入图片描述

# 11.任意节点添加用户
rabbitmqctl add_user admin 123 # 账号admin,密码123
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"  # 设置权限
rabbitmqctl set_user_tags admin administrator  # 设置权限

# 12 登录管理界面
username:  admin
password:  123

在这里插入图片描述

5.1.5 镜像集群
需要在集群搭建的基础上搭建
# 0.策略说明
rabbitmqctl set_policy [-p <vhost>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern>  <definition>
-p Vhost: 可选参数,针对指定vhost下的queue进行设置
Name:     policy的名称
Pattern: queue的匹配模式(正则表达式)
Definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
ha-mode:指明镜像队列的模式,有效值为 all/exactly/nodes
all:表示在集群中所有的节点上进行镜像
exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定
ha-params:ha-mode模式需要用到的参数
ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
              priority:可选参数,policy的优先级
              
               
# 1.查看当前策略
rabbitmqctl list_policies

# 2.添加策略
rabbitmqctl set_policy ha-all '^hello' '{"ha-mode":"all","ha-sync-mode":"automatic"}' 
说明:策略正则表达式为 “^” 表示所有匹配所有队列名称  ^hello:匹配hello开头队列

# 3.删除策略
rabbitmqctl clear_policy ha-all

# 4.测试集群

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2 windows版

6 Jmeter

# 1.下载jmeter
https://jmeter.apache.org/download_jmeter.cgi
下载地址:https://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-5.2.1.tgz
# 2.解压缩
backups    ---用来对压力测试进行备份目录
bin        ---Jmeter核心执行脚本文件
docs	     ---官方文档和案例
extras     ---额外的扩展
lib        ---第三方依赖库
licenses   ---说明
printable_docs ---格式化文档

# 3.安装Jmeter
0.要求: 必须事先安装jdk环境
1.配置jmeter环境变量
export JMETER_HOME=/Users/yao/dev/apache-jmeter-5.2
export PATH=$SCALA_HOME/bin:$JAVA_HOME/bin:$GRADLE_HOME/bin:$PATH:$JMETER_HOME/bin
2.是配置生效
source  /etc/profile

7 lombok

在这里插入图片描述

7.1 引言
还记得刚刚接触java,学习面向对象时因为手写
get,set,hashcode,equals等方法的痛苦吗?
还记得后来上手了Eclipse|Idea这样工具可以快速生成get,set等
相关方法的兴奋吗? 好强大..
后来工作时间长了,这种兴奋渐渐就变成了的苦恼?

很重要一个原因就是因为随着项目业务模块功能不断扩展,项目
中涉及库表越来越多,导致项目中实体类(Entity)对象越来越多,
每次写Entity对象最头疼就是生成Get,SET等相关方法,极大影
响开发效率,如何更好的解决呢? lombok出现仿佛让我们回
到曾经的那种喜悦!!!
7.2 lombok是什么
Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,
Lombok提供了一组有用的注释(注解),用来消除Java类中的大
量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产
生干净,简洁且易于维护的Java类 ---百度百科

Project Lombok is a java library that automatically plugs 
into your editor and build tools, spicing up your java.
Never write another getter or equals method again, 
with one annotation your class has a fully featured
builder, Automate your logging variables, and much more. --摘自官网

通俗解释: lombok快速开发工具,提供了一组java相关注解,
通过注解用来更快速生成java对象中我们想要的相关
方法(get,set,toString ....)等一系列方法

7.3 lombok第一个环境
7.3.1 引入依赖
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.12</version>
  <scope>provided</scope>
</dependency>
7.3.2 使用提供注解
@Data
public class User {
    private String id;
    private String name;
    private Integer age;
    private Date bir;
}

@Data注解: 自动给对象提供 GET SET ToString hashCode equals 等方法
7.4 lombok的原理

在这里插入图片描述

7.5 lombok一组注解
7.5.1 @Data注解
@Data 用在类上  

用来生成对象中GET SET ToString HashCode equals等相关方法
具体用法
@Data
public class User {
    private String id;
    private String name;
    private Integer age;
    private Date bir;
}
7.5.2 @Getter and @Setter
用在类上
用来只生成对应GET SET方法
具体用法
  @Getter
  @Setter
  public class User {
      private String id;
      private String name;
      private Integer age;
      private Date bir;
  }
7.5.3 @ToString
用在类上
用来生成toString方法
7.5.4 @AllArgsConstructor And @NoArgsConstructor
用在类上

用来生成全部参数构造方法 和 无参数构造方法

具体用法
  @AllArgsConstructor
  @NoArgsConstructor
  public class User {
      private String id;
      private String name;
      private Integer age;
      private Date bir;
  }
7.5.5 @Accessors
用在类上

用来给类中set方法开启链式调用 chain属性: 
用来指定是否开启SET方法链式调用 true 开启 false  不开启

具体用法
@Data
@Accessors(chain = true)
public class User {
    private String id;
    private String name;
    private Integer age;
    private Date bir;
}
  user.setId("21").setName("xiaochen").setAge(23).setBir(new Date());
7.5.6 @Slf4j
用在类上

用来快速给类中定义一个日志变量

原理

在对应类上加入这个注解相当于在这个类中声明了一个日志对象
private Logger log = LoggerFactory.getLogger(this.getClass());
具体用法
@Controller
 @RequestMapping("user")
 @Slf4j
 public class UserController {
     @RequestMapping("findAll")
     public String findAll(){
         log.info("进入findAll方法");
         log.info("姓名:[{}],年龄:[{}]",name,age);
         return "index";
     }
 }
7.6 idea中如何安装lombok
注意:默认在idea中不支持lombok语法,写上之后没有任何效果,
需要在idea中额外安装插件才可以继续使用lombok
Preferences | Plugins --> 搜索lombok 下载安装 安装完成
重启idea即可

在这里插入图片描述

安装完成之后出现如下问题的解决方案:

在这里插入图片描述

解决方案:

在这里插入图片描述

8 jdk

1 下载并解压jdk1.8
tar  -zxvf  jdk-8u281-linux-x64.tar.gz
(检查本机有没有jdk有的话卸载掉。安装上自己的jdk)

2 配上环境变量
vim /etc/profile
# 添加一下两行代码
export JAVA_HOME=jdk的位置
export PATH=$PATH:$JAVA_HOME/bin

3 使配置生效
source  /etc/profile

9 git

# 配置用户名
git config --global user.name "username"  //(名字,随意写)

# 配置邮箱
git config --global user.email "55333@qq.com" // 注册账号时使用的邮箱

# 配置ssh免密登录
ssh-keygen -t rsa -C "55333@qq.com"

三次回车后生成了密钥,也可以查看密钥
cat ~/.ssh/id_rsa.pub


浏览器登录码云后,个人头像上点设置、然后点ssh公钥、随便填个标题,然后赋值
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6MWhGXSKdRxr1mGPZysDrcwABMTrxc8Va2IWZyIMMRHH9Qn/wy3PN2I9144UUqg65W0CDE/thxbOdn78MygFFsIG4j0wdT9sdjmSfzQikLHFsJ02yr58V6J2zwXcW9AhIlaGr+XIlGKDUy5mXb4OF+6UMXM6HKF7rY9FYh9wL6bun9f1jV4Ydlxftb/xtV8oQXXNJbI6OoqkogPKBYcNdWzMbjJdmbq2bSQugGaPVnHEqAD74Qgkw1G7SIDTXnY55gBlFPVzjLWUu74OWFCx4pFHH6LRZOCLlMaJ9haTwT2DB/sFzOG/Js+cEExx/arJ2rvvdmTMwlv/T+6xhrMS3 894548575@qq.com

# 测试
ssh -T git@gitee.com

# 测试成功
Hi unique_perfect! You've successfully authenticated, but GITEE.COM does not provide shell access.

10 nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

作为我们的注册中心和配置中心。
先了解一下 Spring Cloud 应用如何接入 Nacos Discovery。
1 首先,修改 common中的pom.xml 文件,引入 Nacos Discovery Starter。
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2 在应用的common中的application.yml 配置文件中配置 Nacos Server 地址和微服务名称
spring:
  application:
    name: gulimall-coupon
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.1.103:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.11.1:8848

mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  global-config:
    db-config:
      id-type: auto



server:
  port: 7000

3 我们要配置nacos服务器的地址,也就是注册中心地址,但是我们还没
有nacos服务器,所以我们需要启动nacos server创建nacos服务
器(软件官方可以下载)
启动命令windows:startup.cmd -m standalone

4 使用 @EnableDiscoveryClient 注解开启服务注册与发现功能
package com.yxj.gulimall.coupon;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@MapperScan("com.yxj.gulimall.coupon.dao")
@EnableDiscoveryClient
public class GulimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }

}

5 访问http://127.0.0.1:8848/nacos/  账号密码nacos
出现如下页面,则表示访问成功

11 redis

Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器
的host和port正确,就可以连接使用。这在安全性上会有一定的问题,
所以需要启用Redis的认证密码,增加Redis服务器的安全性。

1 修改配置文件
Redis的配置文件默认在/etc/redis.conf,找到如下行:

#requirepass foobared
去掉前面的注释,并修改为所需要的密码:

requirepass myPassword (其中myPassword就是要设置的密码)

2 重启Redis
如果Redis已经配置为service服务,可以通过以下方式重启:

service redis restart
如果Redis没有配置为service服务,可以通过以下方式重启:

/usr/local/bin/redis-cli shutdown
/usr/local/bin/redis-server /etc/redis.conf

3 登录验证
设置Redis认证密码后,客户端登录时需要使用-a参数输入认证密码,不
添加该参数虽然也可以登录成功,但是没有任何操作权限。如下:

$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
使用密码认证登录,并验证操作权限:

$ ./redis-cli -h 127.0.0.1 -p 6379 -a myPassword
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "myPassword"
看到类似上面的输出,说明Reids密码认证配置成功。

除了按上面的方式在登录时,使用-a参数输入登录密码外。
也可以不指定,在连接后进行验证:

$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth myPassword
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "myPassword"

4 Redis也可以通命令行客户端配置密码,这种配置方式不用重新启动Redis。配置方式如下:

127.0.0.1:6379> config set requirepass newPassword
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "newPassword"
注意:使用命令行客户端配置密码,重启Redis后仍然会使用redis.conf配置文件中的密码。

 

5 如果Redis服务器,使用了集群。除了在master中配置密码外,
也需要在slave中进行相应配置。在slave的配置文件中找到如下行,
去掉注释并修改与master相同的密码即可:

# masterauth master-password
11.1 主从复制
主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据

无法解决: 1.master节点出现故障的自动故障转移
1.准备3台机器并修改配置redis.conf
master
port 6377
bind 0.0.0.0
如果masterip 为 192.168.42.137,则slaveof masterip masterport 为 slaveof 192.168.42.137 6377
slave1
port 6378
bind 0.0.0.0
slaveof masterip masterport  (高版本 replicaof  masterip masterport )

slave2
port 6379
bind 0.0.0.0
slaveof masterip masterport (高版本 replicaof  masterip masterport )

在这里插入图片描述

2.启动3台机器进行测试
# 这里我把创建了data文件夹并把redis.conf放进了data文件夹中
./redis-server data/redis6377.conf
./redis-server data/redis6378.conf
./redis-server data/redis6379.conf
11.2 Redis哨兵机制
Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或
多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服
务器,以及这些主服务器属下的所有从服务器,并在被监视的
主服务器进入下线状态时,自动将下线主服务器属下的某个从
服务器升级为新的主服务器。简单的说哨兵就是带有自动故障转
移功能的主从架构。
这里我搭配了1主2从,3个哨兵
我把配置文件放在了conf文件夹下
redis6377.conf  redis6379.conf       sentinel-26378.conf  
redis6378.conf  sentinel-26377.conf  sentinel-26379.conf

下面列出的就是要改的地方
redis6377.conf  (主的配置文件)

bind 0.0.0.0  # 表示任何ip都可以连接,这个要开启来,否则远程连接不起作用
port 6377  # redis-server端口号
dir ./data  # 这个文件要自己创建,./表示命令所在的目录,比如redis-server这个命令所在目录为/usr/local/redis6377/bin。则./data表示/usr/local/redis6377/bin/data

redis6378.conf

bind 0.0.0.0
port 6378
replicaof 192.168.42.137 6377  # 主的IP地址加端口
dir ./data 

redis6379.conf  

bind 0.0.0.0
port 6379
replicaof 192.168.42.137 6377  # 主的IP地址加端口
dir ./data 


sentinel-26377.conf 
port 26377 # 哨兵启动端口
bind: 0.0.0.0 # 开启远程连接
daemonize no  # 是否以后台启动
dir  ./data
sentinel monitor mymaster 192.168.42.137 6377 2  #  mymaster可以随便命令,192.168.42.137 6377 表示主的主机加端口,2表示哨兵选举谁当master时的数量,一般为哨兵数量的一半加1。我这里哨兵为3.所以算出来的值为2,.当有两个及以上的sentinel服务检测到master宕机,才会去执行主从切换的功能。
sentinel down-after-milliseconds mymaster 30000  # 多长时间没响应算master挂了,这里为30s
sentinel parallel-syncs mymaster 1 # 选取新的master时,一次有多少个开始同步数据,值越小,服务器负担越小
sentinel failover-timeout mymaster 180000 # 同步数据的超时时间,这里为18s

sentinel-26378.conf  

port 26378
bind: 0.0.0.0 # 开启远程连接
daemonize no
pidfile /var/run/redis-sentinel.pid
logfile ""
dir ./data
sentinel monitor mymaster 192.168.42.137 6377 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

sentinel-26379.conf
port 26379

bind: 0.0.0.0 # 开启远程连接
daemonize no
pidfile /var/run/redis-sentinel.pid
logfile ""
dir ./data
sentinel monitor mymaster 192.168.42.137 6377 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

12 Linux 系统安装MySQL

12.1 下载Linux 安装包
https://dev.mysql.com/downloads/mysql/5.7.html#downloads

在这里插入图片描述

12.2 安装MySQL
1) 卸载 centos 中预安装的 mysql
	
	rpm -qa | grep -i mysql
	
	rpm -e mysql-libs-5.1.71-1.el6.x86_64 --nodeps
	
2) 上传 mysql 的安装包
	
	alt + p -------> put  E:/test/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar

3) 解压 mysql 的安装包 
	
	mkdir mysql
	
	tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /root/mysql
	
4) 安装依赖包 
	
	yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6 libncurses.so.5 --setopt=protected_multilib=false
	
	yum  update libstdc++-4.4.7-4.el6.x86_64
	
5) 安装 mysql-client
	
	rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm

6) 安装 mysql-server
	
	rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm	
12.3 启动 MySQL 服务
service mysql start

service mysql stop

service mysql status

service mysql restart
12.4 登录MySQL
mysql 安装完成之后, 会自动生成一个随机的密码, 并且保存在一个密码文件中 : /root/.mysql_secret

mysql -u root -p 

登录之后, 修改密码 :

set password = password('cqm');

授权远程访问 : 

grant all privileges on *.* to 'root' @'%' identified by 'cqm';
flush privileges;
12.5 MySQL主从复制

在这里插入图片描述

# 0.架构规划
	192.168.202.201    master  主节点
	192.168.202.202    slave   从节点

# 1.修改mysql的配置文件
	[root@localhost mysql]# vim /etc/my.cnf

# 2.分别在配置文件中加入如下配置

	mysql(master):
		server-id=1
		log-bin=mysql-bin
		log-slave-updates
		slave-skip-errors=all
	
	msyql(slave):
		server-id=2
		log-bin=mysql-bin
		log-slave-updates
		slave-skip-errors=all
		
		注意:两个机器的server-id不能一致

在这里插入图片描述

# 3.重启mysql服务
	systemctl restart mysqld

# 4.登录mysql执行如下命令检测配置是否生效
	SHOW VARIABLES like 'server_id';

在这里插入图片描述

# 5.登录master节点执行如下命令
		show master status;

在这里插入图片描述

# 6.登录从节点执行如下命令:
		change master to 
		master_host='10.15.0.9',
		master_user='root',
		master_password='root',
		master_log_file='mysql-bin.000001',
		master_log_pos=120;

在这里插入图片描述

# 7.开启从节点
		start slave; 
		stop  slave;

在这里插入图片描述

# 8.查看从节点状态
		show slave status\G;

		************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.15.0.9
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 120
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 283
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
   	
    注意:
    		1.出现 Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 说名成功,
    		2.如果在搭建过程出现错误,可以查看查看错误日志文件 cat /var/log/mysqld.log
 
# 9.通过客户端工具进行测试
	
# 10.关闭主从复制(在从节点执行)
	stop slave;

13 安装Mycat

# 1.下载mycat
	http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

# 2.解压mycat
	tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

在这里插入图片描述

# 3.查看解压之后目录]
	[root@localhost mycat]# ls
	总用量 12
	drwxr-xr-x. 2 root root  190 10月 14 22:58 bin
	drwxrwxrwx. 2 root root    6 3月   1 2016 catlet
	drwxrwxrwx. 4 root root 4096 10月 14 22:58 conf
	drwxr-xr-x. 2 root root 4096 10月 14 22:58 lib
	drwxrwxrwx. 2 root root    6 10月 28 2016 logs
	-rwxrwxrwx. 1 root root  217 10月 28 2016 version.txt

在这里插入图片描述

# 4.移动到/usr目录
	mv mycat/ /usr/

# 5.配置mycat中conf下的配置schema.xml

在这里插入图片描述

	<!-- 定义MyCat的逻辑库  -->   
    <schema name="test_schema" checkSQLschema="false" sqlMaxLimit="100" dataNode="testNode"></schema>
    <!-- 定义MyCat的数据节点 -->
    <dataNode name="testNode" dataHost="dtHost" database="test" />
   <dataHost name="dtHost" maxCon="1000" minCon="10" balance="1"
                writeType="0" dbType="mysql" dbDriver="native" switchType="-1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!--写节点-->
                <writeHost host="hostM1" url="192.168.28.128:3306" user="root"
                        password="root">
                  		<!--从节点-->
                			<readHost host="hostS1" url="192.168.28.129:3306" user="root" password="root" />
                </writeHost>
   </dataHost>
# 6.配置登陆mycat的权限server.xml

在这里插入图片描述

<system>
  <!-- 这里配置的都是一些系统属性,可以自己查看mycat文-->
  <property name="defaultSqlParser">druidparser</property>
  <property name="charset">utf8mb4</property>
</system>

<user name="root">
  <property name="password">root</property>
  <property name="schemas">test_schema</property>
</user>
# 7.启动mycat
	 ./mycat console

# 8.查看日志
	tail -f ../logs/mycat.log

# 9.数据库连接配置,测试

14 Nginx

# 0.安装必要依赖
	yum install -y gcc pcre-devel zlib-devel

# 1.下载Nginx
	http://nginx.org/en/download.html

# 2.将Nginx上传到linux中,并解压缩
	 tar -zxvf nginx-1.11.1.tar.gz


# 3.查看Nginx安装目录
	[root@localhost nginx-1.11.1]# ls
	auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

# 4.在Nginx安装目录中执行如下命令:(指定安装位置)
	./configure --prefix=/usr/nginx

# 5.执行上述命令后,执行如下命令:
	make && make install

# 6.编译完成后进入编译安装目录/usr/nginx目录中查看:
	[root@localhost nginx]# ls -l
	总用量 4
	drwxr-xr-x. 2 root root 4096 10月 14 21:17 conf
	drwxr-xr-x. 2 root root   40 10月 14 21:17 html
	drwxr-xr-x. 2 root root    6 10月 14 21:17 logs
	drwxr-xr-x. 2 root root   19 10月 14 21:17 sbin

# 7.启动nginx,进入nginx安装目录的sbin目录中执行:
	./nginx   

# 8.在windows中浏览器访问,可以看到nginx欢迎页面:
	http://10.15.0.8:80/
	
		注意:关闭网络防火墙

# 9.关闭nginx,进入nginx安装目录的sbin目录中执行:
	./nginx -s stop

# 10.nginx配置文件在nginx安装目录的conf目录中:
	[root@localhost conf]# ls -l
	总用量 60
	-rw-r--r--. 1 root root 2656 10月 14 21:17 nginx.conf
	.......
	注意:nginx.conf为nginx的配置文件,可以在nginx.conf修改nginx默认配置

15 maven私服

私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,
目的是代理远程仓库及部署第三方构建。有了私服之后,当 
Maven 需要下载构件时,直接请求私服,私服上存在则下载
到本地仓库;否则,私服请求外部的远程仓库,将构件下载到
私服,再提供给本地仓库下载。Nexus是一个强大的Maven仓
库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。

在这里插入图片描述

安装环境:

1 操作系统:Windows 10 /Windows 7

2 nexus版本:nexus-3.9.0-01-win64(Nexus 专业版是需要付
费的,这里我们下载开源免费版 Nexus OSS)

下载地址:https://www.sonatype.com/nexus-repository-oss

在这里插入图片描述

解压过后,进入/nexus-3.9.1-01/bin目录下,以管理员身份打开
命令行:nexus /install ,该命令将会将Nexus Repository注册成为Windows服务。
运行nexus  /start 启动私服
打开浏览器,输出localhost:8081,出现如下界面,安装成功。

补充:
nexus /install # 安装私服
nexus  /start # 启动私服
nexus  /uninstall # 卸载私服
nexus /stop # 停止私服

在这里插入图片描述

16 Zookeeper

16.1 Zookeeper安装
a)	下载zookeeper的安装包

在这里插入图片描述

b)	上传至linux系统中 并使用 tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz 解压缩
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
c)	解压缩zookeeper的tar包 重命名为zk便于操作,(可省略)
mv apache-zookeeper-3.6.2-bin zk
d)	修改zk的conf目录下的zoo_simple.cfg,修改完后,重命名为zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zkData  ----保存snapshot文件的路径
clientPort=2181

各项参数说明:
tickTime:配置单元时间。单元时间是ZooKeeper的时间计算单元,
其他的时间间隔都是使用tickTime的倍数来表示的。


initLimit:节点的初始化时间。该参数用于Follower(从节点)的启动,
并完成与Leader(主节点)进行数据同步的时间。Follower节点在启
动过程中,会与Leader节点建立连接并完成对数据的同步,从而确
定自己的起始状态。Leader节点允许Follower节点在initLimit时
间内完成这项工作。该参数默认值为10,表示是参数tickTime值的10倍。


syncLimit:心跳最大延迟周期。该参数用于配置Leader节点和
Follower节点之间进行心跳检测的最大延时时间。在ZK集群运
行的过程中,Leader节点会通过心跳检测来确定Follower节点是
否存活。如果Leader节点在syncLimit时间内无法获取到Follower
节点的心跳检测响应,那么Leader节点就会认为该Follower节点已
经脱离了和自己的同步。该参数默认值为5,表示是参数tickTime值
的5倍。


dataDir:是zookeeper持久化数据存放的目录。
myid文件处于此目录下。


dataLogDir:日志目录选项,如果没有设置该参数,
默认将使用和dataDir相同的设置。


clientPort:zookeeper监听客户端连接的端口,默认是2181。


e)	启动zk,在zk的bin目录下,运行zkServer.sh
./zkServer.sh start /usr/local/zookeeper/conf/zoo.cfg
ps: ./zkServer.sh help 可以查看服务器端所有可以执行的指令

补充: 
# 启动服务端
$ bin/zkServer.sh start

# 查看状态
$ bin/zkServer.sh status

# 停止
$ bin/zkServer.sh stop

# 重启
$ bin/zkServer.sh restart
f)	使用jps查看启动是否成功
46193 QuorumPeerMain # 表示成功
g)	启动客户端连接到zk
./zkCli.sh -server 192.168.0.220:2181
ps:  可以通过 ./zkCli.sh help 查看客户端所有可以执行的指令
16.2 Zookeeper集群搭建
1、在每台机器zookeeper/conf目录下创建三个zk配置文件,
为 zoo.cfg(可以将zookeeper里面的zoo_sample.cfg改为zoo.cfg,zookeeper
会按这个文件进行启动)
各个内容为(每个文件都是这个内容):
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/zkdata
clientPort=2181
server.1=192.168.42.129:2888:3888
server.2=192.168.42.130:2888:3888
server.3=192.168.42.131:2888:3888
server.4=192.168.42.132:2888:3888
server.5=192.168.42.133:2888:3888


2、在每台机器上创建数据存放的目录,存放的路径为
dataDir=/usr/local/zookeeper/zkdata(跟你上面写的内容一样)

3、分别在每台机器上(dataDir=/usr/local/zookeeper/zkdata)
创建myid文件myid的内容分别是
server.1=192.168.42.129:2888:3888中的数字1,
server.2=192.168.42.130:2888:3888中的数字2,
server.3=192.168.42.131:2888:3888中的数字3,
server.4=192.168.42.132:2888:3888中的数字4,
server.5=192.168.42.133:2888:3888中的数字5


ps: server.X :x为服务器的唯一标识。
192.168.42.129:服务器所在的ip地址
2888:数据同步使用的端口号
3888:选举使用的端口号

4、分别启动各个zk服务器(进入zookeeper的bin目录)
./zkServer.sh  start  /usr/local/zookeeper/conf/zoo.cfg (这里可以省略 /usr/local/zookeeper/conf/zoo.cfg)

5、查看各个zk服务器的角色信息(进入zookeeper的bin目录)
./zkServer.sh  status /usr/local/zookeeper/conf/zoo.cfg  (这里可以省略 /usr/local/zookeeper/conf/zoo.cfg)

6、客户端连接任意zk服务器进行节点操作(进入zookeeper的bin目录)
./zkCli.sh  -server  192.168.42.129:2181(ip地址加端口)(连接本机则./zkCli.sh也行)

7.停止zk服务器(进入zookeeper的bin目录)
./zkServer.sh stop  ./usr/local/zookeeper/conf/zoo.cfg  (这里可以省略 /usr/local/zookeeper/conf/zoo.cfg)
想要获取该该课程markdown笔记(脑图+笔记)。可以扫描以下
微信公众号二维码。或者搜索微信公众号-Java大世界。回复
工具即可获取笔记获取方式。

在这里插入图片描述

根据引用中提供的信息,谷粒商城是一个B2C模式的电商平台,主要销售自营商品给客户。B2C模式指的是商对客的模式,即商家直接向消费者销售商品和服务。谷粒商城使用微服务架构,这是一种将应用程序拆分成独立且可独立开发、部署和扩展的小型服务的架构。引用还提到谷粒商城的技术涵盖微服务架构、分布式、全栈、集群、部署和自动化运维等方面。 因此,从前-谷粒商城篇章6主要讨论的可能是谷粒商城的技术方面,包括微服务架构、分布式、全栈、集群、部署和自动化运维等内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [从前-谷粒商城篇章1](https://blog.csdn.net/m0_67391121/article/details/125383572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [2020年谷粒商城md笔记](https://download.csdn.net/download/ZHUXIUQINGIT/12543161)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

unique_perfect

您的支持是我创造的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值