guli 商场
1.第一天
1.基础概念
-
微服务:拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行。
-
集群&分布式&节点:分布式系统是若干独立计算机的结合,这些计算机对于用户来说就像单个相关系统,
-
分布式是指将不同的业务分布在不同的地方
-
集群是指将几台服务器集中在一起 实现统一业务
-
分布式中的每个节点都可以做集群 而集群并不一定是分布式 (一个微服务可以部署多台服务器 同一个服务 此时不是分布式)
-
远程调用:在分布式系统中 各个服务器可能都处于不同的主机 但是服务之间不可避免的要互相调用 我们称之为远程调用
-
SpringCloud 中使用 HTTP+JSON 的方式完成远程调用
-
负载均衡:在分布式系统中 A服务需要调用B服务,B服务在多台机器中都存在,A调用任意一个服务器均可完成功能
-
为了使每个服务器不要太忙或者太闲 我们可以负载均衡到每个服务器 提高系统的健壮性
-
常见的负载均衡 算法 :
-
轮询 为第一个请求选择健康池中的第一个后端服务器没然后按顺序往后依次选择 直到最后一个
-
最小连接:优先选择连接数最少,也就是压力最少的一个后端服务器,在会话较长的时候可以选择这种方式
-
散列算法:根据请求源的IP的散列来选择要转发的服务器 这种方式可以一定程度保证特定用户连接到相同的服务器
-
服务中心&发现&注册中心:A服务调用B服务,A服务并不知道B服务当前在哪几台服务器有,哪些服务已经下线,解决问题可以引入注册中心
-
配置中心:每个服务都有大量的配置,并且每个服务都可能部署在多态服务器上,我们经常需要变更配置,我们可以让每个服务在配置中心获取自己的位置
-
服务熔断&服务降级:在微服务架构中 微服务之间通过网络进行通信,存在相互依赖,当其中一个服务不可用时,有可能会造成雪崩效应
服务熔断:设置服务的超时,当被调用的服务经常失败达到某个阈值,我们可以开起断路保护机制,后来的请求不再去调用这个服务,本地直接返回默认的数据
服务降级:在当系统处于高峰期,系统资源紧张,我们可以让非核心业务降级。
-
API网关 :在微服务架构中 APIGateway作为整理架构的重要组件,它抽象了为服务中都需要的公共功能,同时提供了客户端负载均衡,服务自动熔断,灰度发布 统一认证限流流控,日志统计等功能。
2.第二天
1.系统架构
客户端请求->nginx转发->API网关(SpringCloud Gateway ) -(可使用sentinel组件进行熔断降级,认证授权,动态路由,限流)->服务(springboot) -(springCloud Feign 分布式事务,oAuth2.0 认证登陆 安全限制 springsecurity OSS对象存储 mysql 集群 redis集群 业务集群) - (RabbigMQ 消息队列 ElasticSearch 全文检索 ) -> (日志存储 ELK Kibana ES LogStash)
2.端口映射
c盘用户目录下的vagrantfile 进行修改 config.vm.network ip修改为 cmd下的虚拟机ipv4 端口 进行vagrant reload 跟主机系统相互ping通即可
3.Docker技术
虚拟化容器技术。Docker基于镜像可以秒级启动各种容器 每一种容器都是一个完整的运行环境,容器间相互隔离。
docker安装命令:
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
(这边使用的是外网的地址 太慢
给出一个阿里国内的镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo)
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动命令:
$ sudo systemctl start docker
检查安装列表:
sudo docker images
开机自启动:sudo systemctl enable docker
配置镜像加速: 阿里云 镜像服务中心
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1yl6678x.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.第三天
1.docker安装mysql redis
下载镜像文件:docker pull mysql:5.7
创建实例并启动:
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/config:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
进入mysql容器:docker exec -it mysql /bin/bash
vagrantFile配置:config.vm.network “private_network”, ip: “192.168.56.2”
授权:GRANT ALL PRIVILEGES ON . TO ‘root’@‘192.168.56.1’ IDENTIFIED BY ‘root’ WITH GRANT OPTION
改表:update user set authentication_string = password(‘root’) where user = ‘12345678’;
下载redis:docker pull redis
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /mydata/mysql/config:/etc/mysql \
-d redis redis-server /etc/redis/redis.conf
进入redis:
docker exec -it redis redis-cli
docker update mysql --restart=always 自动启动容器
4.第四天
1.安装开发环境:
maven 配置
<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>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b0NyOVva-1624286279210)(C:\Users\10258\AppData\Roaming\Typora\typora-user-images\image-20200805212142482.png)]
2.git安装:
码云注册
下载git
配置git 进入gitbash
配置用户名
git config --global user.name “prosaic”
配置邮箱
git config --global user.email “1025828444@qq.com”
3.配置ssh免密连接
进入get bash 使用 ssh-keygen -t rsa -C “1025828444@qq.com” 三次回车
cat ~/.ssh/id_rsa.pub 查看秘钥内容
将密匙内容 添加到码云 个人中心 - 设置 -ssh公钥
用ssh -T git@gitee.com测试
4.idea 配置git
首先先百度配置git
测试git连通码云
idea下载gitee
在最外层的.gitignore进行文件排除
5.聚合工程
使用pom modules的方式进行聚合 多个微服务有一个root
5.第五天
1.vue脚手架工程
码云人人开源 renren -fast renren-fast-vue
node.js 下载
配置node.js淘宝镜像
命令:npm config set registry http://registry.npm.taobao.org/
2.遇坑笔记:
vs code进行npm 的时候有一个 node-sass无法从github上载下来
百度 推荐用cnpm install node-sass@latest
结果出现 cnpm不是内部指令
然后npm install -g cnpm --registry=https://registry.npm.taobao.org
接着
报错:cnpm : 无法加载文件 C:\Users\10258\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息
然后
1.在win10 系统中搜索框 输入 Windows PowerShell,选择 管理员身份运行
2、使用,win+R打开了powershell命令行之后,输入set-ExecutionPolicy RemoteSigned,然后更改权限为A,最后通过 get-ExecutionPolicy 查看当前的状态
就行
了
3.初始化数据库:
oms 订单
pms 商品
sms营销
ums用户
wms库存
6.第六天
息
然后
1.在win10 系统中搜索框 输入 Windows PowerShell,选择 管理员身份运行
2、使用,win+R打开了powershell命令行之后,输入set-ExecutionPolicy RemoteSigned,然后更改权限为A,最后通过 get-ExecutionPolicy 查看当前的状态
就行
了
3.初始化数据库:
oms 订单
pms 商品
sms营销
ums用户
wms库存
6.第六天
待学习