谷粒商城个人笔记记录

2021/05/05分布式基础知识
1 微服务
1.1微服务
一种架构风格;
每个服务运行在自己的进程中;
使用轻量级通信(订单服务调用库存服务);
拒绝大型单体应用,基于业务进行微服务拆分;
各个服务独立部署运行;
1.2集群
物理形态 ;
几台服务器集中在一起,实现一个业务;
1.3分布式
工作方式;
若干独立计算机的集合,对于用户来说像单个相关系统。
1.4节点
例如:京东是一个分布式系统,各个服务分布在不同的地方,分登录服务、购物服务等等。然后登录业务又集群在不同的服务器上完成。
集群的不一定是分布式,但是分布式一定是集群的。
在这里插入图片描述

1.5远程调用
在分布式中每台服务都处于不同的主机上,但是服务之间不可避免的需要相互调用,这就称为远程调用例如订单服务调用库存服务
Spring cloud 中使用http+json的方式完成远程调用。天然的跨平台性。
1.6负载均衡
订单服务调用商品服务查看商品信息,商品服务可以集群到不同的服务器上,订单服务就可以调用不同的服务器来查看商品信息,所以使用到了负载均衡,使每台服务器都不至于太忙或者太闲。提升网站的健壮性。
在这里插入图片描述

常见的负载均衡:轮询挨个访问访问完1访问2;最小连接那个最少访问那个。
1.7服务注册中心
订单服务调用商品服务,不知道商品服务在那个服务上,也不知道哪些是正常运行的,为了解决这个问题就有了注册中心,服务上线后在注册中心注册。
在这里插入图片描述

1.8配置中心
有一个服务配置变化了,让每个服务都知道就有个配置中心,并且可以实现该一处其余自动知道。集中管理微服务的配置。
1.9熔断和降级
微服务之间是通过网络进行通信的,当其中一个出现问题可能会出现雪崩效应,要防止这种情况。
高并发中会导致阻塞积压,所以设置服务超时,实现断路保护机制,请求不调用,直接返回默认数据
降级:整体把控,让非核心业务降级运行,业务停机不处理,返回异常
1.10网关
在微服务架构中重要的组件,对前段发来的请求进行安检,可以提供负载均衡、熔断、负载均衡、自动熔断。相当于商场的门安检。
2 vagrant虚拟机安装
1.1vagrant
工具:操作虚拟机的工具;
高效便利的虚拟机管理方式,通过命令和配置文件和基于vagrant自身的约定,完成开发环境的部署;
解决环境不一致问题;
解决重复配置环境的浪费;

1.1.1安装
下载连接:
https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64.msi
本地位置:
E:\Javawinner\2021javawork\尚硅谷\尚硅谷2020谷粒商城项目视频\soft
安装位置:
D:\Tools\vagrant
1.1.2 virtual box6.0
下载连接:
https://download.virtualbox.org/virtualbox/6.0.10/VirtualBox-6.0.10-132072-Win.exe
本地位置:
安装位置:
D:\Tools\vm\6.0 virtural box
1.1.3配置
位置:F:\xuniji
1、初始化: vagrant init centos/7
Ps: 1.1下载太慢所以提前到网址下载一个box
连接:
https://app.vagrantup.com/boxes/search
在这里插入图片描述

1.2 vagrant box list 查看当前虚拟机中box
1.3 vagrant box add -name
1.4 Vagrant box remove -name 删除box

2、加载 vagrant up
在这里插入图片描述

3、虚拟机连接 vagrant ssh
Ps:如果出现这个错误
D:/Tools/vagrant/embedded/gems/2.2.5/gems/vagrant-2.2.5/lib/vagrant/action/warden.rb:50:incall'fromD:/Tools/vagrant/embedded/gems/2.2.5/gems/vagrant-2.2.5/lib/vagrant/action/builtin/before_trigger.rb:23:in call’
解决方法:
在vagrantfile处添加 Encoding.default_external = ‘UTF-8’
4、改网卡信息
默认虚拟机ip不是固定的,开发不方便
4.1 ipconfig 找virtual ip
在这里插入图片描述

4.2 改vagrantfile文件地址
在这里插入图片描述

