最后
光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性
Java面试宝典2021版
最常见Java面试题解析(2021最新版)
2021企业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)**