自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 redis 实现令牌桶 限速器

在上述代码中,我们定义了一个RedisRateLimiter类,它使用Redis的Sorted Set来实现令牌桶算法的速率限制器。在这个脚本中,我们使用Redis的get()、set()、pexpire()等命令来实现令牌桶算法的速率限制器,并保证了对Redis的操作是原子性的。如果键已经有过期时间了, pexpire 会用新的过期时间覆盖原有的过期时间。该命令返回一个整数值,表示成功设置过期时间的键的数量。pexpire 命令是Redis的一个键命令,用于为指定的键设置过期时间(以毫秒为单位)。

2023-05-14 19:06:13 437

原创 自定义Feign日志

自定义Feign日志需要两步: - 定义FeignLogger类继承`feign.Logger`,重新响应的方法,例如:`logRequest`,`logAndRebufferResponse`. - 定义CustomFeignLoggerFactory类实现`org.springframework.cloud.openfeign.FeignLoggerFactory`接口,实现`create`方法。并通过`@Component`将该类注册到spring容器中。

2023-04-26 23:24:19 1366

原创 打印Feign日志

微服务间通过Feign进行调用,我们希望能看到Feign发送请求的日志信息,怎么做呢?首先,需要将@FeignClient所在包的日志Level设置为Debug级别。因为Feign默认使用的。的级别为非NONE。

2023-04-26 00:09:25 2805

原创 Oauth2单点登录 vue前后端分离实现

Oauth2+Vue实现前后端分离,多域名下的单点登录。

2023-04-16 12:37:01 5211

原创 Docker搭建SonarQube服务 - Linux

本文介绍如何在Linux服务器上使用docker简便并快速的搭建SonarQube服务。

2023-01-13 17:18:53 1103

原创 Jenkins与Sonarqube集成 - maven和vue项目

本文介绍如何实现Jenkins与Sonarqube集成实现jerkins构建maven和Vue项目时扫描代码并将分析结果上报到Soanrqube服务。

2023-01-13 11:35:32 1014

原创 阿里云 EDAS Java服务日志中打印调用链TraceId

EDAS服务日志中打印调用链TraceId,主要是要安装agent和开启业务日志与traceId关联。

2023-01-07 10:39:30 1899

原创 单元测试 随机自动填充对象属性数据 - podam

自动填充对象属性

2023-01-06 19:52:56 492

原创 axios跨域请求设置并携带Cookies

when the request’s credentials mode is ‘include’.」时说当请求是携带凭据模式(即Access-Control-Allow-Credentials: true、携带Cookie)时,Response的header “Access-Control-Allow-Origin” 的值不能是“但是,接下来在域名oauth.szile.com域名下请求接口时,请求没有携带设置的Cookie,这是问什么?查看Application下Cookie,确实是没有设置成功。

2022-11-06 15:15:29 16509 1

原创 Oauth2Sso-vue axios转发/oauth/authorize未设置cookies问题

vue前后端分离,oauth2Sso单点登录 解决axios转发请求未设置Cookie问题。

2022-10-28 00:09:46 984 1

原创 http请求方式及传参方式

http请求方式及传参方式本文简单介绍一下http的几种请求方式以及集中传参方式的不同。常见的几种请求方式HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。http常见及常用的请求方式有:GET、POST、OPTIONS、PUT和DELETE。GET方法用于请求数据。使用GET方法的请求应该只是检索数据,并且不应对数据产生其他影响。GET请求

2022-10-28 00:04:42 2855

原创 Linux环境 nginx安装与配置

Linux nginx的安装 负载均衡配置

2022-06-04 23:17:16 954

原创 Feign的RequestInterceptor与ClientHttpRequestInterceptor

RequestInterceptor与ClientHttpRequestInterceptor

2022-05-16 22:34:46 675

转载 spring-session

看到一片写的不错的关于spring-session的文章前言在开始spring-session揭秘之前,先做下热脑(活动活动脑子)运动。主要从以下三个方面进行热脑:为什么要spring-session比较traditional-session方案和spring-session方案JSR340规范与spring-session的透明继承一.为什么要spring-session在传统单机web应用中,一般使用tomcat/jetty等web容器时,用户的session都是由容器管理。浏览器使用co

2022-03-16 20:59:13 171

原创 `@EnableOAuth2Sso`注解详情

