AlibabaCloud + Nacos + Sentinel使用

4 篇文章 1 订阅
1 篇文章 0 订阅

摘要

说明: 本代码禁用于学习总结,希望大家可以容忍代码存在的bug,遇到问题可以微信联系:372787553
本项目将用到微服务框架,如果你对微服务还比较陌生,可以去
https://github.com/Dylan-haiji/javayh-cloud 这里进行学习了解

一、项目结构

--javayh-cloud-nacos                 顶级 
    --javayh-nacos-common            工具包
    --javayh-nacos-provide           服务生产者
    --javayh-nacos-consumer          服务消费者
    --javayh-nacos-sentinel          服务监控

二、技术架构

  • SpringBoot
  • SpringCloud
  • SpringCloudAlibaba
  • Nacos
  • NacosConfig
  • Sentinel
  • Feign

三、Nacos介绍

关于nacos的安装这里不过多解说,很简单,百度一下就可以

1.简介

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

2.生态图

在这里插入图片描述

3.依赖
<dependency>
     <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
     <version>0.2.1.RELEASE</version>
 </dependency>

四、服务注册与调用

1.provider配置

这里需要注意:配置文件的名必须是bootstrap.xxx,否则会报空指针异常,由于文件的加载顺序导致

spring:
  application:
    name: javayh-nacos-provider
  profiles:
    active: provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        cluster-name: javayh-nacos
      config:
        group: javayh
        server-addr: 127.0.0.1:8848
        prefix: javayh-nacos-provider
        file-extension: yml     

这时启动服务在控制就可以看到服务
在这里插入图片描述
consumer配置 同provider配置,这里通过feign,进行服务调用,如果不了解feign的使用,请结合 https://github.com/Dylan-haiji/javayh-cloud进行学习
根结本案例的配置,调用接口:localhost:8091/consumer/find/{name},既可以看到效果

五、NacosConfig

1.NacosConfig配置

在这里插入图片描述
在这里插入图片描述
说明:

Data ID : prefix-active.file-extension

Group : group

配置文件格式与file-extension格式统一

需要在调用的方加上@RefreshScope注解,这时热加载,当你在改变配置时,会自动加载,无需重启服务

根据本案例的配置:更改user配置的值,调用接口http://localhost:9090/provider/getConfig 就可以发现效果,这里的端口其实就是读取的nacos的配置

六、Sentinel介绍

这里的安装也不多说,就是一个boot工程,运行jar即可,用户名和密码默认是sentinel

1.简介

分布式系统的流量哨兵,以流量为切入点,对比Redis的哨兵模式可以得出sentinel在微服务中的作用是对流量进行监控与管理,例如流量的控制,熔断降级,系统负载保护等。

由Sentinel的源码可以看出,Sentinel在对流量进行管控的时候是通过责任链的模式来处理的。在Restful中,将系统的一切定义为资源,sentinel在此处也借鉴了此种思想,将需要流量控制的一切当做资源,然后定义一系列的规则来对资源进行处理。

2.依赖
  <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
  </dependency>
3.配置
  spring:
    application:
      name: javayh-nacos-sentinel
    profiles:
      active: sentinel
    cloud:
      sentinel:
        transport:
          dashboard: 127.0.0.1:8080
4.控制台

http://localhost:8080
启动服务调用接口: http://localhost:8092/getSentinel/ssss,效果如下
在这里插入图片描述

-服务限流 如图;对本案例的借口进行限流操作,最多连续出发三次,但第四次是会出现图而的提示
在这里插入图片描述
在这里插入图片描述
其他功能大家可以尝试 本案例代码:https://github.com/Dylan-haiji/javayh-cloud-nacos

关注 Java有货领取更多资料

联系小编。微信:372787553,带您进群互相学习
左侧小编微信,右侧获取免费资料
在这里插入图片描述

技术博客:https://blog.csdn.net/weixin_38937840

SpringCloud学习代码: https://github.com/Dylan-haiji/javayh-cloud

Redis、Mongo、Rabbitmq、Kafka学习代码: https://github.com/Dylan-haiji/javayh-middleware

AlibabaCloud学习代码:https://github.com/Dylan-haiji/javayh-cloud-nacos

SpringBoot+SpringSecurity实现自定义登录学习代码:https://github.com/Dylan-haiji/javayh-distribution

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨同学~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值