- 博客(15)
- 收藏
- 关注
原创 安卓打包与APK证书关系
密码学对称加密: 加密和解密使用的是同一把钥匙对称加密分为 块加密 (几个字符一起进行加密,类似分组加密)和 流加密(挨个字符进行加密)常见加密算法(一般和):DES (数据加密标准)、AES(高级数据加密标准)特点:1.加密速度2.密文不可逆,密钥不能泄漏3.如果在编码表上不能找到对应字符,会出现乱码4.一般需要结合base64编码使用对称加密流程图base64(二进制转为ASCII字符)- 可读性算法 详细的不赘述。
2024-12-16 13:46:01
1003
1
原创 Macos(ARM64 M1芯片)XXL-Job搭建并使用
注意事项:xxl-job-admin/target/xxl-job-admin-*-SNAPSHOT.jar生成的jar名字会有所不同,比如我的是:xxl-job-admin-2.2.0.jar,因此我需要改正为 cp。构建完镜像后还需要继续执行,因为xxl-job构建的镜像默认使用的是openjdk8-jre-slim不支持MAC M1(arm64架构)芯片。替换其中的openjdk:8-jre-slim为mdsol/java8-jdk:latest(如下图所示)部署服务端连接数据库。
2024-05-01 22:16:23
1278
3
原创 短链平台开发-下单模块(下单接口防重提交)
服务端token令牌方式(本文采用AOP+注解形式实现)数据库或者其他存储字段做唯一索引。前端通过js控制点击按钮次数。利用AOP,在不改变原有逻辑上增加额外功能。1.token令牌方式。2.ip+类+方法方式。RepeatSubmitAspect类。RepeatSumbit注解。
2024-04-25 02:56:09
463
1
原创 短链平台开发-AOP知识
环绕通知(@Around):在目标方法完成前后做增强,环绕通知是最重要的通知类型,像事务、日志都是环绕通知完成的,注意编程中一个核心ProceedingJoinPoint,需要手动执行 jointPoint.procced();:即切面,切面一般定义为一个 Java 类, 每个切面侧重于特定的跨领域功能,比如,事务管理或者日志打印等。:即连接点,程序执行的某个点,比如方法执行。:即通知,在连接点要的代码(对特定的切入点上进行功能的增强处理)。:即编织,负责将切面和目标对象链接,以创建通知对象,在。
2024-04-25 02:45:31
190
1
原创 短链平台开发-自定义注解知识
3.@Documented 用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。元注解的作用就是负责注解其他注解。要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。1.所有基本数据类型(int,float,boolean,byte,double,char,long,short)2.CLASS:在class文件中有效(即class/字节码上保留)
2024-04-25 02:34:27
393
1
原创 短链平台开发-多维度查询问题及解决方案
2.mq消息发送优化冗余双写架构(弱一致性),使用rabbitmq的原因(rabbitmq自带延时队列,更适合业务比如定时任务,分布式事务,团队内熟悉rabbitmq,所以作为优先的mq)。一个平台应该分为商家端和用户端(分为B端和C端),用户的话可以直接通过短链码查询自己的私有短链 ,但是商家改如何查询自己的所有短链呢?字段解析配置:建一个表(存对应的唯一编号)的对应库表位,商家生成的短链码有固定的前缀和后缀,即短链码中包含商家的信息。
2024-04-15 22:33:50
259
3
原创 短链平台开发-sharding-jdbc实战(精准分片策略)
保证数据较为平均的分散落在不同的数据库、表中,可以有效避免热点数据集中问题。进行62位进制转换,得到需要的数字+大小写字母的短链码。甚至可以避免数据迁移和数据扩容等问题解决。,生成一个新的短链码用于精准选择分库分表。
2024-04-15 22:01:18
474
1
原创 短链平台开发-分库分表
指定traffic表的数据分布情况,配置数据节点,行表达式标识符使用 ${...} 或 $->{...},但前者与 Spring 本身的文件占位符冲突,所以在 Spring 环境中建议使用 $->{...}无法给数据库的并发操作带来效率上的提高,分表的实质上还是在一个数据库中进行操作,收到IO性能限制,在数据量访问压力不是特别大的情况下,首先考虑读写分离、缓存、索引技术方案,如果数据量极大、且业务增长极快、才考虑分库分表方案。提升系统硬件(更快的IO、更大的内存)- 带宽、CPU、硬盘。
2024-04-09 01:29:31
817
原创 短链平台开发-短信验证码和图形验证码编写接口实现
方式二:增加redis存储,发送的时候设置额外的key,并且60s后国旗(非原子操作,存在不一致,增加额外的key,value存储,浪费空间)方式一:前端正价校验倒计时,不到60s按钮不准点击(不安全,可以直接请求接口,否决)60s后才可以重新发送短信验证码(存入redis的值格式为:"验证码_"+时间戳)方式三:基于原先的key拼装时间戳 好处 满足了当前节点内的原子性,也满足业务需求。解决问题:手机校验规则得更新 发送短信验证码连接请用请求http协议。SmsComponent组件中修改url。
2024-04-02 22:16:37
303
1
原创 短链平台开发-接口优化(提升QPS)
解决方式:Spring会先搜索TaskExecutor类型的bean或者名为taskExecutor的Executor的bean,在Async方法添加@Transactional是没有用的,但是在Async方法调用的方法上标注@Transactional是有效的。每次都创建连接会造成极大的资源浪费,而且若不能及时连接释放,会因为未见建立新的连接导致后面的请求阻塞。底层使用J2SE提供的方式,即java.net包停工的方式,创建底层的http请求连接。(1) CPU密集设置为跟核心数一样大小。
2024-04-02 02:47:06
806
1
原创 短链平台开发-子模块(dcloud-common)依赖
-Hoxton.M2版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer会报错,所以加入spring-cloud-loadbalancer依赖 并且在nacos中排除ribbon依赖,不然loadbalancer无效 -->--Springboot项目整合spring-kafka依赖包配置-->--项目中添加 spring-boot-starter-->--redis客户端-->--引入AMQP-->
2024-03-30 13:59:22
367
原创 短链平台开发-父工程依赖
-scope=provided,说明它只在编译阶段生效,不需要打入包中, Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件-->--mybatis plus和springboot整合-->--验证码kaptcha依赖包-->--module不用添加打包版本信息-->-- JWT相关 -->--阿里云oss-->--跳过单元测试-->-- 代码库 -->
2024-03-30 13:57:27
489
原创 arm64架构下自定义一个sentinel镜像
设置时区(安装sentinel的服务器时区要与服务的时区保持一致,不然实时监控数据不展示)然后去github下载sentinel的jar包,链接是。#前者是要操作的jar包 后者自定义jar包名。#java 版本 签名下载的openjdk镜像。访问的端口号是构建文件中自定义的参数-进入控制台,登录用户名和密码都是。
2023-06-28 04:31:18
406
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人