- 博客(439)
- 资源 (3)
- 收藏
- 关注
原创 Redis缓存优化、本地锁及分布式锁的入门使用思想实现
redis的key是不能进行重复的,否则数据会覆盖,同时也不会通过硬编码的形式写死在储存的key位置上,这样不便于后面的维护,一般都是通过定义枚举、接口、静态类进行统一的描述key的使用,这样在后面需要进行key重新定义的时候就可以一处修改处处生效/**单位:秒 尝试获取锁的最大等待时间*/ public static final long SKULOCK_EXPIRE_PX1 = 1;
2022-12-09 08:17:37 976 12
原创 javaWeb项目部署到阿里云服务Linux系统
如果没有购买到云服务器的话也可以在虚拟机中进行部署,环境搭配等等都是一样的操作我的阿里云服务器配置系统CentOS7.964位CPU&内存2核(vCPU)2GiB本地电脑连接软件以及上传文件软件Xshall7&Xftp7或者FinalShell3.9.2.2(推荐)......
2022-07-18 07:44:26 4568 41
原创 快速入门Freemarker模块引擎技术
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言,不是像PHP那样成熟的编程语言。那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。
2023-01-10 11:07:34 1138 3
原创 Sentinel规则持久化
将限流配置规则持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台的流控规则就能看到,只要Nacos里面的配置不删除,针对8401上sentinel上的流控规则持续有效1.2、修改YAML配置文件2、添加Nacos业务规则配置访问:http://localhost:8401/rateLimit/byUrl查看Sentinel控制台是否有流控规则关闭8401访问,流控规则消失再次重启访问,并请求一次被Sentinel监控到流控规则出现
2022-12-08 08:34:15 715 4
原创 Sentinel服务熔断功能
2、添加YAML配置文件3、添加主启动类4、业务控制器5、测试地址返回的数据内容1.3、消费者841、新建cloudalibaba-consumer-nacos-order842、引入Pom.xml依赖3、添加YAML配置文件4、添加主启动5、负载均衡远程调用配置6、业务控制器实现7、测试访问地址:http://localhost:84/consumer/fallback/28、修改后请重启微服务热部署对java代码级生效及时对@SentinelRe
2022-12-08 08:31:21 1067 7
原创 @SentinelResource注解的使用
*** 描述:自定义异常处理类,必须是静态的并且返回值与控制器的一样*return new CommonResult(2022 , "使用了自定义的异常处理类------1");return new CommonResult(2022 , "使用了自定义的异常处理类------2");} }./*** 描述:自定义异常处理类,必须是静态的并且返回值与控制器的一样*return new CommonResult(2022 , "使用了自定义的异常处理类------1");
2022-11-30 09:21:36 1446 8
原创 Sentinel热点key限流
热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:- 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制- 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制,仅对包含热点参数的资源调用生效。
2022-11-30 09:07:28 561 3
原创 记录ElementUIPlu使用图标不起效问题
跟着官网提供的方法进行安装依赖,通过svg可以显示图标出来入如果使用标签引入就不起效如下记录1、官方说的是拉取2、官网拷贝的图标。
2022-11-27 09:43:43 1334 2
原创 Sentinel熔断降级
官网地址:https://github.com/alibaba/Sentinel/wiki/熔断降级[0.0, 1.0]注意异常降级,对 Sentinel 限流降级本身的异常()不生效。为了统计异常比例或异常数,需要通过记录业务异常。
2022-11-25 07:18:15 1399 6
原创 Sentinel流控规则
唯一名称,默认请求路径(如:http://localhost:8089/testA)针对来源:Sentinel可以针对调用者进行限流,填写微服务名,指定对哪个微服务进行限流 ,默认default(不区分来源,全部限制):不需要集群。
2022-11-25 07:09:03 2932 5
原创 SpringCloud Alibaba Sentinel实现熔断与限流
GitHub中文版地址:https://github.com/alibaba/Sentinel/wiki/主页官网地址:https://sentinelguard.io/zh-cn/随着微服务的流行,服务和服务之间的稳定性变得越来越重要。是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
2022-11-17 07:59:11 1322 8
原创 Nacos2.1.1集群和持久化配置以及Nginx负载均衡分发(重点)
对如上图片进行翻译如下根据下图,需要配置MySQL作为持久化保存Nacos的信息在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql2.2、derby到mysql切换配置步骤将上面的脚本在本地的mysql中创建一个新的数据库,然后执行上面sql脚本生成数据库的具体内容重启Nacos预计需要,1个Nginx+
2022-11-16 07:56:06 1938 11
原创 Nacos 作为服务配置中心演示
比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一个集群名称(HZ),给广州机房的Service微服务起一个集群名称(GZ),还可以尽量让同一个机房的微服务互相调用,以提升性能。Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。当我们修改Nacos中的配置文件时,再次通过请求上面的接口就会发现拉取的配置文件已经更新了,不需要再像之前那样通过。
2022-11-10 09:23:24 1295 8
原创 SpringCloud Alibaba Nacos服务注册和配置中心
GitHub地址:https://github.com/alibaba/Nacos中文官网地址:https://nacos.io/zh-cn/
2022-11-07 07:42:06 2362 21
原创 SpringCloud Sleuth分布式请求链路跟踪
Git官网地址:https://github.com/spring-cloud/spring-cloud-sleuth官网地址:https://spring.io/projects/spring-cloud-sleuth在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。
2022-11-02 05:52:36 815 4
原创 SpringCloud Stream消息驱动
在没有绑定器这个概念的情况下,我们的SpringBoot应用要直接与消息中间件进行信息交互的时候,由于各消息中间件构建的初衷不同,它们的实现细节上会有较大的差异性通过定义绑定器作为中间层,完美地实现了应用程序与消息中间件细节之间的隔离。通过向应用程序暴露统一的Channel通道,使得应用程序不需要再考虑各种不同的消息中间件实现。Binder可以生成Binding,Binding用来绑定消息容器的生产者和消费者,它有两种类型,INPUT和OUTPUT,INPUT对应于消费者,OUTPUT对应于生产者。
2022-11-01 06:06:26 896 15
原创 SpringCloud Bus消息总线
在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。
2022-10-27 10:22:01 1328 10
原创 SpringCloud Config分布式配置中心
官网地址:https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.1.RELEASE/reference/html/
2022-10-25 08:48:18 1091 1
原创 Gateway新一代网关
web请求,通过一些匹配条件,定位到真正的服务节点。并在这个转发过程的前后,进行一些精细化控制。predicate就是我们的匹配条件;而filter,就可以理解为一个无所不能的拦截器。有了这两个元素,再加上目标uri,就可以实现一个具体的路由了需要实现两个主要的接口全局日记记录统一网关鉴权…./*** 描述:全局日记过滤器*log . info("---------- 进去全局过滤方法 MyLogGateWayFilter: " + new Date());
2022-10-19 07:55:38 3163 26
原创 hystrixDashboard服务监控
除了隔离依赖服务的调用以外,Hystrix还提供了),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Spring Cloud也提供了Hystrix Dashboard的整合,对监控内容转化成可视化界面。
2022-10-18 10:55:51 683 2
原创 hystrix服务熔断和限流
熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。在Spring Cloud框架里,熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。熔断机制的注解是@HystrixCommand。
2022-10-13 08:22:14 2315 6
原创 SpringBoot使用注解整合Redis
Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。
2022-10-11 12:13:16 386 2
原创 Hystrix断路器入门1
Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。“断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常。
2022-10-07 09:39:09 512 15
原创 OpenFeign服务接口调用
Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡源码地址:https://github.com/spring-cloud/spring-cloud-openfeign。
2022-10-04 08:53:52 1618 19
原创 Ribbon负载均衡(客户端)服务调用,自定义负载均衡
在订单消费者模块中的控制器添加如下代码/*** 注入自定义的负载均衡策列/*** 注入服务发现/*** 通过自己的负载均衡策列访问服务提供者端口返回* @return// 根据服务名称查询具体的服务列表 List < ServiceInstance > instances = discoveryClient . getInstances("CLOUD-PAYMENT-SERVICE");
2022-09-27 07:02:54 868 5
原创 Consul服务注册与发现
官方地址:https://www.consul.io/intro/index.html中文学习地址:https://www.springcloud.cc/spring-cloud-consul.htmlHashiCorp Consul是一个服务网络解决方案,它使团队能够管理服务之间以及跨平台和多云环境和运行时的安全网络连接。。您可以单独使用这些功能,也可以在单个Consul部署中一起使用这些功能。安装并运行Consul。
2022-09-26 06:16:11 741 13
原创 Discovery服务发现与Eureka自我保护机制及总结步骤
保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据,也就是不会注销任何微服务。默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区故障发生(延时、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,
2022-09-22 06:05:42 766 7
原创 Discovery服务发现与Eureka自我保护机制及总结步骤
保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据,也就是不会注销任何微服务。默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区故障发生(延时、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,
2022-09-19 06:40:39 825 15
原创 wangeditor5在vue3中的全使用过程(图片上传、附件上传、工具栏配置、编辑器配置)
官方文档地址:https://clinfc.github.io/wangeditor5-for-vue3/guide/说明为说明要编写这编博客文章?官方文档的使用手册对于新手来说比较的难看懂,写的也不够详细,源码的封装比较深。写博客的目的是为了详细讲解一个适合项目使用的wangeditor的基本全过程,适合直接复制使用和修改(原官方文档使用原生js编写)
2022-09-18 12:53:19 18834 19
原创 EureKa服务注册与发现(集群部署Eureka与支付模块集群部署、订单模块访问负载均衡调用支付服务实现)
Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。Eureka采用了CS的设计架构,Eureka Server 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用 Eureka的客户端连接到 Eureka Server并维持心跳连接。
2022-09-15 08:00:00 1063 10
原创 j2cache入门使用
j2cache是OSChina目前正在使用的两级缓存框架。L1: 进程内缓存 caffeine/ehcacheL2: 集中式缓存 Redis/Memcachedj2cache其实并不是在重复造轮子,而是作资源整合,即将Ehcache、Caffeine、redis、Spring Cache等进行整合。由于大量的缓存读取会导致L2的网络成为整个系统的瓶颈,因此L1的目标是降低对L2的读取次数。该缓存框架主要用于集群环境中。单机也可使用,用于避免应用重启导致的ehcache缓存数据丢失。...
2022-09-01 08:42:34 912 18
原创 Java权限认证机制之JWT令牌生成和解析以及SpringMVC参数解析器
HTTP Basic Auth 是一种简单的登录认证方式,Web浏览器或其他客户端程序在请求时提供用户名和密码,通常用户名和密码会通过HTTP头传递。简单点说就是每次请求时都提供用户的username和password这种方式是先把用户名、冒号、密码拼接起来,并将得出的结果字符串用Base64算法编码。例如,提供的用户名是bill、口令是123456,则拼接后的结果就是,然后再将其用Base64编码,得到。最终将Base64编码的字符串发送出去,由接收者解码得到一个由冒号分隔的用户名和口令的字符串。...
2022-08-31 13:48:11 1562 5
原创 快速入门logback日志框架与SpringEvent事件通知机制
Logback继承自log4j。Logback的架构非常的通用,适用于不同的使用场景。通过上图可以看到logback和Log4j都是slf4j规范的具体实现,我们在程序中直接调用的API其实都是slf4j的api,底层则是真正的日志实现组件—logback或者log4j。Logback 构建在三个主要的类上:Logger,Appender 和 Layout。这三个不同类型的组件一起作用能够让开发者根据消息的类型以及日志的级别来打印日志。Logger作为日志的记录器,把它关联到应用的对应的context后
2022-08-31 09:05:40 378 2
原创 AntiSamy防跨站脚本攻击(XSS)快速入门
XSS:跨站脚本攻击(Cross Site Scripting),为不和 CSS混淆,故将跨站脚本攻击缩写为XSS。XSS是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。有点类似于sql注入。...
2022-08-29 19:28:24 964 4
原创 hibernate-validator后端表单数据校验的使用
早期的网站,用户输入一个邮箱地址,需要将邮箱地址发送到服务端,服务端进行校验,校验成功后,给前端一个响应。有了JavaScript后,校验工作可以放在前端去执行。那么为什么还需要服务端校验呢?因为前端传来的数据不可信。前端很容易获取到后端的接口,如果有人直接调用接口,就可能会出现非法数据,所以服务端也要数据校验。前端校验:主要是提高用户体验后端校验:主要是保证数据安全可靠校验参数基本上是一个体力活,而且冗余代码繁多,也影响代码的可读性,我们需要一个比较优雅的方式来解决这个问题。...
2022-08-29 14:02:07 1425 2
自研C#大二酒店管理系统
2022-06-15
大一完成图书管理系统附带数据库文件
2022-03-25
引入Feign接口模块Swagger配置报错
2023-01-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人