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
posted @ 2021-01-31 22:32  踩在浪花上  阅读(59)  评论(0编辑  收藏  举报