自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小浪与艳花

学习笔记

  • 博客(122)
  • 资源 (4)
  • 收藏
  • 关注

原创 Sentinel实战(五)、系统保护规则、限流后统一处理及sentinel持久化配置

*注意:**在Nacos控制台上修改流控制,虽然可以同步到Sentinel Dashboard,但是Nacos此时应该作为一个流控规则的持久化平台,所以正常操作过程应该是开发者在Sentinel Dashboard上修改流控规则后同步到Nacos,遗憾的是目前Sentinel Dashboard不支持该功能。之前热点规则里做的限流方式,限流之后的处理是在业务代码里比较麻烦,在一个很多其他接口被限流也需要处理,我们可以专门指定一个类,统一做定各种场景的限流处理。接口若被限流,则走该限流处理类的方法逻辑。

2025-04-05 17:40:58 89

原创 Sentinel实战(四)、热点规则

说到热点规则,我们首先要了解一个概念,就是热点数据:比如电商系统中的畅销品,以及比较活跃的用户等类似这些在系统中比较活跃的数据,即经常被访问的这种数据,就是热点数据;通常我们倾向去了解这些排名靠前的【热点】数据,并且对处理热点数据的业务资源进行管控,涉及到这种热点数据的流控,就可以通过热点规则去设置。相比流控规则而言,热点参数的粒度更加细致,因为它具体细化到参数,以及参数位置。关于热点数据的例子,官方也给出具体描述场景:1、商品ID为参数,统计一段时间内最常购买的商品ID并进行限制。

2025-04-05 13:49:51 52

原创 Sentinel实战(三)、流控规则之流控效果及流控小结

关于流控规则,主要围绕 :阈值类型,流控模式,流控效果这三个维度,做的测试以及释义,当然最主要还是实际应用场景,下面是具体阐述这三个维度组合起来,分别适合哪些特点的场景,以及实际对应的业务场景案例, 还有配置时注意事项。结合系统硬件资源(如cpu ,磁盘,内存,网络等)、资源重要度(业务的核心程度级别)以及历史流量峰值【大促期间和日常流量】,准确预估阈值,作为摸底性能测试基础数据,在此基础上,中小厂2到3倍,大厂10-20倍,留足余量,以此标准作压力测试期望指标,以系统实际性能指标,作为阈值依据。

2025-04-02 13:24:28 130

原创 Sentinel实战(二)、流控规则之流控阈值类型、流控模式

链路流控模式指的是,当某个接口过来的资源达到限流条件时,开启限流,他的功能有点类似针对来源配置项,区别在:针对来源是针对上级微服务,而链路流控是针对上级接口,它的粒度更细,比如微服务中,两个接口都调用统一个service的方法,且该方法用了SentinelResource(用于定义资源)注解标注了,然后对该注解标注的资源(方法)进行配置,则可以选择链路模式。通俗理解,a接口依赖b接口,当a关联的资源b达到阈值后,就限流a本身,举个例子:在电商系统中,支付接口达到阈值,就对下单进行限流。

2025-03-31 12:29:44 149

原创 Sentinel实战(一)、1、sentinel介绍、安装及初始化服务监控

除了流控,降低调用链路中不稳定资源也是Sentinel使命之一。基于调用关系的复杂性,调用链路中某资源不稳定,会出现请求堆积的情况。不稳定通常指 超时timeout或异常比例升高等情况,可以对该资源的调用进行限制,并且出现不稳定情况时让请求快速失败,避免影响其他资源,避免产生雪崩。雪崩,是指微服务架构中,某个基础服务出现故障不可用,直接导致依赖它的其他服务也无法正常工作,引发故障蔓延在整个系统中,最终导致整个系统崩溃的现象。处理雪崩效应的措施之一,可以通过 熔断机制。

2025-03-30 17:36:54 198

原创 Gateway实战入门(四)、断言-请求头以及请求权重分流等

手机APP,新业务迭代,对于老版本app也要做兼容,但老app界面框架无法更改(涉及到合规和用户体验的考量,一般不会选择强制更新),这时就会有相同业务不同api版本的诉求。而落地实现的方式之一,可以基于spring cloud 的gateway 的断言来实现,通过断言做API版本隔离,不同版本路由到不同的服务;话不多说直接上实例。Query:需要指定一个或者多个参数,一个必须参数和一个可选的正则表达式,匹配请求中是否包含第一个参数,基于 此断言的Header信息里用户的角色,将请求路由到不同的资源或服务。

2025-03-29 14:41:00 290

原创 Gateway实战(三)、断言-时间、Cookie信息

spring cloud Alibaba-Gateway实战(三)、断言

2025-03-28 16:21:09 168

原创 Gateway实战(二)、负载均衡

