美文网首页
spring cloud alibaba 实战篇(一)——nac

spring cloud alibaba 实战篇(一)——nac

作者: 那一只羊 | 来源:发表于2020-05-21 11:30 被阅读0次

必看

因为之前了解过alibaba对spring cloud框架的封装升级,所以,自己抽时间尝试用了用。在这个过程中,我也参考相关博客的文章,但是不得不说,文章基本缺胳膊少腿,参考别人博客来,基本不要想跑起来。所以,自己在填坑的过程中,基本把整套流程全部跑通了,并且各组件也都用来起来。按照我的节奏来,保证大家能够正常的将spring cloud alibaba这套框架用起来。并且我也会在最后把我遇到的坑写出来,供大家参考。也希望大家在尝试的过程中,多返过去思考下这个框架更细节的东西和原理。

本文参考博客:https://blog.csdn.net/autfish/article/details/90173658

我在博客中基本都是使用截图,截图都是全的,不会漏掉全部配置,代码的话,建议大家自己写一遍。

正文

参考博客建立了两个服务,如图:

nacos是做什么的:

类似于spring cloud  eureka 和  spring cloud config的结合;提供服务注册和配置中心的功能

nacos的安装:

下载地址:https://github.com/alibaba/nacos/releases

这里以windows进行示例,Linux参考其他。

本文使用的是nocos的1.2.1版本

运行:如图所示,双击nacos文件bin目录下的startup.cmd

运行成功:

nocos默认使用的端口是8848(珠穆朗玛峰的高度)

浏览器访问:

默认账号密码:nacos

创建一个springBoot模块:payment-service

大家可以看我的项目结构:

编辑payment-service中pom.xml文件:

填坑说明:我这里使用的版本和博客版本不一致,在集成的过程中,因为存在版本冲突问题,将springBoot的版本和SpringCloud版本都换了

版本 dependencyManagement

添加nocos相关包:

nocos-conif配置中心包

编写实体Balance.java:

public class Balance {

private int id;

    private int diamond;

    private int ticket;

 private Stringmessage;

//填坑说明:当时在这里的时候少写了一个空构造方法,所以这个类在反序列化的时候报错了,记得不要漏了。

    public  Balance (){

}  

public Balance (int id,int diamond,int ticket){

this(id,diamond,ticket,"OK");

    }

public Balance(int id, int diamond, int ticket, String message) {

this.id = id;

        this.diamond = diamond;

        this.ticket = ticket;

        this.message = message;

    }

}

添加配置文件:application.yml

添加配置文件:bootstrap.yml

其中 server-addr即Nacos监听IP和端口

创建PaymentController:

@RestController

@RefreshScope

public class PaymentController {

// nacos config  会覆盖yml的原始配置,并且要求yml参数必须有。否则保持。同一配置文件组要求参数一样

    @Value("${sleep}")

private int sleep;

    @Value("${name}")

private Stringname;

    private static final Loggerlogger= LoggerFactory.getLogger(PaymentController.class);

    final static MapbalanceMap =new HashMap() {{

put(1, new Balance(1, 10, 1000));

        put(2, new Balance(2, 0, 10000));

        put(3, new Balance(3, 100, 0));

      }

};

    @RequestMapping("/pay/balance")

public BalancegetBalance(Integer id) {

System.out.println("我的名字="+name);

        System.out.println("request: /pay/balance?id=" + id +", sleep: " +sleep);

        if(sleep >0) {

try {

Thread.sleep(sleep);

            }catch (InterruptedException e) {

e.printStackTrace();

            }

}

if(id !=null &&balanceMap.containsKey(id)) {

return balanceMap.get(id);

        }

return new Balance(0, 0, 0);

    }

}

启动服务试着访问下:

接下来我们开始使用nocos在线配置功能:

新建一个配置文件:

nacos是动态配置,发布后,可以立即尝试刷新访问地址,我们可以看到,nacos的在线配置已经覆盖了我们的yml文件

到这里,nacos作为动态配置中心就完毕了。

下一篇:spring cloud alibaba 实战篇(二)——nacos注册中心

相关文章

网友评论

      本文标题:spring cloud alibaba 实战篇(一)——nac

      本文链接:https://www.haomeiwen.com/subject/juxzohtx.html