guli 商场

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.第六天

待学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值