上一篇文章中的路由案例,是在网关中直接写好要路由到的地址,实际开发中的服务更多是注册在注册中心中。通过网关gateway服务访问提供者接口,在前端访问相同接口,根据接口响应可以看出,访问的请求会路由到9001和9002两个服务。上面的自动负载均衡案例,存在暴漏当前服务名称的问题,可以通过手动配置负载均衡,有效规避暴漏服务名称的问题。配置路由,访问服务时,增加断言指定的路径,会映射到对应uri的服务,从找找到对应接口。在主启动类增加服务发现注解,服务启动后会注册到nacos注册中心;

2025-03-28 14:09:28 604

原创 Gateway实战(一)、网关基本了解、配置路由案例实操

客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性;每个微服务都有独立认证,认证比较复杂存在跨域请求,在一定场景下处理相对复杂由此引入网关的概念:网关可以用来做系统的统一入口,为客户端提供统一的服务,作为内部服务的路由中转,跟业务本身无关的,公共性质的逻辑都可以在网关实现,比如认证,鉴权,路由转发等。

2025-03-28 14:07:40 455

原创 Nacos入门实战(二)配置中心及配置实战

通过克隆现有配置即可,修改Data Id为prod环境可以编辑配置信息为prod,用来区分;然后发布;

2025-03-13 19:51:14 946

原创 2min搞定~Mac Pro 编译安装 Nginx 1.8.1

代码中, 192.168.0.111:8010、 192.168.0.111:8030、192.168.0.111:8050 这三个ip端口对应的服务,统一改成 192.168.0.111:80 即可。== ,还有 == proxy_pass http://item;老铁别嫌我啰嗦奥,先听我简单说下安装流程,做到每一步心中有数,哈哈~如果有同学需要在本地搭建集群,可以继续看下面nginx的配置部分。至此,我的nginx就安装好了,安装路径为。避免后面的小伙伴下载不了,我备了一份,上面是我之前下载用的。

2025-03-12 22:33:33 937

原创 Nacos入门实战(一)服务调用

Spring Cloud中,Ribbon和OpenFeign紧密集成,OpenFeign在调用远程服务时,使用Ribbon进行负载均衡。这种声明式服务调用,好处在于接口指名服务名称,就可以帮助实现服务中心的发现,接口调用实现服务的远程调用,即服务发现,负载均衡以及服务调用的一个功能。Ribbon的简单了解:它主要负责客户端的负载均衡,可以在调用多个服务实例时,根据负载均衡算法选择一个实例进行调用。是用来做服务发现,配置和管理微服务的。实现了动态服务发现,服务配置,服务元数据及流量管理。

2025-03-11 13:09:55 858

原创 接口优化方案

接口优化方案之并发编程

2025-03-06 18:32:36 277

原创 redis序列化设置

redis序列化设置,通过自定义redisTemplate配置。

2025-02-27 17:29:24 290

原创 java基础1:处理Map

想保证并发安全,还要保持较好性能,ConCurrentSkipListHashMap就是很不错的选择,时间复杂度O(logn) ,推荐使用。单线程情况下,用TreeMap时间复杂度O(logn),性能较好,推荐。1、获取map集合里,获取 max(value)对应的key。

2024-12-27 21:54:12 349

原创 接口自动化之几种登陆情况

背景:企业一般接口调用,出于对系统的安全性和客户信息安全性保障,很多操作需要为登陆态【即接口调用入参要有登陆的cookie信息】才能成功调用。如果同学要做接口自动化,很多接口,必然先写登陆脚本。我比较懒, 忽略证书,直接通过 的认证方式,那么如何知道你的登陆脚本需要这个呢:写完脚本调试,会出现如下报错:废话不多说,直接抛解决方案:登陆宝子们,这里账号信息和登陆链接 要替换为你要访问的网站哈!!!2、需要图形验证码的登陆在登陆界面,输入用户名密码,考虑到安全因素,网站的登陆一般会有些验证类的措施

2024-07-20 11:27:44 337

原创 一、评估代码质量好坏的几个维度

1、面向对象的思想(基础)2、设计原则(抽象概念,规范设计的基本原则)3、设计模式(遵从设计原则前提,代码模式的具体实现)4、编程规范(提高代码可读性)5、重构(融合以上四种:面向对象设计思想,设计原则,设计模式,编程规范)设计模式是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。就是人们写的代码多了,逐渐总结出的一套能提高开发和维护效率的代码模式,即为设计模式。学习设计模式的好处😋都有啥呢在面试中从容应对设计模式相关的问题代码质量有所提升。

2024-06-28 18:30:00 1207

原创 springboot发送邮件,内容使用thymeleaf模板引擎排版

在resources下,在路径templates/mail/下添加文件list.html。

2023-12-15 19:00:00 1138

