![](https://img-blog.csdnimg.cn/c3d5d49d5b344267900e6cfa282b4161.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
岁月云——Web系统最佳实践
文章平均质量分 68
将多年的web应用系统开发经验,汇聚成最佳实践,形成研发套路,快速开发。
warrah
岁月会计云
展开
-
产品AB测试设计
前端系统升级,界面操作也发生改变,为了将影响降到最低,是不能轻易让所有用户使用新系统的。原系统使用好好的,如果新界面用户不喜欢,或者说新界面测试不充分,导致出现一些bug,到时候一堆用户骂就得不偿失了。如果一个系统中,AB测试显示不同得菜单,那么相同的访问路径是可以做到的。增加字段不可避免,因为分表必须指定字段以区分业务走那张表,因此接口也需要增加字段,看似这么做会产生很多更改,但是这种方式组需要改一次,因为只要分了表,那么分两张,跟分100张就没有多大区别,产品设计得扩展性大大提高。原创 2024-05-05 11:25:03 · 524 阅读 · 0 评论 -
easyexcel升级3.3.4失败的经历
格式,尝试解决单元格样式的问题。回头又发现一个问题,就是第一个页签,与页面内容不匹配的问题。什么都没有改,就出了问题,那么问题肯定出现在easyexcel版本自身.解决一部分问题,结果之前的可以用的代码,却无端的出现bug。但结果并没有对方的好,奇怪。显示效果如下,上面的模板还在,但是表头信息没有了。得到的效果是,页签名称与页签中的内容是匹配的。,有人跟我一样的问题,按照他的方式解决即可。第二页签,把上面的模板也导出来了,奇怪了,没有直接的关系,因此升不升级没有影响。更正模板后,又出现新的问题。原创 2024-04-16 20:46:08 · 1028 阅读 · 0 评论 -
动态数据源实现分表走shardingsphere,不分表走其他
但是还没有完结,因为在执行存储过程的时候,系统提示错误如下。shardingsphere是不支持存储过程呢,但项目中不能避免使用存储过程,因为有大量的数据需要初始化,这种情况该如何应对?动态数据源是好的,但带来的问题却是数据库初始化连接过多,如下面的配置,每个系统就有两份数据库连接池配置,这个需要注意,在k8s扩展服务的时候应该考虑到这一点。因为shardingsphere不支持存储过程及一些语句,所以产生了动态数据源的需求,在网上找的例子配置,上面的java配置,还有一个问题没有解决,那就是。原创 2024-04-15 16:50:20 · 652 阅读 · 1 评论 -
shardingsphere从4.1.1升级到5.2.1
作为工程师都希望自己的产品能够大卖,而项目开发中使用的技术不可能所有都是自己写的,使用到的开源组件例如shardingsphere这样好的组件,也会随着用户量的增加而需要升级,没必要非得像hutool那样非得自己写一边,当然hutool很优秀。下图进去了,好像也不会影响,因为4.1.1版本也是为空,但执行这一步后会从nacos中获取sharding的配置,但升级后却没有加载,这是为什么呢?原先产品中使用的是4.1.1版本,这是2020年的版本,今年是2024年,已经过去了4年,可以升级了。原创 2024-04-14 21:35:00 · 1028 阅读 · 0 评论 -
mysql performance schema 实践
加上缓存,这里借助了spring cache管理组件,基于。注意删除、更新的时候需要更新缓存,防止数据不正确。2、哪类SQL的平均响应时间最多。用来过滤那些没有使用的查询。有了上面的基础开始优化调整。原创 2024-04-13 11:01:48 · 344 阅读 · 2 评论 -
excel 动态列导出
excel动态列,只好用poi来写了,也并不复杂,一样就这个件事情抽像为几步,就是套路了,开发效率就上去了。表格样式这里只写一个,其他的参考pos文档即可,不要每一个单元都重新创建单元格样式,那样非常消耗性能.要通过pos自己创建每一样,像模板一样创建即可.导出操作与excel模板的导出一样,可以参考。第三行,第四行涉及到动态列的创建和合并表头。,也就是一行行的创建excel模板。原创 2024-03-05 14:14:34 · 549 阅读 · 0 评论 -
excel导入标准化
excel导入较导出还是复杂一些,一般分为三个步骤.市面上低代码平台可以将常用的操作固化,并且形成收益,这也是挺好的。我将我的一些总结分享到网上也是我自己乐意的。毕竟尊重技术的还是搞技术的自身,一般企业老板并不太关心技术代码到底有什么价值,认为脱离了业务代码,这些代码就像封存多年“宝物”上的灰尘。先定义一个对话框,下载导入的excel模板。后台代码也是固定的写法。原创 2024-03-01 10:44:29 · 175 阅读 · 0 评论 -
axios请求的问题
出现问题的主要原因是java对象中如果有日期字段,且这些字段从前台传给后端,一定要加上下面的字段。需要加上下面的配置,本来不想记录,但是实在没有办法,因为总是会出现post请求,后台接收不到数据的情况,还是记录一下如何的解决的比较好。原创 2023-11-09 16:04:29 · 879 阅读 · 0 评论 -
pdf文件签名的问题和缺少字符集
pdf签名原创 2023-09-05 20:38:32 · 1696 阅读 · 2 评论 -
springboot文件上传异步报错
异步文件上传,临时文件丢失的问题原创 2023-08-31 20:36:45 · 267 阅读 · 0 评论 -
xml对象与字符串互换
很多老系统,特别是C++的系统,可能数据结构采用的xml。xml对java来说没有什么,但是C++来说,可能还有个顺序问题,毕竟c++没有那么多通用类库。2 xstream先说依赖,我本来不想升级,但是有个问题卡者就给升了,虽然升了并没有解决我的问题。 <!-- xstream 升级到1.4.18后 依赖的jar --> <dependency> <groupId>com.thoughtworks.xstream<原创 2023-08-16 20:49:48 · 1028 阅读 · 0 评论 -
rabbitmq异常处理问题集
rabbitmq权限问题原创 2023-07-20 09:39:32 · 3100 阅读 · 0 评论 -
分表后mybatis-plus删除操作失效等问题处理
使用mpjLambdaWrapper做删除做法,导致分表删除数据失效时间少了8小时原创 2023-07-19 09:47:19 · 1116 阅读 · 0 评论 -
旧系统重构遇到的种种问题
springboot升级到2.7.9原创 2023-06-21 17:06:20 · 1326 阅读 · 0 评论 -
服务器初始化脚本
1 磁盘购买云磁盘,有的时候是没有挂载的,还需要自己去根据LVM相关命令去执行,如果买的服务器比较多,还得每一台都弄,所以就自己写shell脚本,看看常规的命令,也不是很复杂。1.1 只有1个数据盘多盘的应该是用一个循环来实现,但因为资源受限,只有1个数据盘的脚本如下:终于搞明白grep、awk以及变量如何使用。init_disk() {cat << EOF+--------------------------------------------------------------原创 2021-02-26 20:23:11 · 278 阅读 · 0 评论 -
产品到平台的思考1
2016年参见中国软件网组织的互联网会议,曹开彬讲解的“2016中国企业应用生态现状与趋势”记忆颇深,其他的参与方例如联通、滴滴等都是过来做自己的广告。未来的十年将是“数字经济”的热点。时隔一年,我搭建我们公司平台后,开始思考产品与平台的定位,初期难免拾人牙慧,碎片化,但我希望我能坚持,并逐渐形成自己的思考和文字。 初创企业由于资金有限,往往从单一产品进行孵化。单一产品的优势是企业可以集中资原创 2017-09-02 21:22:46 · 300 阅读 · 0 评论 -
第2.1章API网关
配置并不是我的原创,我是根据https://gitee.com/geek_qi/ace-security/tree/master工程做的笔记 1 maven配置 1.1 lombok 有时为了偷懒,使用了lombok,以前并不推荐,现在写springboot工程,发现很多人比较热衷。 比如Spring Boot下的lombok安装以及使用简介<dependency> ...原创 2018-04-11 15:20:00 · 168 阅读 · 0 评论 -
springboot自定义SPI服务发现
命理里面有很多二元论的东西,直接写程序,哪些规则多容易错,原本想用easyrule,但是适用场景还是不行,一个280项的判断,最好还是用决策表来做,于是搜到了 hongwen1993 / fast-drools-spring-boot-starter, 想当初安排自己一个手下保障 基础框架,我怎么没想到用start的方式呢?看来那个时候对springboot还是不熟悉,这里感谢这位作者,让我对这件事情有了兴趣,同时决定修改一下他的代码,提升一下性能。...原创 2021-08-01 12:05:48 · 312 阅读 · 0 评论 -
携程推荐系统架构学习
下图是携程推荐系统的架构图,参考携程大数据实践:高并发应用架构及推荐系统案例 这个图,画的较携程应用系统整体架构学习清晰。 对我的技术选型和架构设计有很多借鉴参考的地方 1 数据采集 采集的是哪些数据? 采集数据的格式是什么? 采集数据的工具是什么?采集数据时间窗如何? 数据传输方式是什么? 2 数据清晰原创 2017-02-23 14:12:38 · 3605 阅读 · 0 评论 -
SaaS应用分库分表笔记
子曰:“盖有不知而作之者,我无是也。多闻,择其善者而从之,多见而识之,知之次也。”经常让手下做事情,下属很快搞出一个设计方案,一问原来这个方案是他自己想出来的。你能说他方案设计的不行吗,那不是打击他的积极性吗,他确实做了些事情,但并没有用心。这就是孔子所讲的“不知而作之”,做事情并不是都是自己创造,特别是我们这些搞计算机的,我不是电信、BAT、金蝶、用友等,我们想到的很多人都已经有过实践了,自己设计的方案或许是对的,终将只是停留在“见山是山”的层面,没有经过横向对比,选取最佳实践,也就是“多闻,择其善者而从原创 2021-05-03 21:37:48 · 1108 阅读 · 2 评论 -
SaaS架构设计笔记
叶伟著的《互联网时代的软件革命SaaS架构设计》,文中提到了2007年初Alisoft,吹嘘唯一使命是发展中国的SaaS软件,口号喊的太大,导致2010年阿里软件互联平台终止服务,服务是针对行业的,行业对SaaS的认可度总要一个过程,风口也是一时,谁能预料呢,或许alisoft做的有些超前,等不到SaaS盛行就倒闭了。而技术架构却值得借鉴。1 成熟度模型ASP要么像金蝶KIS或者管家婆之类单机版程序,一开始的时候需要地推人员一个个支持,还需要配备N多IT人员,维护不同版本,到了产品生命周期不想维护,便宜原创 2021-05-01 09:12:46 · 579 阅读 · 6 评论 -
携程应用系统整体架构学习
下图是携程应用系统整体架构 根据上图可以发现以下几个问题 1. 同一节点在多个层次出现。 2. 只是简单的技术罗列,架构分层之间的关联不大。 3. 线上服务/应用层中HBase、Redis、Tomcat不是一方面的东西,混做一团。 4. 离线计算为什么又把SparkQL归类进去呢? 5. hive只能说是一个数据仓库工具,反而归类到数据源层 这样的架构水平,要么携程不想透露太多真实原创 2017-02-23 10:41:26 · 3882 阅读 · 0 评论 -
k8s容器内部应用向eruaka注册ip问题
springboot项目部署到k8s中,发现eruaka注册是容器id,这个其他应用是无法访问的参考Spring Cloud配置ip注册找不到${spring.cloud.client.ipAddress},现在pom.xml中添加:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-commo原创 2020-07-03 09:39:41 · 2687 阅读 · 0 评论 -
shardingsphere分表
shardingshpere 分表原创 2023-02-11 10:19:31 · 1460 阅读 · 0 评论 -
vue2 elementui描述列表
mockjs正则造数、flex布局、滚动条样式、el-descriptions描述列表。元素局中、元素内一左一右布局原创 2022-01-03 19:39:16 · 7005 阅读 · 1 评论 -
CompletableFuture异步并发
异步 completableFuture原创 2023-02-11 10:26:15 · 169 阅读 · 0 评论 -
安装kubeoperator
KubeOperator 2.6 官方文档,1 centos设置swap这个跟kubeoperator安装没关系,仅作记录cd /usrmkdir swapcd swap# 创建3G的文件dd if=/dev/zero of=swapfile bs=1G count=3mkswap /usr/swap/swapfilevi /etc/fstab/usr/swap/swapfile swap swap defaults 0原创 2020-06-12 15:32:12 · 805 阅读 · 0 评论 -
nacos替代config-server和Euraka
按照Nacos Spring Cloud 快速开始、Nacos Spring Boot 快速开始,将我之前项目依赖的config-server和Euraka替换过来,过程并不是那么顺利提示找不到配置org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.druidConfig': Injection of autowired dependencies fail原创 2020-06-03 10:38:43 · 1374 阅读 · 0 评论 -
k8s中dubbo注册IP和消费的问题
在系统迁移过程要考虑到平稳过度,先将部分应用迁移到k8s上,但是发现并没有那么简单从dubbo-admin中可以看到注册服务的ip是容器组ip,如果所有应用都在k8s中自然是没有问题,但如果k8s与虚拟机中的服务相互调用,就存在问题了,因为找不到ip。参考Docker 容器内运行 Dubbo 服务,启动容器,但是dubbo中还是容器的IP,并不是主机ipdocker run --name ab99755feae7 -d -p 9010:9010 -p 21716:21716 -e Dubbo_IP原创 2020-06-28 10:49:27 · 5553 阅读 · 3 评论 -
vue的组件\依赖
yarn vue nvm原创 2021-08-14 15:26:45 · 1120 阅读 · 0 评论 -
thrift通讯协议
总结一下2017年的时候使用的技术1 java中的使用1.1 生成thrift文件thrift-generator下载一下源码,自己编译一下。pom.xml<dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> <version>0.10.0&原创 2020-12-30 21:51:06 · 405 阅读 · 0 评论 -
第1.3章 docker部署Eureka集群
关于Eureka的描述,可以参考Eureka简介,对Eureka和zookeeper对比,我个人觉得还是很容易看的明白的 Eureka作为服务的注册中心,即生产环境必须使用集群才能保证系统之间稳定运行...原创 2019-07-05 16:09:54 · 2356 阅读 · 0 评论 -
vue2 leader-line画线
学命理,看书上说的格局,看多了有些就很崩溃,因为没有绝对统一的标准,导致沦为三教九流,我对这方面有些爱好,于是就想着是否可以通过leader-line,将格局的推理过程直观的展现出来,如果能做到是不是很炫呢js leader-line 学习及问题总结...原创 2021-12-25 11:58:45 · 5245 阅读 · 1 评论 -
shiro-spring-boot-starter
springboot shiro原创 2022-12-10 12:23:48 · 1257 阅读 · 0 评论 -
对业务开发的一些思考——低代码
没有方法论指导,我们做的东西又如何能成为最佳实践呢。下图来自Data Vault2.0方法论,它的最佳实践来自规范敏捷交付、自动化与最优化原则(CMMI、KPA和KPI)、六西格玛错误跟踪与减少原则、精益企业举措、以及周期缩短原则。敏捷理念很好,可惜很多公司将它作为压榨员工进度的工具,作为一个有些经验的工程师,不能不为那些为身体换钱的人感到惋惜,我们最终的目标就是最优化,高效而且轻松的把事情做得漂亮,那么需要在方法论的指导下持续总结、沉淀,才能对得起自己对工匠精神层面的追求。《建筑模式语言》中“模式原创 2021-10-24 10:15:43 · 228 阅读 · 0 评论 -
vue 子组件与子组件之间传参
封装可以让整体程序看起来很优雅,但有些问题需要解决,当然这些问题解决之后,开发效率自然就上去了,我的目标就是高效,然后能准点下班。靠时间换取金钱,意义不大。子组件与子组件之间是不能直接传值的,需要凭借父组件,这个也非常容易理解。1 子组件向父组件传参查询条件子组件,显示格局条件,如果超过8个,则显示下拉菜单,子组件通过this.$emit("addCond",item)传参,即子组件可以使用 $emit 触发父组件的自定义事件<template> <div>原创 2021-12-22 20:55:41 · 4122 阅读 · 0 评论 -
第8.1.2解析mht格式文件
有人建议改造一下mhtifier.py就可以解析mht格式文件,它的示例没有告诉我,怎么验证。而且我改造也失败了,可能是我的水平有限。Python :解析 word 文档(前程无忧简历),这篇文章的作者,告诉我们,51job的简历格式是mht格式的,虽然下载文件后缀是doc的。python3通过文件头判断文件类型,从这篇文章的代码,可以获取文件的真实格式,mht格式与eml格式差不多,网上说可...原创 2018-11-27 17:30:13 · 3063 阅读 · 0 评论 -
mybatis-plus
mybatis-plus原创 2022-12-10 09:07:09 · 965 阅读 · 0 评论 -
DV EV OV证书
很多年前一直想给自己做的产品加上CA证书,之前CA证书需要经过浏览器认证,自签名的证书浏览器还会给出警告。直到19年的时候因为微信小程序必须要证书,才接触到DV证书。21年当我再次想到是否需要该买证书的时候,我又想到了DV证书,在阿里上可以免费购买证书,通过配置nginx,验证是否可行呢,结果是ok的。过年的夙愿终于得以实现,而且还没有花钱。server { listen 80; server_name www.dzmsoft.com; return 3原创 2021-08-11 20:11:38 · 266 阅读 · 0 评论 -
feign与dubbo
1 feign1.1 原理Feign远程调用原理,这篇文章写得比较好。1.2 优化策略既然feign的通讯协议是http的,那么http的优化策略同样适用于feign常规配置如下feign: hystrix: enabled: true client: config: default: connectTimeout: 10000 readTimeout: 10000gzip压缩数据传输需要时间,gzip压缩可以减少微服原创 2021-08-01 11:54:25 · 3196 阅读 · 0 评论