4.3 重启 vagrant reload
ip addr
Ping 地址连接
Ps:解决 su root 授权失败问题
Sudo passwd root
Root
Root
Su root
Root
进入root
1.2 docker
虚拟融化技术,基于镜像,启动各种容器。容器之间相互隔离
docker 网址:
https://docs.docker.com/engine/install/centos/
1.2.1docker
1、移除旧版本
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2、安装依赖 yum -utils
yum install -y yum-utils
3、下载
yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo
4、引擎客户端
yum install docker-ce docker-ce-cli containerd.io
5、启动
systemctl start docke
6、查看版本 docker -v
7、查看镜像 docker images
8、开机自启 systemctl enable docker
9、镜像加速 阿里云
连接:https://cr.console.aliyun.com/cn-qingdao/instances/mirrors
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’ { “registry-mirrors”: [“https://1vzeatwi.mirror.aliyuncs.com”] } EOF
systemctl daemon-reload
sudo systemctl restart docker
1.2.2 安装mysql
1、下载mysql镜像
docker pull mysql:5.7
2、检查
docker images
在这里插入图片描述

3、挂载 文件挂载与端口映射
在这里插入图片描述

docker run --privileged=true -it -d -p 3306:3306 --name mysql
-v mydata/mysql/mysql/log:var/log/mysql
-v mydata/mysql/data:/var/lib/mysql
-v mydata/mysql/conf:etc/mysql
-e MYSQL_ROOT-PASSWORD=root
-d mysql:5.7
-p 端口映射 linux里的 mysql容器
-v目录挂载 mysql中数据文件可以挂载在linux外面文件中,所以更改的时候可以更改linux容器就可以
-e配置信息
-d启动

ps:停止某容器
docker stop id
docker rm id
docker ps -a
4、以交互模式进入容器
docker exec -it
docker exec -it mysql /bin/bash
查看在哪
Whereis mysql
进入config
cd mysql/
cd conf/
Vi my.cnf
在这里插入图片描述

my,cnf:
[client] default-character-set=utf-8 [mysqld] default-character-set=utf-8 [mysqld] init_connect=‘SET collation_connection = utf-8_unicode_ci’ init_connect=‘SET NAMES utf-8’ character-set-server=utf-8 collation-server=utf-8_unicode_ci skip-character-set-client-handshake skip-name-resolve
vi修改文件后保存并退出的两种方法
命令模式下执行ZZ
按ESC后 冒号:末行模式下执行wq
5、重启mysql
docker restart mysql
6、进入mysql
docker exec -it mysql /bin/bash
cd etc/mysql
cat my.cnf
7、安装sql yog
本机地址:D:\Tools\sqlyog
1.2.3安装redis
1、下载镜像
docker pull redis
2、删除镜像
docker rmi images
2、创建目录
mkdir -p /mydata/redis/conf
进入文件中
cd /mydata/redis/conf
touch redis.conf
在这里插入图片描述

3、启动
docker run -it -d --privileged=true -p 6379:6379 -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -v /mydata/redis/data:/data --name redis redis redis-server /etc/redis/redis.conf
4、虚拟机处复制一份
cat redis.conf
5、测试进入客户端
docker exec -it ba75aef334d3 redis-cli
在这里插入图片描述

6、持久化设置
pwd
ls
vi redis.conf
appendonly yes

在这里插入图片描述

在这里插入图片描述

7、重启 redis
docker restart redis
8、redis
安装可视化工具 redis manager-0.8.8.384
本机位置:D:\Tools\redisdesk
9、redis配置文档
https://redis.io/topics/config

3环境配置
3.1 java
本机位置:F:
安装:C:\Program Files\Java
1、classpath
CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
在这里插入图片描述

2、java_home
JAVA_HOME
C:\Program Files\Java\jdk1.8.0_92
在这里插入图片描述

3、path:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
在这里插入图片描述

安装成功;
在这里插入图片描述

3.2 maven 3.6.1安装
1、网址下载:
http://maven.apache.org/download.cgi
其他版本

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

在这里插入图片描述

本机地址:
E:\maven\3.6.1
2、配置
M2_HOME
M2_HOME
E:\maven\3.6.1\apache-maven-3.6.1-bin\apache-maven-3.6.1
在这里插入图片描述

MAVEN_HOME

MAVEN_HOME
E:\maven\3.6.1\apache-maven-3.6.1-bin\apache-maven-3.6.1
在这里插入图片描述

Path
%M2_HOME%\bin
%MAVNE_HOME%\bin
在这里插入图片描述

安装成功
在这里插入图片描述

3.3 idea 安装
1、本机安装包
E:\Javawinner\idea2020.1
2、配置maven环境:
File ——>setting——>maven 选择电脑中maven安装包
在这里插入图片描述
在这里插入图片描述

3、下载插件
File ——>setting——>plugins
在这里插入图片描述

1.lombok : 简化javabean开发
2.mybatisx: 简化从mapper方法定位到xml文件
3.4 vscode安装
1、下载连接
https://code.visualstudio.com/Download
2、本地安装包
E:\Javawinner\vscode
3、node.js
下载连接:http://nodejs.cn/download/
本地:E:\Javawinner\vscode

3.1安装cnpm
1.在安装好的node.js目录下新建两个文件夹
node_global
node_cache
在这里插入图片描述

2.在cmd中设置全局路径 就是刚在文件夹的全路径
在这里插入图片描述

3.安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org
在这里插入图片描述

4.配置环境
配置环境变量 cnpm
编辑系统变量path
把 node_global 文件夹的位置配置进去
在这里插入图片描述

检查成功

在这里插入图片描述

4、安装插件:
auto close tag 自动开闭标签 auto rename tag
chinese 汉化简体中文包 eslint 前端es检查
html css Javascript liveserver
在这里插入图片描述

3.5 git
1、下载网址:http://git-scm.com/download/win

2、本机地址:D:\Tools\git

3、使用:
桌面右键进入git.bsh
git config --global user.name “lihongtao1”
git config --global user.email “1485942652@qq.com”
ssh-keygen -t rsa -C "1485942652@qq.com
在这里插入图片描述

$ cat ~/.ssh/id_rsa.pub
码云地址:
https://gitee.com/profile/sshkeys
在码云设置ssh密钥处黏贴

ssh -T git@gitee.com
在这里插入图片描述
在这里插入图片描述

4码云仓库构建在这里插入图片描述

1、新建仓库
在这里插入图片描述

2、配置仓库
在这里插入图片描述

4、复制连接 克隆
https://gitee.com/li-hongtao1/gulimall.git
在这里插入图片描述

5项目导入idea
1.1版本控制新建
在这里插入图片描述

1.2克隆
在这里插入图片描述

1.3新建模块
在这里插入图片描述

spring initializr 构建,每个模块引入web、openFeign
在这里插入图片描述

1.4聚合xml
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

<groupId>com.atguigu.gulimall</groupId>
<artifactId>gulimall</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gulimall</name>
<description>聚合服务</description>
<packaging>pom</packaging>
<modules>
    <module>gulimall-member</module>
    <module>gulimall-ware</module>
    <module>gulimall-coupon</module>
    <module>gulimall-order</module>
    <module>gulimall-product</module>
</modules>
1.5忽略版本控制提交 gitignore Mvnw:它是maven的一个wrapper,在找不到maven的时候,它会自动下载一个;或者,碰到你的项目maven和你环境里的mavne不兼容,它也会自动下载一个。 **/mvnw **/mvnw.cmd

**/.mvn
**/target/

.idea

**/.gitignore
ps:2020版本idea没有local changes
Settings/Preferences/Version Control/Commit将Use non-modal commit interface取消勾选
在这里插入图片描述
配置coupon优惠卷服务增删改查
1、配置数据源信息
server:
port: 7000
spring:
datasource:
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://182.92.118.188:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
mybatis-plus:
global-config:
db-config:
id-type: auto

mapper-locations: classpath:/mapper/**/*.xml
在这里插入图片描述

2、启动类配置dao扫描
@MapperScan(“com.atguigu.gulimall.coupon.dao”)
在这里插入图片描述

其中端口占用
netstat -ano|findstr 7000
杀掉进程
taskkill /F /pid 70168

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值