原创 Docker(六)、Docker-compose简单了解

Docker-compose 容器编排,比如一个java应用,涉及到mysql,tomcat ,redis ,nginx等。docker可以通过脚本实现先后安装 各个容器,每个容器需要的依赖文件都做了关系绑定,只需要使用docker的容器编排工具。

2023-10-21 06:00:00 645

原创 Docker(五)、容器间数据共享~volume

挂载宿主机目录, 在宿主机目录/usr/webapps 新建文件夹v-test1 ,在文件夹里新建index.html ,随便写点什么。容器间数据共享,核心原理就是在宿主机开辟一块空间,被其他容器共享,实现容器间文件内容的共享,只需少量的改动,其他容器都会生效。在宿主机目录/usr/webapps 新建文件夹v-test1 ,在文件夹里新建index.html ,随便写点什么。volume数据卷的设置有两种方式,下面会进一步表述。ps:路径不能写错,区分大小写。数据卷,即保存数据的单位。

2023-10-21 01:00:00 659

原创 Docker(四)、容器间通信

单向通信就是两个容器间,由A向B单向建立网络连接,eg:tomcat应用单向的从mysql容器提取数据即可,mysql不需要知道tomcat容器的存在,扩展:docker容器的虚拟ip,即在每个容器创建以后,都会创建一个虚拟ip,无法从外侧直接访问,只是在docker环境中,内部彼此通信的一个标识,2个容器创建以后,彼此之间互联互通,每创建一个容器,ip地址都会变化,如果更换mysql容器,则需要重启tomcat应用并重新指向新的数据库容器,所以容器间通信不建议使用ip进行通信。

2023-10-18 08:00:00 2041

原创 mac,linux环境的基础工具安装【jdk,tomcat】

安装一 JDK安装卸载:二 tomcat 安装1、[下载](https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.63/bin/apache-tomcat-8.5.63.tar.gz)后,在目录 `/usr/local/tomcat`下,解压缩2、配置tomcat以及jdk环境变量3、进入conf文件夹 vi server.xml 编辑配置文件,红色为调整内容,编辑后保存。4、验证是否配置成功:三、mysql 安装一 JDK安装官网下载: jd

2023-10-11 19:30:00 938 1

原创 Docker(二)、linux环境Docker的部署以及构建镜像

docker部署以及构建镜像

2023-09-26 21:25:56 769

原创 Docker(三)、Dockerfile探究

适合想了解更多关于Dockerfile 的小伙伴。

2023-09-26 21:25:47 611

原创 Docker-基本了解

docker 基本了解

2023-09-26 18:30:00 493

原创 Docker(一)、linux环境安装Docker

docker安装

2023-09-24 19:25:29 499

原创 python有关时间的工具

提供处理时间的函数,包括获取当前时间,时间戳转换,等待指定时间等操作。可以使用它执行日期和时间的加减运算。

2023-08-18 08:00:00 484

原创 浅尝python 四

想要调用匿名函数,需要使用变量保存# 如果想要调用匿名函数,需要使用变量保存,调用方式为: 变量名(参数),如下输出:3调用lambda 定义的匿名函数,使用变量保存输出:18。

2023-08-17 19:45:00 571

原创 浅尝python 三