@EnableOAuth2Sso注解详情@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@EnableOAuth2Client@EnableConfigurationProperties({OAuth2SsoProperties.class}) // [1]@Import({OAuth2SsoDefaultConfiguration.class, OAuth2SsoCustomConfigurati

2022-03-03 00:01:20 2515

原创 security模仿密码登录实现短信验证码登录

security模仿密码登录实现短信验证码登录模仿UsernamePasswordAuthenticationToken创建短信验证码的token类SmsAuthenticationToken/** * 手机验证码认证token * * @author shipc * @date 2021/12/13 21:22 */public class SmsAuthenticationToken extends AbstractAuthenticationToken { private

2022-02-12 22:06:46 1138 1

原创 hotSpot VM 参数列表

hotSpot VM 参数列表参考:https://segmentfault.com/a/1190000010603813参考官网文档https://www.oracle.com/java/technologies/javase/vmoptions-jsp.htmlhttps://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

2022-02-09 01:06:05 567

原创 Spring Boot中测试

Spring Boot中测试本文翻译之:https://www.baeldung.com/spring-boot-testing1、概述该文中介绍如何使用Spring Boot进行测试,测试分为独立运行的单元测试和引导spring上下文的集成测试。2、项目设置3、Maven依赖首先添加测试依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>s

2022-01-25 19:42:22 3303

原创 Spring Security 控制Session详情

Spring Security 控制Session详情控制什么时候创建SessionSpring Session中Session的创建机制:机制描述always如果没有session存在就创建一个ifRequired如果需要就创建一个Session(默认)neverSpring Security将不会创建Session,但是如果应用中其他地方创建了Session,那么Spring Security将会使用它。statelessSpring Security

2021-12-20 23:37:11 1164 1

原创 Centos7安装RabbitMQ过程详解(快速下载安装)

Centos7安装RabbitMQ过程详解安装包下载RabbitMQ安装需要依赖Erlang,所以需先下载安装Erlang。网上其他提供下载的速度都很慢,我这里找官网到提供的下载位置,国内下载速度页可以,一分钟左右就下载完成。下面配图详细介绍。先下载rpm安装包,这里介绍以下RabbitMQ官方提供的下载地址。先进入RabbitMQ的官网。版本对用的要求我这里点击的是Package Cloud我这里下载的安装在安装Erlang前,需要先安装socatyum insta

2021-11-17 23:29:34 1337

原创 logback配置文件

<?xml version="1.0" encoding="UTF-8"?> logback<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --><property name="log.path" value="logs/mall" /><!--0. 日志格式和颜色渲染 --><!-- 彩色日志依赖的渲染类 --&gt

2021-09-15 13:59:38 129

原创 MySQL架构原理&InnoDB引擎

MySQL架构原理一、MySQL体系架构MySQL Server架构自顶向下大致可以分为网络连接层、服务层、存储引擎层和系统文件层1. 网络连接层客户端连接器(Client Connectors):提供与MySQL服务器建立链接的支持。2. 服务层(MySQL Server)服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和缓存六部分。3. 存储引擎层(Pluggable Storage Engines)存储引擎负载MySQL中数据

2021-09-09 23:54:54 177

原创 MySQL索引原理与查询优化

文章目录MySQL索引原理与查询优化1. 索引类型1.1 普通索引1.2 唯一索引1.3 主键索引1.4 复合索引1.5 全文索引2. 索引原理2.1 二分法2.2 Hash结构2.3 B+Tree结构2.4 聚簇索引和辅助索引3. 索引分析与优化3.1 Explain3.2 回表查询3.3 覆盖索引3.4 最左前缀原则3.5 Like查询3.6 Null查询3.7 索引与排序4. 查询优化4.1 慢查询地位4.2 慢查询优化MySQL索引原理与查询优化1. 索引类型索引类型分类:从索引存储结构划

2021-09-09 23:52:00 120

原创 Centos7下载安装MySQL5.7

Centos7下载安装MySQL5.7一、查看Linux版本和系统内核[root@localhost ~]# cat /etc/redhat-release 查看版本CentOS Linux release 7.9.2009 (Core)[root@localhost ~]# uname -r 查看内核3.10.0-1160.el7.x86_64二、下载对应的MySQLMySQL官网:https://www.mysql.com/downloads/1)2)3)4

2021-09-09 23:47:31 2965

原创 MHA 高可用集群框架搭建详情

文章目录MHA 高可用集群框架搭建主从复制模式主库修改从库修改验证开启半同步复制master节点安装slave节点安装测试半同步复制MHA MySQL高可用集群四台机器ssh互通MHA 下载安装MHA node安装MHA manager安装初始化配置目录配置监控全局配置文件配置监控实例配置文件MHA 配置检测测试MHA故障转移其他MHA 高可用集群框架搭建接上一篇的Centos7下载安装MySQL5.7主从复制模式MySQL-1 (192.168.248.131) 为masterMySQL-2 (

2021-09-09 23:46:19 161

原创 分布式链路追踪 Sleuth+Zipkin

文章目录分布式链路追踪 Sleuth+Zipkin适用场景市场上分布式链路追踪方案分布式链路追踪技术核心思想Sleuth+ZipkinZipkin serverZipkin client追踪数据Zipkin持久化到MySQL分布式链路追踪 Sleuth+Zipkin适用场景在微服务架构下,一次请求要调用多次其他的服务,那么问题就来了,1)如何动态展示服务的调用链路?2)如何分析服务调用链路中的瓶颈节点在哪及如何进行调优?3)如何快速进行服务链路的故障发现?这就是分布式链路追踪技术存在的意义和要

