- 博客(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实战(二)、负载均衡
上一篇文章中的路由案例,是在网关中直接写好要路由到的地址,实际开发中的服务更多是注册在注册中心中。通过网关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
原创 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
原创 浅尝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 一
小结 :对于一般的浮点数计算,round()和字符串格式化通常已经足够。如果需要进行精确的十进制运算,应该使用decimal模块。浮点型字符串 123.2 直接转成int 类型,会报错。可以先转换成float ,然后再转成int。整数型字符串 5 可直接转成int 类型。
2023-07-18 06:42:04
382
原创 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
原创 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
2025-03-12
springdataSolrDemo.rar
2020-05-28
SpringDataRedis.rar
2020-05-21
读取文件数据并解析成不同数据类型,然后写入磁盘文件。附加功能:对字符串以逗号分割成字段,字段内含逗号
2019-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人