spring-cloud-alibaba(二)Nacos篇

Nacos

版本说明

https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
GitHUub 搜索在这里插入图片描述
点击 wiki ----> 版本说明
在这里插入图片描述

版本选型
springcloud alibaba :2.2.7.RELEASE
Spring Cloud:Hoxton.SR12
springboot :2.3.12.RELEASE
推荐使用release 稳定版

使用dependencyManagement 继承多个版本管理,如spring cloud alibaba、springboot

   <dependencyManagement >

        <dependencies>
            <!-- springboot 版本管理-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>2.3.12.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring-cloud-alibaba 版本管理-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.7.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- spring-cloud  版本管理-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

Nacos Service 搭建

下载Nacos

下载地址:Nacos 对应版本 2.0.3 https://github.com/alibaba/nacos/releases
在这里插入图片描述
设置Nacos 单机版启动
编辑 startup.cmd 文件
修改 set MODE=“cluster” 为 set MODE=“standalone”

启动Nacos

双击startup.cmd 文件
在这里插入图片描述
在这里插入图片描述
访问地址:http://localhost:8848/nacos/index.html
访问成功
账号密码都是nacos

在这里插入图片描述

Nacos 客户端搭建

搭建order-nacos 客户端

使用maven 搭建order-nacos客户端
在这里插入图片描述
Pom文件添加依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
          <!-- nacos 依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

新建application.yml

server:
  port: 8011
  # 服务名称
spring:
  application:
    name: order-service
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        username: nacos
        password: nacos
        namespace: public
	

创建主启动类 OrderNacosMain8011

@SpringBootApplication
public class OrderNacosMain8011 {

    public static void main(String[] args) {
        SpringApplication.run(OrderNacosMain8011.class,args);
    }
}

启动 OrderNacosMain8011
访问 Nacos 查看服务列表 order-service 入驻Nacos成功

在这里插入图片描述

搭建sotck-nacos 客户端

使用spring Initializr 搭建order-nacos客户端
在这里插入图片描述
选取 web
在这里插入图片描述
更改stock-nacos pom
在这里插入图片描述
在父项目POM中添加子模块
在这里插入图片描述
编写application.yml文件

server:
  port: 8022
  # 服务名称
spring:
  application:
    name: stock-service
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        username: nacos
        password: nacos
        namespace: public

启动StockNacosApplication
访问 Nacos 发现 stock-service 入驻Nacos
在这里插入图片描述

使用 服务名 实现远程调用

新建RestTemplateConfig 配置类


@Component
public class RestTemplateConfig {
    @Bean
    public RestTemplate getRestTemplate(){

        return new RestTemplate();
    }
}

新建OrderNacosController

@RestController
@RequestMapping("order-nacos")
public class OrderNacosController {

    @Resource
    public RestTemplate restTemplate;
    @RequestMapping("/orderAdd")
    public String orderAdd(){
        String stockMsg = restTemplate.getForObject("http://stock-service:8022/stock-nacos/stockReduct", String.class);
         return "下单成功" +stockMsg;
    }
}

新建StockNacosController

@RestController()
@RequestMapping("/stock-nacos")
public class StockNacosController {
    @RequestMapping("/stockReduct")
    public  String stockReduct(){
        return "stock-nacos调用成功";
    }

访问 http://localhost:8011/order-nacos/orderAdd 找不到服务
在这里插入图片描述
解决办法
在这里插入图片描述
重新访问 访问成功

负载均衡演示

复制8022
在这里插入图片描述
在这里插入图片描述
更新StockNacosController

Nacos 新建命名空间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保护阈值演示
为了防止服务雪崩,不可用的服务超过阈值,就可以访问不可用的服务
一般服务为临时服务,可通过配置设置为永久服务
在这里插入图片描述
设置永久实例

server:
  port: 8022
  # 服务名称
spring:
  application:
    name: stock-service
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        username: nacos
        password: nacos
        namespace: public
        ephemeral: false # 永久实例   服务宕机 也不会从注册中心剔除

在这里插入图片描述

重启8022 8023 通过编辑服务 设置阈值0.6 之后
在这里插入图片描述

停止 8023服务 访问 http://localhost:8011/order-nacos/orderAdd
8022成功
在这里插入图片描述

8023失败
在这里插入图片描述
下线: 下线的就是停止服务
在这里插入图片描述
**演示下线,就直接点击 8022的下线 **
访问http://localhost:8011/order-nacos/orderAdd 发现8022 8023都不可用

spring-cloud-alibaba(三)Nacos-Ribbon篇

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值