- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 阿里云对象存储【OSS】服务端签名后前端vue分片直传
本文主要介绍如何基于Post Policy的使用规则在服务端通过各种语言代码完成签名,然后通过表单直传数据到OSS。由于服务端签名直传无需将AccessKey暴露在前端页面,相比JavaScript客户端签名直传具有更高的安全性。
2023-04-12 17:06:50
1437
原创 通过ThreadLocal实现一个上下文管理组件
本文基于ThreadLocal原理,实现了一个上下文状态管理组件Scope,通过开启一个自定义的Scope,在Scope范围内,可以通过Scope各个方法读写数据;通过自定义线程池实现上下文状态数据的线程间传递;提出了一种基于Filter和Scope的Request粒度的上下文管理方案。
2023-02-25 17:08:29
205
原创 ThreadLocal 夺命14连问,你扛得住几道?
ThreadLocal,也就是线程本地变量。如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是操作自己本地内存里面的变量,从而起到线程隔离的作用,避免了线程安全问题。
2023-02-25 16:07:52
165
原创 第三方登录解决方案-Oauth2授权模式
第三方认证技术方案最主要是解决认证协议的通用标准问题,因为要实现跨系统认证,各系统之间要遵循一定的 接口协议。 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认 证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。互联网很多服务如Open API,很多大公司如Google,Ya
2023-02-21 18:01:06
1536
原创 分布式事务解决方案-阿里seata
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT 、TCC 、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。对业务无侵入:即减少技术架构上的微服务化所带来的分布式事务问题对业务的侵入高性能:减少分布式事务解决方案所带来的性能消耗
2023-02-21 14:25:04
179
原创 微服务分布式事务演变及详解
弱一致性即使过了不一致时间窗口,后续的读取也不一定能保证一致,而最终一致过了不一致窗口后,后续的读取一定一致。BASE理论是对CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。2PC的缺点性能问题:执行过程中,所有参与节点都是事务阻塞型的。当参与者占有公共资源时,其他第三方节点访问公共资源不得不处于阻塞状态。可靠性问题:参与者发生故障。协调者需要给每个参与者额外指定超时机制,超时后整个事务失败。
2023-02-17 15:23:25
173
原创 Spring 事务失效的十种常见场景
针对和的声明式事务功能更是提供了极其方便的事务配置方式,配合的自动配置,大多数项目只需要在方法上标记@注解,即可一键开启方法的事务性配置。但是,事务如果没有被正确出,很有可能会导致事务的失效,带来意想不到的数据不一致问题,随后就是大量的人工接入查看和修复数据,该篇主要分享Spring事务在技术上的正确使用方式,避免因为事务处理不当导致业务逻辑产生大量偶发性BUG。在分析事务失效的常见场景之前,我们先来了解一下:事务的传播类型 和 @注解的不同属性的含义。
2023-02-16 17:14:47
78
原创 线上排查问题神器-------Arthas
a,启动一款demo应用,来源于arthas官方提供的demo程序:math-game(是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果)watch 包名路径.类名 方法名 “ognl表达式” -x 显示参数层级数:观察函数调用情况,展示入参、返回值、抛出异常等,支持ognl表达式进行对应变量查看。trace 包名路径.类名 方法名 “ognl表达式”: 渲染方法调用链路,可以查看链路上的各种性能开销。stack 包名路径.类名 方法名 :查看方法的调用路径。
2023-02-15 10:48:44
92
2
原创 springboot+flowable请假详细流程
1. flowable-ui目前flowable-ui主要用于画流程图,流程图画完之后,再对XML做适当的修改docker安装使用flowabledocker run -d -p 8080:8080 flowable/all-in-one进入flowable-ui界面http://127.0.0.1:8080/flowable-modeler2. springboot 使用2.1 准备流程文件Holiday_Request.bpmn20.xml,将文件放在resource/processe
2021-11-04 17:58:03
923
原创 java8常用表达式
一,将一个List中的某个属性转成一个新的List例子:List<QueryOrgsResp> orgs = sysOrgMapper.queryOrgsPaging(map);List<String> orgIds=orgs.stream().map(QueryOrgsResp::getOrgId).collect(Collectors.toList());还可以用Set集合,例如:Set<String> orgIds = orgs.stream().map
2021-11-04 17:42:29
791
原创 利用EasyExcel实现表头动态导出
利用EasyExcel实现表头动态导出EasyExcel简单介绍文档(https://www.yuque.com/easyexcel/doc/easyexcel)项目需要的依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6<
2021-10-29 15:45:43
640
原创 记一次Mysql索引失效问题分析
其中 t2.id 是ks_book_student的主键,t.book_student_id是ks_ctb_log的普通索引,但是从查询结果来看却是全表扫描。:创建数据库和表结构时尽量保证字段的字符集相同,字符集选择utf8,排序规则使用utf8_general_ci。最终执行以下sql,修改字段字符集,保证两个字段的字符集相同。发现关联的两个值得字符集不相同。:在以下sql不走索引。
2021-10-29 15:15:08
99
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人