栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

接下来学习我们的SpringCloudAlibaba

一、介绍 1、官网
  • 地址:https://gitee.com/mirrors/Spring-Cloud-Alibaba
  • 地址二:https://spring.io/projects/spring-cloud-alibaba
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


        com.alibaba.cloud
        spring-cloud-alibaba-dependencies
        2.1.0.RELEASE
        pom
        import
      

只要在父项目导入即可。

(1)建9001
  • 建模块
  • 导入pom依赖

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    
  • 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

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
        
            cn.mldn
            cloud-api-commons
            1.0-SNAPSHOT
        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

  • 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

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    
  • 建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、小总结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号