diff --git a/document/reference/deploy_linux.md b/document/reference/deploy_linux.md deleted file mode 100644 index 6c91d8d..0000000 --- a/document/reference/deploy_linux.md +++ /dev/null @@ -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) - - - - - diff --git a/document/reference/docker.md b/document/reference/docker.md deleted file mode 100644 index fe425c4..0000000 --- a/document/reference/docker.md +++ /dev/null @@ -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镜像 -### 构建镜像 -- command:mvn 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 -### 推送镜像到私有仓库 -- command:mvn clean package docker:build -DpushImage -- tip: - pom.xml修改192.168.1.71:5000/macro/${project.artifactId}:${project.version} -- 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 \ No newline at end of file diff --git a/document/reference/linux.md b/document/reference/linux.md deleted file mode 100644 index 651aa5c..0000000 --- a/document/reference/linux.md +++ /dev/null @@ -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 -- 压缩文件夹到压缩文件(gzip):tar -zcvf /opt/etc.tar.gz /etc -- 压缩文件夹到压缩文件(bzip2):tar -jcvf /opt/etc.tar.bz2 /etc -- 查阅压缩包中内容(gzip):tar -ztvf /opt/etc.tar.gz /etc -- 解压文件到当前目录(gzip):tar -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 - - - diff --git a/document/reference/mysql.md b/document/reference/mysql.md deleted file mode 100644 index ccb076a..0000000 --- a/document/reference/mysql.md +++ /dev/null @@ -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 \ No newline at end of file diff --git a/document/reference/shortcut.md b/document/reference/shortcut.md deleted file mode 100644 index 0e3d6bc..0000000 --- a/document/reference/shortcut.md +++ /dev/null @@ -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等