空字典} {非空字典# 小强,27,1.81,爱好:射箭,爬山,夜骑,看书 myDict = {'name' : '小强' , 'age' : 27 , 'height' : '181cm' , 'hobby' : [ '射箭' , '爬山' , '夜骑' , '看书' ] } print(myDict) 输出: {

2023-07-27 21:00:00 905

原创 jmeter随记3:常用jmeter功能(附带场景)

场景2:用户登陆后返回的token ,修改用户手机号的时候http信息头管理器需要用到token信息。可以写到http请求默认值里【主要填写的部分:通讯协议,请求的内容编码,服务器域名】;请求路径带变量 ,eg:如 www.baidu.${a} ,a的值为com。这样http请求就不需要写域名了,只需要写请求方式和请求路径及入参。场景1:下单接口的订单号,作为查询物流信息接口的入参。场景3 a接口返回值为数组里的字段值是b接口需要的。实现它的作用:上一个接口返回值是其他接口的入参。

2023-07-23 19:20:19 719

原创 jmeter随记1:发请求执行并查看结果

聚合报告可以看执行结果,有请求数sample ,平均值,tp90,tp95 ,tp99 最小值,最大值,错误率,吞吐量等信息。post请求界面,参数是用Body Data传值,json格式,然后httpRequest传值GET调整为POST。聚合报告是展示请求数,qps,平均响应时间,吞吐量等信息,主要看接口调用的情况的。不喜勿喷,目前只写我接触到的,后续会持续更新。step1 : 创建请求之前先创建线程组:在。在jmeter线程组创建请求:右击。step2:创建http请求。step3:创建响应断言。

2023-07-23 12:04:33 1460

原创 jmeter随记2:压测

需要关注的点:一般你会有一个压测指标,eg:以接口平均响应时间控制在500ms内,进行压测,压测并发数要参照线上qps流量设置,比如线上100,那你可以按正式环境qps 的3倍或者10倍去压。11502 个请求,消耗 14s,qps:802.3/s ,平均值:334 ,最小值64,最大值:3163 ,错误率0(0%),活跃线程数300个【基本含义就是设置压测300个并发】,结束:0。关于压测,jmeter更直观的作用是用来编写压测脚本【请求和压测策略】,然后在服务器上执行。d、保存并保存为 xx.jmx。

2023-07-23 11:37:22 695

原创 2min搞定 mac pycharm新建&导入python项目

然后重新执行刚才的下载类库命令,会提示成功,打印你刚才设置的venv路径,表示下载的类库存储到此位置。文件内容如下:这里面都是一些开发需要的类库,小伙伴们可以按自己实际需要摘取或者自行补充。导入项目没什么可说的,直接点击file ->open ,选择你的python项目即可。用户存储类库的,所以可以放到wkspace里,存放在venv 里。‘等同于java里的pom.xml ,这里写的都是需要下载的类库’就选择你配置的环境变量别名就可以,如果不记得,打开终端输入。前置条件:设置好python的环境变量。

2023-07-20 20:45:00 5302

原创 浅尝python 二

python基本数据类型的操作

2023-07-19 12:00:00 883

原创 浅尝python 一

小结 :对于一般的浮点数计算,round()和字符串格式化通常已经足够。如果需要进行精确的十进制运算,应该使用decimal模块。浮点型字符串 123.2 直接转成int 类型,会报错。可以先转换成float ,然后再转成int。整数型字符串 5 可直接转成int 类型。

2023-07-18 06:42:04 382

原创 python简单使用【mac:pycharm】

python基础语法及pycharm简单使用

2023-07-10 15:42:19 1979

原创 vue初体验1:新建vue3项目并启动访问(mac)

HBuilderX集成了多种开发工具和语言,包括HTML、CSS、JavaScript、TypeScript、Vue.js、React等,可以帮助开发者更高效地进行Web前端开发。可以快速构建vue的工具,自动安装vue所需要的插件,避免手动安装各种插件,以及寻找各种cdn并一个一个引入的麻烦。2、集成了多种调试工具和模拟器,可以在不同的设备和浏览器上进行实时调试和预览,有助于更快的定位和解决问题。3、有多种代码重构和自动化工具,如代码格式化、自动缩进、自动补全等,有助于更规范和高效地编写代码。

2023-07-05 18:45:00 5215

原创 我去!!mac初体验,快捷键码走

分享mac 使用 希望朋友们可以省去 我花的时间。

2023-07-04 09:15:00 1259

原创 redis入门实战一、五种数据结构的基本操作(二)

连库命令:【默认连6379 0 号库】:redis-cli【指定连6380端口的redis服务】:redis-cli -p 6380【指定连6380端口 8号库的redis服务】: redis-cli -p 6380 -n 8登录之后输入eg:查库里有哪些key:keys *

2023-03-20 15:20:09 1226

原创 5min完成linux环境Jenkins的安装

下载jenkins +启动jenkins+安装jenkins +创建管理员账户 +过程中遇到的问题解决

2023-02-14 14:04:55 2787

zlib-1.3.1.tar.gz pcre-8.40.tar.gz nginx-1.8.1.tar.gz

nginx-1.8.1.tar.gz源码+编译源码的相关依赖:zlib-1.3.1.tar.gz + pcre-8.40.tar.gz

2025-03-12

DegignPattern.rar

策略模式实例,单例模式(懒汉最优实例【饿汉模式的几种写法】,经典饿汉模式)后面会持续追加其他设计模式

2020-06-05

springdataSolrDemo.rar

springdatasolr实用demo,可用来做搜索引擎提升服务器性能,底层封装了solrj ,solrhome里schema.xml配置了自定义域,拷贝域用来检索,在tomcat里

2020-05-28

SpringDataRedis.rar

1 该spring系列框架实现了对jedis以及jredis,rjc的高度封装 2通过简单配置实现对redis的操作,使用更加简单方便 3可直接应用到项目中

2020-05-21

读取文件数据并解析成不同数据类型,然后写入磁盘文件。附加功能:对字符串以逗号分割成字段,字段内含逗号

1读取磁盘文件数据,并解析成对象,然后写入磁盘另一个文件 2读取文件数据并解析成不同数据类型,然后写入磁盘文件。附加功能:对字符串以逗号分割成字段,字段内含逗号

2019-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除