zoukankan      html  css  js  c++  java
  • SpringCloud第六天

    分布式配置中心

    配置文件增多,不好维护
    修改配置文件需要重新发布
    统一管理配置, 快速切换各个环境的配置,阿里的Nacos:既可以当服务治理,又可以当配置中心,Nacos = Eureka + Config

    1. 添加依赖
    <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
    1. 不能使用原先的application.yml, 需要使用bootstrap.yml作为配置文件
      配置读取优先级 bootstrap.yml > application.yml
      创建bootstrap.yml,添加配置
    spring:
      application:
        name: wpb-order-service
      cloud:
        nacos:
          config:
            server-addr: vm02:8848 #nacos地址
            file-extension: yaml #文件扩展格式
      profiles:
        active: dev # 可以指定是哪种环境的比如开发环境,测试环境
    
    1. 在nacos页面的配置列表点击新增

      注意这个命名一定要是后端的服务名-dev.yaml 后端服务是什么就写什么,dev后缀也一定要和后端的对上
      内容就是application.yml的内容,复制过来之后,后端的application.yml文件就可以注释掉或者删掉了。

    2. 重启nacos,然后idea输入mvn -clean package -U 重启idea,重启服务

    也可以在浏览器直接查看
    http://vm02:8848/nacos/v1/cs/configs?dataId=wpb-order-service-dev.yaml&group=DEFAULT_GROUP

    nacos的动态刷新配置

    默认支持,比如更改nacos配置文件的东西,就会自动下发到服务中
    比如在控制页面修改端口之后,在后端服务中

    还有动态取值

    比如在配置文件中添加

    video:
      title: xxx
    

    然后在后端

    @RefreshScope
    public class OrderController {
        @Value("${video.title}")
        private String videoTitle;
    }
    

    这样就可以动态的取到配置文件中的值

    Docker的使用

    docker就是一个虚拟机,可以这么理解,vmware就是可以有多个虚拟机在上面,比如你可以安装苹果,windows,linux,为不同的虚拟机分配内存啥的
    一些概念

    • 镜像,可以理解为java中的类,容器运行的只读模板,操作系统+软件运行环境+用户程序
    • 容器,可以理解为java中,通过类创建出的对象
    • 仓库,用来保存镜像,有公有和私有仓库,好比Maven的中央仓库和本地私服
      安装
    yum install docker-io -y
    systemctl start docker
    

    检查安装结果。 docker info

    systemctl start docker     #运行Docker守护进程
    systemctl stop docker      #停止Docker守护进程
    systemctl restart docker   #重启Docker守护进程
    

    常见命令

    搜索镜像:docker search xxx

    列出当前系统存在的镜像:docker images

    拉取镜像:docker pull xxx

    xxx是具体某个镜像名称(格式 REPOSITORY:TAG)
    REPOSITORY:表示镜像的仓库源,TAG:镜像的标签
    运行一个容器:

    docker run --name nginx-xd -p 8080:80 -d nginx

    docker run - 运行一个容器
    -d 后台运行
    -p 端口映射
    --name "xxx" 容器名称
    列举当前运行的容器:docker ps

    检查容器内部信息:docker inspect 容器名称

    删除镜像:docker rmi IMAGE_NAME

    强制移除镜像不管是否有容器使用该镜像 增加 -f 参数
    停止某个容器:docker stop 容器名称

    启动某个容器:docker start 容器名称

    移除某个容器: docker rm 容器名称 (容器必须是停止状态)

    列举全部 容器 : docker ps -a

    以nginx镜像为例
    搜索都有哪些nginx镜像

    拉取镜像到本地
    docker pull nginx
    运行镜像 (如果本地没有会自动拉取镜像到本地)
    docker run --name nginx-xd -p 8080:80 -d nginx
    8080:80 是一个端口映射,意思是外部访问8080端口,会映射到内部的80端口
    也可以运行多个,比如在执行
    docker run --name nginx-xd-81 -p 8081:80 -d nginx
    就像微服务一样

    下载太慢的话修改docker的镜像源

    # vi /etc/docker/daemon.json
    {
        "registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
    }
    systemctl restart docker.service
    
    个人qq:835493858 有事联系我
  • 相关阅读:
    [Swift]LeetCode1035.不相交的线 | Uncrossed Lines
    [Swift]LeetCode1034.边框着色 | Coloring A Border
    [Swift]LeetCode1033. 移动石子直到连续 | Moving Stones Until Consecutive
    [Swift]美人征婚问题
    [Swift]动态变化顶部状态栏(statusBar)的颜色
    [Swift-2019力扣杯春季决赛]4. 有效子数组的数目
    [Swift-2019力扣杯春季决赛]3. 最长重复子串
    [Swift-2019力扣杯春季决赛]2. 按字典序排列最小的等效字符串
    转 ORA-12638: 身份证明检索失败
    转 构建镜像
  • 原文地址:https://www.cnblogs.com/wpbing/p/14354465.html
Copyright © 2011-2022 走看看