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