最全项目中使用Sentinel流量控制,nacos配置持久化,面试题+笔记+项目实战

最后

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性

Java面试宝典2021版

最常见Java面试题解析(2021最新版)

2021企业Java面试题精选

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

下载软件后,cmd启动

java -Dserver.port=8088 -jar sentinel-dashboard-1.8.1.jar

访问localhost:8088,默认账户密码 sentinel

此时页面为空,因为还没有监控任何服务。另外,sentinel是懒加载的,如果服务没有被访问,看不到该服务 信息。

项目中使用,在service模块添加依赖


<!-- 流量控制 -->

<dependency>

 <groupId>com.alibaba.cloud</groupId>

 <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>

</dependency>

在order模块配置文件


# 指定dashboard地址

spring.cloud.sentinel.transport.dashboard=127.0.0.1:8088

# 启动该服务,会在应用程序的相应服务器上启动HTTP Server,并且该服务器将与Sentinel dashboard进行交互

spring.cloud.sentinel.transport.port=8719

此时创建控制层访问就可加载到sentinel上

QPS流量控制,每秒查询率

当 QPS 超过某个阈值时,采取措施流量控制。流量控制的效果包括以下几种:直接拒绝、Warm Up、匀速 排队。

在sentinel中新增流量控制规则,就可以对访问进行限流处理,

热点规则:可以根据热点值,动态控制流量

使用java代码配置热点值限流,

OrderApiController添加方法


//构造方法

    public OrderInfoController(){

        initRule();

    }

    /**

     * 导入热点值限流规则

     * 也可在Sentinel dashboard界面配置(仅测试)

     */

    public void initRule() {

        ParamFlowRule pRule = new ParamFlowRule("submitOrder")//资源名称,与SentinelResource值保持一致

                //限流第一个参数

                .setParamIdx(0)

                //单机阈值

                .setCount(5);

        // 针对 热点参数值单独设置限流 QPS 阈值,而不是全局的阈值.

        //如:1000(北京协和医院),可以通过数据库表一次性导入,目前为测试

        ParamFlowItem item1 = new ParamFlowItem().setObject("1000")//热点值

                .setClassType(String.class.getName())//热点值类型

                .setCount(1);//热点值 QPS 阈值

        List<ParamFlowItem> list = new ArrayList<>();

        list.add(item1);

        pRule.setParamFlowItemList(list);

        ParamFlowRuleManager.loadRules(Collections.singletonList(pRule));

    }

编写控制层下单接口


@ApiOperation(value = "创建订单")

    @PostMapping("auth/submitOrder/{hoscode}/{scheduleId}/{patientId}")

    @SentinelResource(value = "submitOrder",blockHandler = "submitOrderBlockHandler")

    public R submitOrder(

            @ApiParam(name = "hoscode", value = "医院编号,限流使用", required = true)

            @PathVariable String hoscode,

            @ApiParam(name = "scheduleId", value = "排班id", required = true)

            @PathVariable String scheduleId,

            @ApiParam(name = "patientId", value = "就诊人id", required = true)

            @PathVariable Long patientId) {

        //调用service方法

        //返回订单号

        Long orderId = 1L; //orderService.saveOrders(scheduleId,patientId);

        return R.ok().data("orderId",orderId);

    }

    /**

     * 热点值超过 QPS 阈值,返回结果


## 最后

## 权威指南-第一本Docker书

引领完成Docker的安装、部署、管理和扩展,让其经历从测试到生产的整个开发生命周期,深入了解Docker适用于什么场景。并且这本Docker的学习权威指南介绍了其组件的基础知识,然后用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。

总共包含了:简介、安装Docker、Docker入门、使用Docker镜像和仓库、在测试中使用Docker、使用Docker构建服务、使用Fig编配Docke、使用Docker API、获得帮助和对Docker进行改进等9个章节的知识。

![image](https://img-blog.csdnimg.cn/img_convert/4ecd801d5eccf6c58f004fc7daf49eec.webp?x-oss-process=image/format,png)

![image](https://img-blog.csdnimg.cn/img_convert/a44398cdb037f56546c3f3db654e6fea.webp?x-oss-process=image/format,png)

![image](https://img-blog.csdnimg.cn/img_convert/0eea3a040a944a0f6093d3ddf3326d0d.webp?x-oss-process=image/format,png)

![image](https://img-blog.csdnimg.cn/img_convert/fa61322c1de6b2f550cdae5dcb387e20.webp?x-oss-process=image/format,png)

关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

了爱了!

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值