摘要:
一.背景 SpringCloudGateway增加基于Redis的限流功能,但由于认证鉴权功能也是在网关连接Redis完成,本着上级上单一职责的原则,尽量将认证鉴权Redis与限流使用的Redis独立开来,在网关配置了多套Redis数据源用于实现不同的功能,总结和记录在配置过程的经验 二.想法 由于 阅读全文
摘要:
一.背景 在上文中,灰度发布遇到了些问题,例如: 1.多个终端,例如移动端(IOS和Android),PC端,Web端对应的版本号不同,但又需要访问同一个后台微服务,网关灰度路由怎么配置 2.动态修改Nacos配置中心的元数据信息,如何同步到Nacos注册中心对应服务的列表中 3.管理后台业务调用其 阅读全文
摘要:
背景 2022年7月27日晚,21:05分 新功能上线后,通过Grafana上查到Redis多个性能指标有很大的升高,Redis使用的是腾讯云的云服务 这里通过这个问题,记录和总结整个排查过程,Redis相关指标变化如下 1.CPU和内存参数 CPU利用率: 9%->99%(100%) 内存使用率: 阅读全文
摘要:
需求背景 由于公司要推出一款海外市场的APP,需要接入海外APP的支付方式 例如: (安卓)PayPal,GooglePay,境外微信/境外支付宝 (IOS)ApplePay 本文主要总结对接Paypal过程中的步骤和注意事项 项目架构 后端:SpringCloud + SpringBoot(版本号 阅读全文
摘要:
需求背景 接上文:GooglePay支付通道对接(一) 本文主要整理和总结在对接过程中的出现的问题以及解决的办法 问题QA 后端:SpringCloud + SpringBoot(版本号:2.1.x)+MySQL +Redis+Maven 前端:安卓 APP Google 支付 Maven依赖 <! 阅读全文
摘要:
背景 主要记录ElasticSearch分页方式,以及深度分页的问题,出现的原因和深度分页的替代解决方案 问题 ElasticSearch普通分页查询时通过from+size这两个参数实现,类似于MySQL的limit 分页 from:表示当前页码 size:表示每页展示条数 例如: #普通分页查询 阅读全文
摘要:
前言 主要介绍Redisson可重入锁,实现可可重入加锁的源码解析 源码分析 这里回头看看加锁的代码如下 <T> RFuture<T> tryLockInnerAsync(long leaseTime, TimeUnit unit, long threadId, RedisStrictCommand 阅读全文
摘要:
前言 本篇主要介绍基于Redisson实现的分布式锁,获取锁之后,通过watchdog机制异步的,定时的,递归的判断是否存活,从而进行锁续期 Watchdog机制 在使用Redisson分布式的锁的过程中,如果客户端的请求线程获取锁之后,由于当前任务执行时间较长,线程任务没执行完毕,但又超过了线程占 阅读全文
摘要:
Nacos心跳是健康检查的一部分,心跳是服务端确认客户端是否存活的关键 这里将源码拆为两部分: 1.客户端发送心跳 2.服务端接受客户端心跳 一.客户端发送心跳: 在第二部分客户端注册实例的源码分析时,提到判断如果实例是临时实例,就会初始化心跳信息和发送心跳的线程任务,如下 @Override pu 阅读全文
摘要:
一.启动nacos源码中的 nacos-excample项目 1.添加JVM启动参数或者 直接在main方法中硬编码指定nacos-server的ip和端口 Properties properties = new Properties();properties.setProperty("server 阅读全文
摘要:
1.源码下载地址 https://github.com/alibaba/nacos ,这里我选择目前线上稳定的1.3.x版本 2.Nacos 源码目录: 这里Nacos主要是启动 console工程 3.配置MySQL脚本, 启动cosole服务 在MySQL中创建nacos库,执行distribu 阅读全文
摘要:
一.背景 本篇文章主要介绍JProfile工具的使用 这里有几个问题先抛出来 1.JProfile是什么? --是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的 2.JProfile具备哪些功能 --2.1本地会话的实时分析(重要) --2.2 阅读全文
摘要:
一.背景 最近在Grafana关注到线上推送服务push-service在运行一段时间后,内存占用非常高,并且频繁发生FGC,这里记录下问题排查过程 二.排查过程 推送服务主要作用为,消息推送,因此JVM内存这里分配的是 Xmx 和Xms 均为2G 1. 首先在Grafana上的监控指标,可以看到F 阅读全文
摘要:
一.背景 最近项目中频繁有使用基于SpringCloudGateway组件开发相关功能,如自定义路由断言,自定义拦过滤器,限流,灰度发布等功能,因此通过文章记录开发过程中的细节和问题点,本篇文档主要记录SpringCloudGateway路由断言 二.什么是路由断言 路由断言是由SpringClou 阅读全文
摘要:
一.背景 最近项目中有需要使用到Websocket做长连接推送,这里整理在具体实现过程中的细节和踩过的坑 二.问题点 在实现过程中,这里自己整理了一些问题点 1.WebsocketSession无法序列化到Redis以及MySQL中,集群环境下,如果进行服务端推送到指定客户端,如何知道该客户端与后台 阅读全文
摘要:
一.背景 本文主要介绍在文章一和文章二的基础上,通过自定义灰度标记请求头的方式实现灰度标记的传递,以及基于指定用户id的服务端灰度发布设计 二.解决方案 1. 自定义灰度标记请求头方案 //TODO 2.基于用户指定用户id的服务端灰度发布方案 //TODO 阅读全文
摘要:
背景 灰度发布是微服务架构中非常重要的一环,也是服务治理不可缺少的一项能力,同样的,随着敏捷开发的发展与成熟,开发的速度越来越快,迭代的周期越来越短,在频繁的需求开发迭代过程中,为了保障服务的上线稳定和产品质量,产品具备的灰度的能力就显得尤为重要 借此机会,整理基于SpringCloudAlibab 阅读全文
摘要:
背景 总结和归纳《PKI/CA与数字证书》书籍读后感 第二部分 正文 问题:PKCS1,PKCS7,PKCS8,PKCS12等等PKCS系列是什么东西? 答案:PKCS是一套公钥密码学标准,其定义范围涵盖了证书签名、加密算法、填充模式及校验流程等。可以说是PKI体系里面的的证书和密钥的存储语法,或者 阅读全文
摘要:
背景 总结和归纳《PKI/CA与数字证书》书籍读后感 第二部分 第4章 ASN.1及其编码规则 4.1 ASN.1 ASN.1是Abstract Syntax Notation One(抽象⽂法描述语⾔)的缩写 ASN.1是⼀种对分布计算机系统之间交换的数据消息进⾏抽象描述的规范化语⾔ ASN.1是 阅读全文