Guli 软件安装的教程and坑 1-27

1.安装VBox 虚拟机 一直下一步

       坑: 然后将安装目录去环境变量中配置后重启系统.否则vagrant 安装后识别不到vbox的话无法进行 vagrant up 操作

2.安装vagrant 可以快速创建虚拟机
  • 首先一直下一步安装好 打开cmd 输入 vagrant 看有没有安装好
  • 输入 vagrant init centos/7 初始化一个虚拟机镜像 此时会在当前的盘符出现一个Vagrantfile文件
  • 然后需要执行 vagrant up操作 执行下载命令
  • 下载完成之后会自动启动 我们可以使用命令 vagrant ssh 用户连接虚拟机
  • 连接成功可以 使用命令 woami 查看 当前登录人
  • exit 退出连接
  • 初始化虚拟机后每次只需要 vagrant up操作就可以启动虚拟机 也可以在vbox中启动

    效果图:
    代表启动成功了!!!
  • 设置虚拟机和windows互通的ip : 找到Vagrantfile文件夹
    解开注释,在cmd中找到IP地址


    图片.png

    再修改Vagrantfile的ip地址,这样虚拟机就能和windows互通了 ,

    如果不这样做虚拟机中增加一个软件就得修改端口和ip,修改了虚拟机的就不用修改内部软件的了
    图片.png

    测试:
    在虚拟机目录下输入ip addr ,已经变更为修改后的地址
    图片.png

    在windows中 打开ipconfig 找到本机的地址


    图片.png
    然后跟虚拟机互ping ip地址 能互相ping通就相当于成功了
Docker安装
  • 1.改成root权限登入
[chend@c9 ~]$ sudo su
  • 2.删除旧版本docker
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 设置依赖包和配置安装的地址
$ sudo yum install -y yum-utils

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 安装docker的容器和客户端
$ sudo yum install docker-ce docker-ce-cli containerd.io
  • 启动docker,设置开启自启
$ sudo systemctl start docker

