七:SpringCloudAalibaba Nocas组件(服务注册与发现,配置管理)

一.nacos介绍

Nacos致力于帮助您发现,配置和管理微服务。它提供了一组简单有用的功能,使您能够实现动态服务发现,服务配置,服务元数据和流量管理。Nacos使构建,交付和管理微服务平台变得更容易,更快捷。它是通过微服务或云原生方法支持以服务为中心的现代应用程序体系结构的基础架构。

二:Nacos服务安装

1.1 下载

地址:Releases · alibaba/nacos · GitHub

1.2 解压

1.3 运行

windows执行bin目录下的startup命令 :startup.cmd -m standalone 或者 修改 startup.cmd中set MODE="standalone"单体项目 然后双击startup.cmd启动

1.4  访问

访问Nacos,端口8848:http://127.0.0.1:8848/nacos/index.html ,用户名和密码都是:nacos

1.5 基于数据库持久化Nacos (nacos服务注册表持久化到数据库)

1.5.1 找到nacos安装目录config/application.properties 文件,编辑数据库信息

spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1234

1.5.2 找到config/ nacos-mysql.sql 文件 ,创建数据库 nacos,然后导入该sql脚本文件

三:Nacos服务注册

1.父工程的依赖

<!--公共的一些配置-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>

    </properties>

    <!--SpringBoot-->
    <parent>
        <groupId> org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
    </parent>

    <!--SpringCloud-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--        配置中心客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

2. 创建自服务 服务注册到Nacos

2.1 子服务导入依赖

 <!--nacos 服务注册-->
        <dependency>
            <groupId>com.alibaba.cloud </groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

2.2 启动类 略

2.3 yaml配置 服务名 IP 注册中心地址

server:
  port: 1001
spring:
  application:
    name: user-server
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848	#注册中心地址

2.4 controller

2.5 测试 输入 localhost:1001/user/1  就可以在nacos服务列表看到该服务

四:服务通信 使用openFeign进行服务通信

1. 消费者服务order导入openfeign的依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2. 启动类开启feign

@EnableFeignClients // 开启feign支持

3. 创建userFeignClient接口 和 User接口一致

4. order的controller注入userFeignClient使用。

五:Nacos配置管理 配置文件统一管理

1. Nacos添加配置

1.1 第一步:打开Nacos监控面板 - 进入配置列表 -点击 “+” 图标添加配置

1.2 第二步:填写Data ID,选择YAML,编辑配置文件内容

server:
  port: 1001 #端口
spring:
  application:
    name: service-user #服务名
  cloud:
    sentinel:
      transport:
        dashboard: localhost:1111
      datasource:
        flow:
          nacos: #限流持久配置
            server-addr: localhost:8848	#使用nacos的持久
            dataId: application-user-flow-dev	#获取限流的数据源的dataId
            groupId: DEFAULT_GROUP
            rule-type: flow #类型:限流
    nacos:
      discovery:
        server-addr: localhost:8848	#注册中心地址 服务发现

2. 客户端接入配置中心

1. 需要nacos管理配置的服务 导入nacos的config包

 <!--        配置中心客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

2. 删除application.yaml 添加 bootstrap.yam文件配置nacos

spring:
  profiles:
    active: dev #开发环境
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 #nacos地址
        prefix: application-order #前缀
        file-extension: yaml #后缀
        shared-configs:
          - application-common-dev.yaml # 公共配置文件名
feign:
  sentinel:
    enabled: true #熔断

3.测试

localhost:1001/user/1

4. 命名空间

命名空间可以用来隔离不同项目的配置文件,在Nacos中配置了命名空间后,那么Java客户端需要指定命名空间后才能拉取到该命名空间下的配置文件。 创建 指定

 nacos

        config

                namespace: 8ef8c1e5-6d20-4efc-80c8-2b2c05541fa3 #命名空间的ID

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值