2021-09-01 17:14:36 479

原创 SCA Nacos+Sentinel

文章目录一、SCA Nacos服务注册和配置中心1. Nacos介绍1.1 Nacos功能特性1.2 Nacos单例服务部署1.3 改造Eureka client,注册到Nacos1.4 Nacos+Feign获取服务和Rabbin负载均衡1.5 Nacos数据模型(领域模型)地域-Region可用区-Available Zone接入点-Endpoint命名空间-Namespace配置-Configuration配置管理-Configuration Management配置项-Configuration I

2021-09-01 17:12:00 1121

原创 SpringCloud第一代框架

文章目录SpringCloud框架Spring cloud是什么?第一代Spring Cloud核心组件1. Eureka服务注册中心1.1 服务注册中心一般原理1.2 注册中心组件Eureka1.3 Eureka细节详情1.3.1 Eureka元数据1.3.2 Eureka 客户端详情1.3.3 Eureka服务端详情2. Ribbon负载均衡2.1 关于负载均衡2.2 Ribbon负载均衡策略3. Hystrix熔断器3.1 微服务中的雪崩效益3.2 雪崩效应解决方案3.2.1 服务熔断3.2.2 服务

2021-08-23 16:21:37 355

原创 简易版Dubbo方法级性能监控(TP90、TP99)

简易版Dubbo方法级性能监控(TP90、TP99)代码:https://gitee.com/szile20/lagou_stage3_module3一、实现思路创建API模块,提供consumer和provider公用的服务接口及服务方法。consumer模块和provider模块依赖该模块。创建filter模块,创建性能监控Filter类,实现TP90和TP99的性能监控。通过dubbo的SPI功能暴露Filter。consumer模块依赖该模块。该模块功能实现是最难的且是最主要的。通过

2021-08-12 23:19:20 626

原创 Dubbo简介

DubboApache Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。同时 Dubbo 是高度可扩展的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。服务发现服务发现,即消费端自动发现服务地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发

2021-08-11 16:33:39 249

原创 机构演变之路—单体架构&垂直架构&分布式(SOA)&微服务架构

项目架构演变过程1. 单体架构单体架构所有模块和功能都集中在一个项目中,部署时也是将项目的所有功能整体部署到服务器中,所有的业务都放在一个Tomcat里面。优点小项目开发快,成本低架构简单易于测试易于部署缺点大项目模块耦合严重,不易开发,沟通成本高新增业务难核心业务和边缘业务耦合在一起,出现问题相互影响2. 垂直架构根据业务把项目垂直划分成多个项目,因此这种架构称为垂直架构。做垂直划分的依据是业务的特性、核心目标。这样做一是为了业务之间互不影响,二是在研发团队壮大

2021-08-11 16:31:19 1013

原创 Jackson处理抽象类的序列化和反序列化

文章目录Jackson处理抽象类的序列化和反序列化需求实现`JsonTypeInfo.Id`Jackson处理抽象类的序列化和反序列化需求现在有这样的需求:在controller接口层,@RequestBody接收的是抽象类,@ResponseBody也是抽象类。controller根据请求参数反序列化成子类对象,返回时返回子类对象。MongoDB在新增数据时使用的是抽象类,查询返回结果也是抽象类。默认情况,抽象类是无法完成序列化和反序列化的。那怎么实现呢?现在有这样的类结果:cont

2021-08-05 18:33:39 3573

