自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringCloud微服务,如何保证对外接口的安全?

上面提到过,不同类型的服务其接口认证不一样,为了便于区分,可以规定对于外部请求都增加一个特定的请求前缀 /pt/,如 apigw.xxx.com/order-service/api/pt/creadeOrder。为了方便处理,我们抽象一个 API 认证接口,各种认证逻辑独立到自己的实现中,对于今天所讲的开放接口认证,主要关注 ProtectedApiAuthenticator。步骤1:客户端使用约定好的规则对传输的参数进行加密,得到签名值sign1,并且将签名值也放入请求的参数中,随请求发送至服务端。

2025-04-22 10:46:17 1038

原创 Redisson源码 RedissonLock加锁与解锁过程原理分析

在当今分布式微服务架构流行的情况下,显然在传统单体项目中使用的JDK自带的锁已经不能解决资源竞争的问题了,进而出现的解决方案有1)利用数据库 2)redis 3)zookeeper,经过验证的是利用redis做分布式锁无论在可用性、可靠性上比较有优势。getLock获取到的是非公平锁,非公平锁不严格要求先到先得,后面申请加锁的线程有可能会比之前等待的提前拿到锁。3.使用当前线程ID执行tryAcquire()尝试获取锁,若获取到锁直接返回。向channel订阅后,锁释放后可以收到通知立即去尝试获取锁;

2025-02-19 11:19:35 390

原创 springCloud微服务之负载均衡

其实是因为依赖引入的问题,Spring Cloud LoadBalancer的重试机制是基于spring-retry的,如果没有引入对应的依赖,便会导致配置无法生效。Nacos会把该服务所有的实例信息(健康的+不健康的)全部提供给消费者,消费者可能访问到不健康的实例,请求失败,但这样也⽐造成雪崩要好。此时,如果消费端请求该实例,依然会出现请求失败。如果服务实例还没来得注销已经被干掉,比如正常kill一个应用,应用会处理完手头的事情再关闭,但如果使用kill -9来强制杀掉,就会出现无法注销的情况。

2024-10-30 16:02:13 1098

原创 SpringBoot常用注解@RestControllerAdvice详解

RestControllerAdvice是一个组合注解,由@ControllerAdvice、@ResponseBody组成,而@ControllerAdvice继承了@Component,因此@RestControllerAdvice本质上是个Component,用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法,适用于所有使用@RequestMapping方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。

2024-10-21 09:57:40 872

原创 Java实现异步的几种方式

配置线程池(@Async默认情况下用的是SimpleAsyncTaskExecutor线程池,该线程池不是真正意义上的线程池,使用此线程池无法实现线程重用,每次调用都会新建一条线程。System.out.println(“异步线程:” + Thread.currentThread().getName() + “结束,耗时:” + (end - start));System.out.println(“当前线程名称:” + Thread.currentThread().getName());

2024-10-11 09:37:52 3055

原创 Nacos配置热更新的实现方式

重新定义一个方法或者类(该注解使用于类和方法),通过注解 @ConfigurationProperties 的属性 prefix 绑定配置文件中的配置,相当于捕捉到外部的配置信息,@Component 注解实现把配置交给 spring 管理,实现配置文件的自动刷新。过程是在要调用这些变化的配置的类中,通过注解 @Value 找到在 nacos 中配置的属性,然后在调用这些属性的类上加上注解 @RefreshScope 实现配置的自动更新。

2024-09-25 14:22:02 282 1

原创 80端口和443端口的概念与区别

在一些对安全性要求较高的网站,比如银行、证券、购物等,都采用HTTPS服务,这样在这些网站上相应的交换信息是可以防止其他人看到,其他人抓包获取到的是加密数据,保证了交易的安全性。有一个很重要的原因是采用不同的端口分别提供不同的服务,比如:TCP/IP协议规定web默认80端口,FTP默认21端口等。可以通过HTTP地址(即常说的“网址”)加“:80”来访问网站,因为浏览网页服务默认的端口都是80,所以只需要输入网址即可,不用输入“:80”了。HTTP通过80端口传输数据时,数据是明文的,不进行加密。

2024-09-25 14:04:50 469

空空如也

空空如也

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

TA关注的人

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