六、SpringCloud-Alibaba-Nacos

1.Nacos服务注册与发现

1.1.什么是Nacos

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

1.2.Nacos服务安装

····下载地址:https://github.com/alibaba/nacos/releases
····解压配置即可用。

1.3.Nacos单机配置

····修改启动

如果不集群,单机使用,修改startup.cmd(windows系统):
set MODE="standalone"

····连接数据保存数据

修改conf/application.properties:
	spring.datasource.platform=mysql
	db.num=1
	db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
	db.user.0=mysql的账号
	db.password.0=mysql的密码

····创建nacos数据库

创建数据库,复制config/nacos-mysql.sql文件到数据库并运行,生成数据库表

2.服务注册

2.1.导入依赖

和Eureka一样,服务也需要导入jar包。

父项目导入SpringCloudAlibaba

<!--SpringBoot-->
    <parent>
        <groupId> org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/>
    </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>
    </dependencies>

各服务导入Nacos-Client

<dependencies>
        <dependency>
            <groupId>com.alibaba.cloud </groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--加入WEB依赖是为了方便后面写Controller-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2.2.主配置类

@SpringBootApplication
@EnableDiscoveryClient
public class UserApp {
    public static void main(String[] args) {
        SpringApplication.run(UserApp.class, args);
    }
}

2.3.配置yaml

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

2.4.启动测试

····登录界面,默认账号nacos,密码nacos
在这里插入图片描述····服务页面
在这里插入图片描述····数据库表
在这里插入图片描述 服务注册成功了

3.OpenFeign服务调用

····和之前一样,服务之间可以使用OpenFeign相互调用

3.1.导入依赖

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

3.2.启动类开启feign注解

@EnableFeignClients
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class OrderApp {
    public static void main(String[] args) {
        SpringApplication.run(OrderApp.class, args);
    }
}

3.3.编写Feign接口

@FeignClient
@FeignClient("user-server")
public interface UserFeignClient {

    @GetMapping("/user/{id}")
    User getUser(@PathVariable("id") Long id);
}

3.4.测试

@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private UserFeignClient userFeignClient;

    @GetMapping("/{id}")
    public User getUser(@PathVariable("id") Long id) {
        return userFeignClient.getUser(id);
    }
}

4.配置中心

将各个微服务的yaml配置放在nacos,修改nacos动态生效,不用重启项目

4.3.导入依赖

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

4.2.创建yaml文件

在这里插入图片描述

4.3.各服务创建bootstrap.yaml关联相应配置

根据bootstrap.yaml才能定位到相应的配置文件
spring:
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        prefix: application-order
        file-extension: yaml
        server-addr: localhost:8848
        extension-configs:
          - application-dev.yaml
生效的配置文件环境:dev;
配置文件前缀:application-order;
配置文件后缀:yaml;
	映射到的文件就是:application-order-dev.yaml
配置文件地址:localhost:8848;
公共配置文件(各微服务的共同配置):extension-configs:

4.4.其他

命名空间:在nacos创建命名空间,根据命名空间id使用对应的配置文件:
	namespace: 8ef8c1e5-6d20-4efc-80c8-2b2c05541fa3 #命名空间的ID
自定义Data ID:支持自定义扩展的 Data Id 配置 :
	https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config;
开启Nacos认证:开启Nacos认证,需要通知账号和密码进行注册,以及拉取配置:
	https://nacos.io/zh-cn/docs/auth.html。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值