原创 基于Netty+Zookeeper手写RPC和服务注册、感知和负载均衡

需求基于Netty实现两个服务端,一个客户端,客户端通过Channel通道调用服务端服务端的上线与下线,客户端能动态感知,并能重新构成负载均衡。客户端选择性能好的服务器处理(响应时间短的服务器即为性能好)。Zookeeper记录客户端响应有效时间为5s,超时判定该客户端失效。一、思路实现思路如下:服务端启动时连接zookeeper,在/netty-server下创建临时节点,节点格式是/ip:port,例如:127.0.0.1:8899,记录服务端的IP和端口。节点数据代表节点对应服务的响

2021-08-04 21:29:13 655

原创 NIO&Netty

一、IO模型1. I/O模型说明IO模型就是用什么样的通道进行数据的发送给和接收,很大程度上决定了程序通信的性能。Java共支持3种网络编程模型:BIO(同步并阻塞)、NIO(同步非阻塞)、AIO(异步非阻塞)1.1 BIO 同步并阻塞Java BIO就是传统的socket编程。BIO :同步并阻塞,服务器实现模式是一个链接一个线程,即客户端有连接请求时服务器就启动一个线程进行处理,如果这个线程不做任何事情就会造成不必要的线程开销。BIO 问题分析每个请求都要创建新的线程,来处理客户端的

2021-07-27 17:20:36 158

原创 分布式一致Hash&分布式ID

文章目录分布式集群一致Hash算法Hash算法常见的Hash算法冲突解决的策略Hash算法应用场景普通Hash算法存在的问题一致Hash算法Nginx配置一致性Hash负载均衡策略分布式ID解决方案UUID(可以用)独立数据库的自增ID(不推荐)SnowFlake 雪花算法(推荐)借助Redis的Incr命令获取全局唯一ID(推荐)分布式集群一致Hash算法首先来了解一下分布式集群。分布式和集群是两个不同的概念,分布式是指将一个系统拆分后的多个实例,集群是指多个实例一起工作。分布式一定是集群,而集群不一

2021-07-19 18:01:42 638

原创 JSR-107与SpringBoot缓存

文章目录JSR-107与SpringBoot缓存JSR-107JSR-107核心接口JSR-107图示Spring的缓存抽象缓存抽象定义重要接口Spring缓存使用重要概念&缓存注解缓存初体验@Cacheable注解的属性SpEL表达式@Cacheable的运行流程@CachePut&@CacheEvict&@CacheConfig@CachePut@CacheEvict@CacheConfig缓存自动配置源码剖析基于Redis缓存实现自定义RedisCacheManagerRedi

2021-07-07 18:30:17 448

原创 自定义简易版SpringBoot,实现SpringBoot MVC及内嵌Tomcat启动、DispatcherServlet注册和组件扫描功能

自定义简易版SpringBoot,实现SpringBoot MVC及内嵌Tomcat启动、DispatcherServlet注册和组件扫描功能实现及思路新建项目,引入依赖<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <version>8.

2021-07-06 23:14:54 707

原创 Springboot的配置文件及属性注入

文章目录Springboot的配置文件及属性注入全局配置文件属性注入常用属性注入注解批量注入自定义注解类**编写配置文件时有提示****第三方配置**松散绑定@ConfigurationProperties vs @ValueSpringboot的配置文件及属性注入全局配置文件Spring boot使用一个application.properties或者application.yml的文件作为全局配置文件它可以放在 classpath:/,classpath:/config/,file:./,fil

2021-07-06 23:06:04 348

原创 SpringBoot日志框架

文章目录SpringBoot日志框架SLF4J使用统一日志框架SpringBoot日志框架项目中开发中日志是必不可少的记录事件的组件,常见的日志框架很多,例如:JCL、SLF4J,Jboss-logging,log4j,log4j2,logback等。通常,日志是由一个抽象层+实现层的组合来搭建。抽象层实现层JCL(Jakarta Commons Loggin), SLF4J (simple loggin facade for java),jboss-loggingjul(ja

2021-07-06 23:05:02 168

原创 自定义Spring Boot starter

文章目录自定义Spring Boot starterSpring Boot starter机制starter的命名规则自定义starter定义starter使用starter热插拔关于条件注解自定义Spring Boot starterSpring Boot starter机制Spring Boot的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动响应的默认配置。子日常开

2021-07-06 21:25:29 125

空空如也

空空如也

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

TA关注的人

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