delete unused

This commit is contained in:
macro
2019-11-30 21:33:03 +08:00
parent 71b16ab952
commit 940a75c929
5 changed files with 0 additions and 594 deletions

View File

@@ -1,238 +0,0 @@
# 如何在Docker容器中部署整套基于Spring Cloud的微服务架构
> 本文以`mall-swarm`项目为例主要介绍一个微服务架构的电商项目如何在Docker容器下部署涉及到大量系统组件的部署及多个Spring Cloud 微服务应用的部署基于CentOS7.6。
## 环境搭建
### 基础环境部署
> `mall-swarm`运行需要的系统组件如下Docker容器中安装这些组件的方法直接参考该文章即可[mall在Linux环境下的部署基于Docker容器](https://mp.weixin.qq.com/s/0fVMK107i5bBq8kGQqg8KA) 。
| 组件 | 版本号 |
| ------------- | ------ |
| JDK | 1.8 |
| Mysql | 5.7 |
| Redis | 3.2 |
| Elasticsearch | 6.4.0 |
| MongoDb | 3.2 |
| RabbitMq | 3.7.15 |
| Nginx | 1.10 |
### 镜像打包上传
> 一共8个应用服务需要打包成Docker镜像具体如何打包可以参考[使用Maven插件构建Docker镜像](https://mp.weixin.qq.com/s/q2KDzHbPkf3Q0EY8qYjYgw) 。
需要注意的是如果打包过程中遇到找不到`mall-common``mall-mbg``mall-security`的情况需要先按顺序将这些模块install到本地maven仓库再进行打包。
| 应用 | 版本号 |
| ------------- | ------ |
| mall-registry | 1.8 |
| mall-config | 5.7 |
| mall-monitor | 3.2 |
| mall-gateway | 6.4.0 |
| mall-admin | 3.2 |
| mall-portal | 3.7.15 |
| mall-search | 1.10 |
| mall-demo | 1.10 |
镜像打包上传完成后完整docker仓库镜像示意图
![](../resource/mall_swarm_linux_10.png)
## 应用部署
### 部署mall-registry
- 通过以下命令运行注册中心`mall-registry`
```bash
docker run -p 8001:8001 --name mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-registry/logs:/var/logs \
-d mall/mall-registry:1.0-SNAPSHOT
```
- 运行成功后通过访问该地址可以查看注册中心控制台http://192.168.6.132:8001/
### 部署mall-config
- 通过以下命令运行配置中心`mall-config`
```bash
docker run -p 8301:8301 --name mall-config \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-config/logs:/var/logs \
-d mall/mall-config:1.0-SNAPSHOT
```
- 运行成功后,通过访问该地址可以查看`mall-admin`在prod环境下的配置信息http://192.168.6.132:8301/master/admin-prod.yml
- 需要`注意`的是prod环境下从配置中心获取的是存储在git仓库中的配置如需更改需要将mall-config模块的配置文件application.yml中的git仓库配置改为你自己的。
```yaml
spring:
cloud:
config:
server:
git: #Git仓库存储
uri: https://gitee.com/macrozheng/mall-config.git #改为你自己的配置
username: macro
password: 123456
clone-on-start: true
search-paths: '{application}'
```
### 部署mall-monitor
- 通过以下命令运行监控中心`mall-monitor`
```bash
docker run -p 8101:8101 --name mall-monitor \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-monitor/logs:/var/logs \
-d mall/mall-monitor:1.0-SNAPSHOT
```
- 运行完成后可以通过该地址查看监控中心信息,账号密码为`macro:123456`http://192.168.6.132:8101
### 部署mall-gateway
- 通过以下命令运行网关服务`mall-gateway`
```bash
docker run -p 8201:8201 --name mall-gateway \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-gateway/logs:/var/logs \
-d mall/mall-gateway:1.0-SNAPSHOT
```
- 运行完成后可以通过该地址查看动态路由规则http://192.168.6.132:8201/actuator/gateway/routes
### 部署mall-admin
- 通过以下命令运行后台服务`mall-admin`
```bash
docker run -p 8180:8180 --name mall-admin \
--link mysql:db \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-admin/logs:/var/logs \
-d mall/mall-admin:1.0-SNAPSHOT
```
- 通过`mall-gateway`网关服务访问接口文档http://192.168.6.132:8201/mall-admin/swagger-ui.html
### 部署mall-portal
- 通过以下命令运行前台服务`mall-portal`
```bash
docker run -p 8085:8085 --name mall-portal \
--link mysql:db \
--link redis:redis \
--link mongo:mongo \
--link rabbitmq:rabbit \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-portal/logs:/var/logs \
-d mall/mall-portal:1.0-SNAPSHOT
```
- 通过`mall-gateway`网关服务访问接口文档http://192.168.6.132:8201/mall-portal/swagger-ui.html
### 部署mall-search
- 通过以下命令运行搜索服务`mall-search`
```bash
docker run -p 8081:8081 --name mall-search \
--link mysql:db \
--link elasticsearch:es \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-search/logs:/var/logs \
-d mall/mall-search:1.0-SNAPSHOT
```
- 通过`mall-gateway`网关服务访问接口文档http://192.168.6.132:8201/mall-search/swagger-ui.html
### 部署mall-demo
- 通过以下命令运行测试服务`mall-demo`
```bash
docker run -p 8082:8082 --name mall-demo \
--link mysql:db \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-demo/logs:/var/logs \
-d mall/mall-demo:1.0-SNAPSHOT
```
- 通过`mall-gateway`网关服务访问接口文档http://192.168.6.132:8201/mall-demo/swagger-ui.html
## 运行完成效果展示
- 注册中心控制台信息:
![](../resource/mall_swarm_linux_07.png)
- 监控中心应用信息:
![](../resource/mall_swarm_linux_08.png)
![](../resource/mall_swarm_linux_09.png)
## 可视化管理工具
> Portainer 是一款轻量级的应用它提供了图形化界面用于方便的管理Docker环境包括单机环境和集群环境下面我们将用Portainer来管理Docker容器中的应用。
- 官网地址https://github.com/portainer/portainer
- 获取Docker镜像文件
```bash
docker pull portainer/portainer
```
- 使用docker容器运行Portainer
```bash
docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer
```
- 查看Portainer的DashBoard信息
![](../resource/mall_swarm_linux_01.png)
- 查看所有运行中的容器信息:
![](../resource/mall_swarm_linux_02.png)
- 查看所有已经下载的Docker镜像
![](../resource/mall_swarm_linux_03.png)
- 查看`mall-portal`应用的统计信息:
![](../resource/mall_swarm_linux_04.png)
- 查看`mall-portal`应用的运行过程中打印的日志信息:
![](../resource/mall_swarm_linux_05.png)
- 进入`mall-portal`应用的容器内部来操作容器内部系统:
![](../resource/mall_swarm_linux_06.png)

View File

@@ -1,98 +0,0 @@
# Docker入门手册
## Docker 镜像常用命令
### 搜索镜像
docker search java
### 下载镜像
- docker pull java:8
- docker pull macro/eureka-server:0.0.1
### 列出镜像
docker images
### 删除镜像
- docker rmi java
- docker rmi -f java
- docker rmi -f $(docker images)
## Docker 容器常用命令
### 新建并启动容器
docker run -d -p 91:80 nginx
### 列出容器
docker ps
### 停止容器
docker stop $ContainerId
### 强制停止容器
docker kill $ContainerId
### 启动已停止的容器
docker start $ContainerId
### 进入容器
- docker inspect --format "{{.State.Pid}}" $ContainerId
- nsenter --target "$pid" --mount --uts --ipc --net --pid
### 删除容器
- docker rm $ContainerId
- docker rm -f $(docker ps -a -q)
### 查看启动错误日志
docker logs $ContainerIdName(或者$ContainerId)
### 查看容器的IP地址172.17.0.*
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $ContainerId
### 同步宿主机时间到容器
docker cp /etc/localtime $ContainerName:/etc/
### 在宿主机查看docker使用cpu、内存、网络、io情况
- 查看指定容器情况docker stats $ContainerName
- 查看所有容器情况docker stats -a
### 进入docker内部的bash
docker exec -it $ContainerName /bin/bash
## Docker Registry
### Docker Registry 2.0搭建
docker run -d -p 5000:5000 --restart=always --name registry2 registry:2
### 推送到私有仓库
docker push localhost:5000/macro/eureka-server:0.0.1
### 修改镜像标签
docker tag macro/eureka-server:0.0.1 localhost:5000/macro/eureka-server:0.0.1
## 使用maven构建Docker镜像
### 构建镜像
- commandmvn clean package docker:build
- tip
Linux服务器需要开启远程api:vi /usr/lib/systemd/system/docker.service
修改为ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
### 推送镜像到私有仓库
- commandmvn clean package docker:build -DpushImage
- tip
pom.xml修改<imageName>192.168.1.71:5000/macro/${project.artifactId}:${project.version}</imageName>
- tip
docker要支持http:echo '{ "insecure-registries":["39.98.190.128:5000"] }' > /etc/docker/daemon.json
### 修改Docker镜像存放位置
1. 查看Docker的存放位置docker info | grep "Docker Root Dir"(默认为/var/lib/docker
2. 关闭Docker服务systemctl stop docker
3. 移动目录到目标路径mv /var/lib/docker /root/data/docker
4. 建立软连接ln -s /root/data/docker /var/lib/docker
## Docker compose
### 安装
1. 下载地址https://github.com/docker/compose/releases
2. 安装地址:/usr/local/bin/docker-compose
3. 设置为可执行sudo chmod +x /usr/local/bin/docker-compose
4. 测试是否安装成功docker-compose --version
### 安装命令补全工具
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.22.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
### 常用命令
- 构建、创建、启动相关容器docker-compose up
- 列出所有容器docker-compose ps
- 删除指定服务的容器docker-compose rm eureka
- 对容器进行动态扩容docker-compose scale eureka=3
- 停止相关容器docker-compose stop eureka
- 启动相关容器docker-compose start eureka
### 编排SpringCloud微服务
#### 所使用到的工程
- eureka-server
- hello-service
- feign-consumer
- api-gateway
#### 编排模式
1. 编排SpringCloud微服务见eureka-server/docker-res/docker-compose.yml
2. 简化SpringCloud微服务编排见eureka-server/docker-res/docker-compose-simple.yml
3. 编排高可用的注册中心见eureka-server/docker-res/docker-compose-eureka.yml

View File

@@ -1,148 +0,0 @@
# Linux常用命令
## 系统服务管理
### systemctl
- 启动服务systemctl start httpd.service
- 关闭服务systemctl stop httpd.service
- 重启服务不管是否在运行systemctl restart httpd.service
- 重新载入配置不中断服务systemctl reload httpd.service
- 查看运行状态systemctl status httpd.service
- 设置开机启动systemctl enable httpd.service
- 禁止开机启动systemctl disable httpd.service
- 查看系统安装的服务systemctl list-units --type=service
## 文件管理
### ls
列出/home目录下的子目录ls -l /home
列出当前文件夹下所有文件夹及文件大小ls -lht
### pwd
显示当前工作目录
### cd
切换目录: cd /usr/local
### date
以指定格式显示日期date '+date:%x time:%X'
### passwd
修改root密码passwd root
### su
普通用户切换到超级用户su -
### clear
清除屏幕信息
### man
查看ls命令的帮助信息man ls
### who
- 查看当前运行级别who -r
- 显示用的登录详情who -buT
### free
以MB显示内存使用状态free -m
### ps
查看系统所有进程ps -ef
查看运行的java进程 ps -ef | grep java
### top
查看系统当前活跃进程信息
### mkdir
创建目录
### more
分页查看
每10行显示一屏查看more -c -10
### cat
查看config文件cat -Ab config
### rm
- 删除文件rm a.txt
- 删除文件夹: rm -rf a/
### touch
创建一个文件touch a.txt
### cp
将目录a的文件拷贝到目录b: cp -r /home/a /home/b
### mv
移动或覆盖文件mv a.txt b.txt
## 压缩与解压
### tar
- 打包文件夹到单独的文件tar -cvf /opt/etc.tar /etc
- 压缩文件夹到压缩文件gziptar -zcvf /opt/etc.tar.gz /etc
- 压缩文件夹到压缩文件bzip2tar -jcvf /opt/etc.tar.bz2 /etc
- 查阅压缩包中内容gziptar -ztvf /opt/etc.tar.gz /etc
- 解压文件到当前目录gziptar -zxvf /opt/etc.tar.gz
## 磁盘和网络管理
### df
查看磁盘占用情况df -hT
### ifconfig
查看当前网络接口状态
### netstat
- 查看路由信息netstat -rn
- 查看所有有效TCP连接netstat -an
- 查看系统中启动的监听服务netstat -tulnp
- 查看处于连接状态的系统资源信息netstat -atunp
### wget
从网络上下载软件
## 软件的安装与管理
### rpm
- 安装软件包rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm
- 模糊搜索软件包rpm -qa | grep nginx
- 精确查找软件包rpm -qa nginx
- 查询软件包的安装路径rpm -ql nginx-1.12.2-2.el7.x86_64
- 查看软件包的概要信息rpm -qi nginx-1.12.2-2.el7.x86_64
- 验证软件包内容和安装文件是否一致rpm -V nginx-1.12.2-2.el7.x86_64
- 更新软件包rpm -Uvh nginx-1.12.2-2.el7.x86_64
- 删除软件包rpm -e nginx-1.12.2-2.el7.x86_64
### yum
- 安装软件包: yum install nginx
- 检查可以更新的软件包yum check-update
- 更新指定的软件包yum update nginx
- 在资源库中查找软件包信息yum info nginx*
- 列出已经安装的所有软件包yum info installed
- 列出软件包名称yum list redis*
- 模糊搜索软件包yum search redis
## 网络安全
### iptables
- 开启防火墙systemctl start iptables.service
- 关闭防火墙systemctl stop iptables.service
- 查看防火墙状态systemctl status iptables.service
- 设置开机启动systemctl enable iptables.service
- 禁用开机启动systemctl disable iptables.service
- 查看filter表的链信息iptables -L -n
- 查看NAT表的链信息iptables -t nat -L -n
- 清除防火墙所有规则iptables -F;iptables -X;iptables -Z;
- 添加过滤规则开发80端口iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- 查找规则所做行号iptables -L INPUT --line-numbers -n
- 根据行号删除过滤规则iptables -D INPUT 1

View File

@@ -1,78 +0,0 @@
# Mysql常用命令
## 数据定义语句(DDL)
### 数据库操作
- 登录数据库mysql -uroot -proot
- 创建数据库create database test
- 查看所有数据库show databases
- 使用数据库use test
- 查看所有数据表show tables
- 删除数据库drop database test
### 表操作
- 创建表create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2))
create table dept(deptno int(2),deptname varchar(10))
- 查看表的定义desc emp
- 查看表定义详细show create table emp \G
- 删除表drop table emp
- 修改表字段alter table emp modify ename varchar(20)
- 添加表字段alter table emp add column age int(3)
- 删除表字段alter table emp drop column age
- 字段改名alter table emp change age age1 int(4)
- 修改表名alter table emp rename emp1
## 数据操纵语句(DML)
### 插入记录
- 指定名称插入insert into emp (ename,hiredate,sal,deptno) values ('zhangsan','2018-01-01','2000',1)
- 不指定名称插入insert into emp values ('lisi','2018-01-01','2000',1)
- 批量插入数据insert into dept values(1,'dept1'),(2,'dept2')
### 修改记录
update emp set sal='4000',deptno=2 where ename='zhangsan'
### 删除记录
delete from emp where ename='zhangsan'
### 查询记录
- 查询所有记录select * from emp
- 查询不重复的记录select distinct deptno from emp
- 条件查询select * from emp where deptno=1 and sal<3000
- 排序和限制select * from emp order by deptno desc limit 2
- 聚合(查询部门人数大于1的部门编号)select deptno,count(1) from emp group by deptno having count(1) > 1
- 连接查询select * from emp e left join dept d on e.deptno=d.deptno
- 子查询select * from emp where deptno in (select deptno from dept)
- 记录联合select deptno from emp union select deptno from dept
## 数据控制语句(DCL)
- 授予操作权限grant select,insert on test.* to 'test'@'localhost' identified by '123'
- 收回操作权限revoke insert on test.* from 'test'@'localhost'
## 其他
### 字符集相关
- 查看字符集show variables like 'character%'
- 创建数据库时指定字符集create database mall character set utf8
### 修改时区
- 修改mysql全局时区为北京时间即我们所在的东8区set global time_zone = '+8:00';
- 修改当前会话时区set time_zone = '+8:00'
- 立即生效flush privileges
### 权限相关
- 授予所有数据库的所有权限grant all privileges on *.* to z1@localhost identified by '123'
- 授予所有数据库的所有权限(包括grant)grant all privileges on *.* to z1@localhost with grant option
- 授予SUPER PROCESS FILE权限grant super,process,file on *.* to z3@localhost
- 只授予登录权限grant usage on *.* to z4@localhost
- 查看账号权限show grants for z1@localhost
- 修改自己的密码set password = password('123')
- 管理员修改他人密码set password for 'z1'@'localhost' = password('123')
- 删除账号drop user z2@localhost

View File

@@ -1,32 +0,0 @@
# 设置IDEA快捷键为Eclipse风格
- 点击File->Settings->Keymap选择快捷键风格为Eclipse
- 按如下表格中的英文描述进行搜索,并改为相应快捷键
Eclipse | IDEA | 英文描述 | 中文描述
----|----|----|----
ctrl+shift+r |ctrl+shift+r |Navigate->File |找工作空间的文件
ctrl+shift+t |ctrl+shift+t |Navigate->Class |找类定义
ctrl+shift+g |ctrl+shift+g |Edit->Find->Find Usages |查找方法在哪里调用.变量在哪里被使用
ctrl+t |ctrl+t |Other->Hierarchy Class |看类继承结构
ctrl+o |ctrl+o |Navigate->File Structure |搜索一个类里面的方法
shift+alt+z |shift+alt+z |Code->Surround With |生成常见的代码块
shift+alt+l |shift+alt+l |Refactor->Extract->Variable |抽取变量
shift+alt+m |shift+alt+m |Refactor->Extract->Method |抽取方法
alt+left |alt+left |Navigate->Back |回退上一个操作位置
alt+right |alt+right |Navigate->Forward |前进上一个操作位置
ctrl+home |ctrl+home |Move Caret to Text Start |回到类最前面
ctrl+end |ctrl+end |Move Caret to Text End |回到类最后面
ctrl+2 L |shift+alt+l |Refactor->Extract->Variable |抽取变量
ctrl+e |alt+r |View->Recent Files |最近打开的文件
ctrl+w |ctrl+w |Close |关闭当前窗口
alt+/ |alt+/ |Code->Completion->Basic |提示变量生成
ctrl+1 |ctrl+1 |Other->Show Intention Actions |提示可能的操作
ctrl+h |ctrl+h |Find in Path |全局搜索
alt+上/下箭头 |alt+上/下箭头 |Code->Move Line Up/Down |移动一行代码
ctrl+alt+上/下箭头 |ctrl+alt+上/下箭头 |Editor Actions->Duplicate Lines |复制一行
ctrl+shift+j |ctrl+shift+j |Other->Fix doc comment |方法注释
暂无|alt+enter |Other->Show Intention Actions |提示常见操作
Ctrl+F |Ctrl+F/Ctrl+R |Find/Replace |查找替换
Shift+Enter |Shift+Enter |Start New Line |开启新的一行
Ctrl+Alt+S |Ctrl+Alt+S |Generate |生成getter,setter,tostring等