SpringCloud Alibaba服务注册(总体第一篇)

接下来学习我们的SpringCloudAlibaba

一、介绍

1、官网

2、介绍

在这里插入图片描述
在这里插入图片描述
其实可以理解为,已经可以把SpringCloudNetflix完全替代了。

在这里插入图片描述

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

二、SpringCloudAlibaba之服务注册与配置中心

在前面的文章中,我们的服务注册用到了Eureka,Consul,Zookeeper,服务配置用到config,而服务总线用到了Bus。

(一)前提条件

1、Nacos下载和安装

(1)介绍

  • Nacos就兼顾了三者,服务注册与配置中心,消息总线。前四个字母分别叫Naming和configuration的前两个字母。s为service
  • 是一个更易于构建云原生的应用的动态服务发现,配置管理和服务管理平台。
  • 其实就是配置中心和注册中心的组合:替代Eureka做服务注册中心,替代config做配置中心。

(2)下载安装

  • 下载地址:https://nacos.io/zh-cn/
    在这里插入图片描述
    点进去后一直往下面拉

  • 安装教程:没什么教程就是要创建一个数据库,执行命令,还有就是配置一下(参考文章
    在这里插入图片描述
    默认账号密码都是nacos
    在这里插入图片描述

(二)替代Eureka作为服务注册中心

1、基于Nacos的服务提供者

首先编写之前肯定要导入依赖,依赖就来源于spring官网:https://spring-cloud-alibaba-group.github.io/github-pages/2021/en-us/index.html#_spring_cloud_alibaba_nacos_discovery

<dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2.1.0.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

只要在父项目导入即可。

(1)建9001

  • 建模块
    在这里插入图片描述
  • 导入pom依赖
<dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • yaml
server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

# 监控的端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  • 主启动
    在这里插入图片描述

  • 看业务
    在这里插入图片描述
    业务都不复杂,之前在SpringCloud就细入的讲解了。

  • 启动测试
    在这里插入图片描述

(2)建9002

在这里插入图片描述
http://localhost:9001/payment/nacos/1或者http://localhost:9002/payment/nacos/1测试都可以。

2、基于Nacos的服务消费者

nacos已经自己就实现了负载均衡。
在这里插入图片描述

(1)建项目

  • 名字如下
    在这里插入图片描述
  • 到pom
<dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
        <dependency>
            <groupId>cn.mldn</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

  • yaml
server:
  port: 83


spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848


#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
  nacos-user-service: http://nacos-payment-provider

  • 主启动
    在这里插入图片描述

(2)业务

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

http://localhost:83/consumer/payment/nacos/1

3、Nacos服务注册中心对比提升

在这里插入图片描述
nacos强大之处在于支持AP与CP(但是不能同时支持),可以进行切换使用。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

(三)替代Config作为服务配置中心

1、Nacos作为配置中心-基础配置

(1)建项目

在这里插入图片描述

  • pom
<dependencies>
        <!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--一般基础配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • 建yaml
    在这里插入图片描述
    这里建立了个boostrap,因为为了后续能无缝迁移。
    在这里插入图片描述
  • 主启动
    在这里插入图片描述

(2)业务逻辑(Bus与Config的作用)

在这里插入图片描述
都是去抄前面的Bus的动态刷新吧。

(3)Nacos中添加配置信息

在这里插入图片描述

  • 根据我们的配置文件如何
    在这里插入图片描述
    在这里插入图片描述
    所以我们要配置的名字为nacos-config-client-dev.yaml
    在这里插入图片描述
    在这里插入图片描述
    BootStrap.yaml配置
    在这里插入图片描述
    而且注意格式要写yaml,不能写yml。
    在这里插入图片描述
  • 之后可以再修改你的nacos文件,然后会发现更新。
    在这里插入图片描述
    在这里插入图片描述
    太好了吧。

2、Nacos作为配置中心-分类配置

在这里插入图片描述

  • 问题描述
    在这里插入图片描述
  • nacos图形化管理界面
  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

(1)Nacos之Data ID方案

指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置文件。【比较常用】
在这里插入图片描述

  • 新建我们dev和test环境
    在这里插入图片描述
    同一组的管理文件。

  • spring.profile.active指定多环境配置
    在这里插入图片描述

  • 启动测试
    在这里插入图片描述
    从我们的生产环境切换到了我们的测试环境,达到了无缝的对接。

(2)Nacos之Group分组方案

  • 通过Group实现环境区分

新建Group
在这里插入图片描述
虽然有DataId一样,但是Group不一样。
在这里插入图片描述
在这里插入图片描述

  • 启动测试即可发现
    在这里插入图片描述
  • 另外一种情况(分组发生变化)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

(3)Nacos之Namespace方案

  • 使用namespace实现分离环境。

新建dev与test命名空间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 在test下创建一个dev(分两组)
    在这里插入图片描述
  • 通过namespace进行设置
    在这里插入图片描述
    在这里插入图片描述
  • 启动测试
    在这里插入图片描述
    我又重新建了一个测试的,这个命名空间让他自己生成的吧,不要写dev或者test,其他应该也可以
    在这里插入图片描述
    在这里插入图片描述

(4)小总结

之前的我们的config进行配置的时候,我们要新建GitHub的地址,然后进行配置一个中心的服务配置中心后再进行其他的配置,而我们现在直接通过我们这个阿里提供的这个就可以访问了,很方便。我们通过三种方案实现环境的隔离,它也可以处理另外的一些方案,暂时模拟不出来。

三、Nacos集群和持久化配置

在实际开发中,我们肯定不可能只配置一个Nacos配置中心,然后当你其中一台主机宕了后,其他的也可以正常执行,达到不影响你项目运行的效果,所以还是得来玩集群。
https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

1、集群配置

(1)Nacos集群配置介绍

  • 对官网的理解(vip类似于Nginx)
    在这里插入图片描述
  • 我们安装Nacos的时候就执行了它下面的命令吧
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    用mysql进行数据库的存储,然后实现了数据的一致性。
    在这里插入图片描述
    就是上面我们配置的这些,它全部存储到了数据库,然后如果到时候的集群的话,也是到同一个数据库里面去读取,然后达到数据库的一致性。

(2)Nacos持久化切换配置

  • Nacos默认的嵌入式数据库derby数据库。

  • Derby切换到mysql。
    执行你的数据库脚本,
    在这里插入图片描述
    这个在你的数据库执行即可。
    在这里插入图片描述
    在这里插入图片描述
    跟着我一直做下来的就应该上面的在安装哪里就配置了。

2、Nacos在Linux下安装

前提是有jdk与mysql,但是我这次没有mysql,因为我虚拟机死活安装不上,后续补充吧,就操作我Windows下的数据库。

  • 妈耶,好久没登录腾讯云服务器了
    在这里插入图片描述
    在线吐槽一下腾讯的这个,售后比较垃圾,说真的,我都没有干过什么坏事情,都给我疯了,建议还是考虑阿里的吧。
    来吧,开始用VMware配置一台,(好吧这个我也放弃,我电脑配置比较低,不是启动蓝屏,而TMD安装就蓝屏(离谱) ,先把这个部分的理论学完吧,后续去买个阿里的云服务器),那么可以自己去找文章看看。

  • 我通过Xshell操控VMware不死机了,意外啊,来看看如何安装吧。

  • 在Windows下载,通过Xftp传过去,如下,然后解压。
    在这里插入图片描述

  • 启动的话就是我们的sh
    在这里插入图片描述

3、配置集群

(1)配置nacos

  • 配置集群(三个nacos配置文件,比如3333,3344,3355)

  • 第一步配置mysql(本来是要执行这个mysql资源的文件,但是上面已经介绍过了,本次操控我电脑的mysql)
    在这里插入图片描述

  • 第二步配置application.properties

    • 备份一下文件(记住,操作这总的时候,一定要备份一份)
      在这里插入图片描述
    • 查看一下Windows的ip地址
      在这里插入图片描述
    • 配置
      在这里插入图片描述
  • 配置Linux下的nacos的集群配置cluster.conf(模拟三台集群,3333,4444,5555)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 修改端口号
    在这里插入图片描述
    在这里插入图片描述
    没有是上面的getopts的P的自己添一下。
    在这里插入图片描述

  • 启动服务

    • 我第一个用了-p3333
      在这里插入图片描述
    • 用 -k试一试(结果显示不行,说明还是用它自带的即可)
      在这里插入图片描述
  • 启动好了上面的配置,发现自己nginx不会(发现自己没有学,所以这里明后天再来继续学习吧,先去补习一下Nginx)
    这里又花了两天来学习Nginx,结果我的文章审核未通过,好吧,你们自己去找文章看看吧。

(2)配置nginx

  • 把之前自己的练习删除了,再把之前拷贝的nginx.conf.init复制一个,不管是操作什么,都记得拷贝一份。
    在这里插入图片描述

  • 再进配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    查看测试
    ps -ef|grep nacos|grep -v grep|wc -l
    在这里插入图片描述
    刚才没有仔细看
    在这里插入图片描述
    改改参数。【我是直接减半的】
    在这里插入图片描述

  • 然后访问:http://192.168.243.130:8848/nacos即可【自己ip地址】
    在这里插入图片描述
    这里有点小问题,但是是打通了通道了,OK了

(3)配置一下我们的项目

在这里插入图片描述

  • 启动OK啦
    在这里插入图片描述

4、小总结

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值