$ sudo systemctl enable docker   -- 自启
  • 配置docker的镜像加速(阿里https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://n9t7riva.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker中安装mysql(也是一个linux)
  • 1.启动虚拟机 vagrant up
    1. 连接虚拟机 vagrant ssh
  • 3.查看docker镜像 dcoker images
  • 4.下载mysql镜像 docker pull mysql:5.7
  • 5.启动mysql
docker run -p 3306:3306 --name mysql \ 
-v /mydata/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
图片.png

解释:

  • docker run -p 3306:3306 意思是 linux容器3306 端口映射到mysql容器的3306端口
  • -v 什么的就是挂载点将在linux中生成一个文件夹目录 只要mysql的文件夹产生新的东西linux也有一份更方便查看日志什么的.


    图片.png

    6.修改配置文件 修改mysql的字符编码
    先在conf目录下 创建cnf目录

vim my.cnf

[client]
default-character-set=utf-8                                                                                                                   [mysql]                                                                
default-character-set=utf-8                                                                                                                   [mysgld]                                                               init_connect='SET collation connection = utf8 unicode ci'
init connect='SET NAMES utf8' 
character-set-server=utf8
collation-server-utf8_unicode_ci                                       skip-character-set-client-handshake                                    skip-name-resolve   

重启mysql

docker restart mysql

Docker 安装redis

下载最新redis

docker pull redis

启动实例 : 这里有一个注意点,先在docker中创建好redis.conf 不然启动后不会自动生成这个文件,挂载完后不会生效


图片.png

再执行命令

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \ 
-v /mydata/redis/conf/redis.conf:/ect/redis/redis.conf \ 
-d redis redis-server /ect/redis/redis.conf

开启redis的aof持久化
vi redis.conf 中 设置 appendonly yes 保存 就开启了aof持久化
重启redis

 docker restart redis

环境搭建

  • 1.jdk版本1.8及以上 JAVA -version


    图片.png
  • 2.安装vscode 和需要的插件


    图片.png
  • 3.项目启动发现没有node_modules这个文件
    执行使用npm cache clean --force 命令 清除这种缓存 再执行npm install
    发现又报错什么 no such file or directory, scandir 'E:\XueXi\vue\renren-fast-vue\node_module


    图片.png

    使用命令:npm rebuild node-sass

使用 springcloud alibaba的组件 :

文档 https://github.com/alibaba/spring-cloud-alibaba

为什么不使用springcloud自带的组件而使用spring cloud alibaba的组件
图片.png
使用Nacos Discovery做为注册中心作为服务的注册与发现

步骤:

  • 1.首先,修改 pom.xml 文件,引入 Nacos Discovery Starter。
 
     com.alibaba.cloud
     spring-cloud-starter-alibaba-nacos-discovery
 
  • 2.在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址
 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
图片.png
  • 3.在启动类上加注解 @EnableDiscoveryClient开启服务注册与发现功能

  • 4.下载Nacos安装包,解压到bin目录的startup.cmd打开


    图片.png

    图片.png
使用Nacos Config做为配置中心统一管理配置

作用: 如果服务多了不需要去修改代码里的配置文件 太麻烦还要重启, 如果使用了阿里的Nacos的配置中心的话 配上自动刷新配置的注解就只需要在Nacos上面修改配置文件就可以了. 如果出现配置中内不一致的情况:
Nacos config的优先级(最高) > bootstrap.properties 配置 > application.properties 配置

  • 步骤:
    1.添加config依赖
 
     com.alibaba.cloud
     spring-cloud-starter-alibaba-nacos-config
 
  1. 在应用的 /src/main/resources/bootstrap.properties 配置文件中配置 Nacos Config 元数据
 spring.application.name=nacos-config-example  #这个名词写自己模块的名字
 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 #指向Nacos的地址
图片.png

3.使用 @RefreshScope 开启 动态获取并刷新配置

  1. 使用 @Value注解, 拿配置文件的数据
    @Value("${coupon.user}")
    private String user;

    @Value("${coupon.age}")
    private Integer age;

5.在Nacos 上新增配置,
图片.png

6.细节

  • 命名空间:
    配置隔离:默认public(保留空间), 我们可以配置读取其他指定的命名空间
    (1). 开发, 生产,测试 :利用命名空间做环境隔离 例如dev就是测试环境


    图片.png

    需要在bootstrap.properties中指定名空间id

#指定需要读取的命名空间ID
spring.cloud.nacos.config.namespace=28685594-a598-4609-af21-589ac2d33cde

(2).基于微服务进行隔离,每一个微服务对应一个命名空间进行隔离.
(3).可以设置配置组,默认是DEFAULT_GROUP组 ,可以在新建配置的时候修改配置组好处是可以在不同时候选择不同配置组进行环境使用
bootstrap.properties中使用

spring.cloud.nacos.config.group=1111  #组名
使用Feign做远程调用
图片.png
使用springcloud getway做api网关

流程: 首先请求进来或访问我们的网关服务,网关利用断言判断是不是符合我们的路由规则,如果符合就放行,经过一系列的filter.
示例:

spring:
  cloud:
    gateway:
      routes: #路由规则
        - id: qq_routs  #路由规则名字
          uri: https://www.qq.com #成功路径
          predicates: 
            - Query=url,qq

        - id: baidu_routs1
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu #条件断言成功路由到指定位置
解决跨域问题说明浏览器向后台服务器发送了一个预检请求,得到允许跨域才会再次发送真实请求
  • 1,跨域问题流程 如果报options


    图片.png
  • 2.解决方式
    第一种使用nigux 的反向代理
    第二种 使用 springboot中的CorsWebFilter 接口进行跨域配置
@Configuration  //这是一个配置类
public class GulimallCorsfiguration {

   //springboot自带的跨域filter
   @Bean
   public CorsWebFilter corsWebFilter(){

       //使用响应式包下的类 reactive
       UrlBasedCorsConfigurationSource Source = new UrlBasedCorsConfigurationSource();

       CorsConfiguration configuration = new CorsConfiguration();
       //配置跨域信息
       configuration.addAllowedHeader("*");    //允许那些头
       configuration.addAllowedMethod("*");   //允许那些请求方式
       configuration.addAllowedOrigin("*");     //允许所有请求来源
       configuration.setAllowCredentials(true);   //是否允许携带cookie信息进行跨域,否则会丢失cookie信息

       Source.registerCorsConfiguration("/**",configuration); //任意路径下都要跨域

       return new CorsWebFilter(Source);
   }
}

你可能感兴趣的:(Guli 软件安装的教程and坑 1-27)