- 博客(93)
- 资源 (2)
- 收藏
- 关注
原创 配置化方式开发应用系统
处理业务时需要根据不同的场景或者编码来进入不同的服务应用,特别是if else场景较多的场景或者经常变动的场景,面对项目中悠久历史代码而头疼需要重构时,或许本文的思路有利于提升。将多个业务服务逐一抽取,若每个业务也比较复杂,也可以在此基础上进一步处理;将N个问题转为1个问题;通过策略key来获取所需要的所有服务列表,遍历服务处理。此部分可结合缓存(本地缓存,redis缓存,一二级缓存+mq广播模式来刷新配置)等提升处理能力。
2025-01-06 20:31:09
132
原创 导出中心设计
分页请求的数据转为map,这样就能从属性字段集合中获取所需的字段值,通过逐行写入。应用业务经常需要导出数据,但是并发的导出以及不合理的导出参数常常导致应用服务的内存溢出、其他依赖应用的崩溃、导出失败;因此才有导出中心的设计。将导出应用所需的内存转移至导出中心,将导出的条数加以限制,将导出的线程数据加以控制,将文件下载的权限进行控制。删除任务:对于过期的任务,可通过定时任务或者 mq的过期通知等方式来删除任务数据及对象存储中的数据。文件存储这块:可放到常见的对象存储中,如华为OBS存储,腾讯对象存储等等。
2025-01-06 20:11:05
259
原创 导入中心设计
应用服务--> 行号+事务编号+方法编码+数据json-->请求应用中心保存任务-->异步执行--->根据方法编码查询对应的接口url(服务名方式则用loadbalance)-->携带认证头-->调用应用服务insert-->需要全部成功的,则先判断是否有全局事务锁--->异常则加锁阻断后续处理。将导入的多条转为单条数据(通过消息中心进行流量削峰),将大事务转为小事务,若需要全部成功,则用提前将生成的事务编号用于返回状态的处理,若一个有问题,则将已处理的数据进行删除,同时加全局锁判断后续的数据处理情况。
2025-01-06 19:51:04
263
原创 Faunadb
Faunadb和google spanner都属于云分布式数据库天然支持分片(无需做分表分库操作,一库搞定,当然价格另说),国内的也有比如TiDB Oceanbase等本文使用java语言,其他语言可以跳过;有想直接使用的可以参考(无法访问外网,可以搞个vpn吧!!!此文旨在想了解的小伙伴看看(免费使用30天)本文演示使用的jdk版本为jdk21。
2023-09-16 00:14:51
287
原创 elasticsearch8.9.1集群搭建
xpack.security.enabled: false 默认这个配置是开启的,配置文件中没有,启动后如果正常一般有一堆的安全配置属性也包括这个(xpack.security.enabled: true),配置就麻烦很多,而且kibana登录时也要配置。elasticsearch文档:https://www.elastic.co/guide/en/elasticsearch/reference/8.9/targz.html。kbana在主节点上下载即可,其他机器可以不用(集群例外)
2023-08-30 22:05:48
728
原创 AppStream下载元数据失败
为仓库 'AppStream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist
2023-08-14 16:36:11
5093
1
原创 Springboot+Netty
至于如何在非spring管理的bean中获取spring管理的对象或者在线程中获取spring管理的bean,则自定义一个beanutils获取。入门视频量比较大,最主要是了解netty的架构。以web方式启动,tomcat占用80端口 netty占用9002端口。对springboot有入门级别会启动项目设置bean基本就可以完成了。属性配置文件application.properties中配置。
2023-07-24 10:23:54
444
原创 线程池配置化
解决问题:1.服务中有众多的线程池,如何进行管理?2.如何动态的生成线程池减少代码量的维护3.线程池如何进行动态设置并生效目前上开源框架dynamic-tp 可以通过配置化中心来解决刷新线程池的问题,但依旧还有改善的空间,1.如何获取系统中有哪些线程池的配置2.如何快速批量更新配置3.如果做到不同服务器,不同配置4.不用注册中心依旧能进行项目定制化开发重点使用:spring bean的生命周期执行方法来实现beandefinition加载,从而实现动态加载目的。
2023-07-20 21:28:01
125
原创 go入门demo
编写main.go后就可以使用 go run main.go 或者 go run .go mod init 模块名 初始化当前文件夹, 创建go.mod文件。go mod tidy 增加缺少的module,删除无用的module。go mod edit 编辑go.mod文件。
2023-07-09 11:24:12
623
原创 凑零钱问题_凑零钱的组合
给定K种面值c1,c2,....ck,每种金币数量,例举总和为amount的,至少需要的金币的组合关于计算金币数量有解法,金币组合方式可以参考,暴力解,从小到大,找到即是最小组合import java.util.Arrays;import java.util.LinkedList;import java.util.List;/** * description: 凑零钱问题 */public class CionN { public static List<List<
2022-03-12 12:16:05
650
原创 Springboot 之 redisTemplate序列化问题
使用springboot时,若配置redisTemplate序列化有问题,考虑如下两点1.redisTemplate本身序列化使用的是有问题2.依赖的redisTemplate有问题具体看配置可以解决核心在于@DependsOn 这个注解(注解本身可以看看网上其他博文的的说明),如果RedisUtils缺少这个注解,那么引入的redis的序列化则是JdkSerializationRedisSerializer 这个和spring加载bean的机制有关(至于为什么是这样的,则需要深究bean...
2022-03-05 17:34:38
2031
截图软件FsCapture
2018-05-25
java反编译工具
2018-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人