- 博客(55)
- 收藏
- 关注
原创 Apache Doris 高频问题排查指南:从报错到性能优化
官方文档-错误码章节](https://doris.apache.org/zh-CN/docs/dev/admin-manual/error-code/)| -400 | 查询超时 | 增大`query_timeout`参数 || -1010 | 函数参数不匹配 | 检查函数签名,如`date_format`格式 |- **FE关键日志**:fe/log/fe.warn.log(搜索`WARN`/`ERROR`)
2025-03-30 20:42:25
885
原创 开发复杂业务功能步骤
建立领域服务分层架构(Interface/Application/Domain/Infra)识别核心业务实体与关键业务规则(如金融系统的风控规则)创建用例矩阵(Actor/功能/优先级三维矩阵)安全合规要求(GDPR/等保三级等技术实现路径)建立业务指标度量体系(如结算系统的金额平衡校验)设立架构守护规则(ArchUnit测试用例示例)代码质量门禁(SonarQube规则集配置)建立架构健康度评估模型(耦合度/复杂度指标)熔断降级配置矩阵(不同业务场景的容错策略)规则引擎集成(Drools决策表配置示例)
2025-03-24 00:24:29
245
原创 ClientAbortException问题分析
是后端服务器(如 Tomcat、Spring Boot)在响应过程中检测到客户端连接中断时抛出的异常。用户主动中断:关闭浏览器、取消下载/上传操作。网络问题:客户端与服务器之间的连接突然断开。前端控制:通过 JavaScript 调用主动终止请求。数据一致性 > 资源效率:金融、电商等关键业务优先启用。资源效率 > 数据一致性:内容分发、实时通信等场景保持默认配置。
2025-03-16 22:24:57
870
原创 mysql大数量表添加索引方案
使用ALGORITHM和LOCK可以控制索引创建的方式和锁级别。在生产环境中,建议优先使用和LOCK=NONE,以减少对业务的影响。如果不确定操作是否支持INPLACE或NONE,可以先测试或查看的相关信息。
2025-02-23 10:49:38
485
原创 阿里云oss存储实践方案
如果数据不是太大,或者初期使用的时候直接买阿里云资源包就行,当数据量增长很快的时候,比如一天好几个G,就需要综合考虑了,不然成本会很高1、OSS对象存储只是作为存储服务使用,本身只具有存储功能, 可以将OSS数据下载重新存储到其他存储服务中。2、当前OSS降低存储成本主要就是通过转换存储类型的方式实现, 标准规格存储单价最高,深度冷归档存储规格数据单价最低。3、数据类型的转化当前可以通过生命周期自动转换,或者通过CopyObject接口自行转换。
2025-02-16 12:56:58
310
原创 nacos安全问题实践
nacos初始化的时候需要配置一些参数,如果用默认的参数就会存在一些安全问题,容易被黑客攻击。登录nacos后台管理-》权限管理,检查后门账号和权限信息,如果存在,则删除。3、配置应用程序只有读的权限,给不同的小组负责人配置nacos的相应的资源权限。2、检查线上nacos是否存在后门账号和权限。修改默认账号nacos密码。
2025-01-19 11:04:53
245
原创 oss实现文件预览实践
3、有了域名之后,词bucket就支持直接通过域名的方式访问,并且也不影响老域名的使用。2、绑定域名,如果没有话,在这里可以直接生成域名,并绑定ssl证书。例子:https://域名/bucket名称/文件名称。
2025-01-19 09:51:07
560
原创 ngnix显示404,重新配置后没有生效问题
2)后端服务问题,可以用curlhttp://ip:端口验证,如果没有问题,然后就是看看外网问题,然后集中排查nginx配置、telnet测试、安全组端口信息。1)使用nginx-sreload不起作用,需要查看下nginx下面access.log,error.log有没有日志。如果没有,可以用killallnginx,然后再启动,看看有没有报错的地方,我用的rewrite没有生效就是这个原因。当改动nginx某一个配置时候,如果没有生效,可能原因。
2025-01-01 17:25:44
288
原创 阿里云负载均衡SLB实践
基于上篇文章继续,如果你使用的是阿里云等云平台,通过配置nginx+keepAlived行不通,因为阿里云服务器不支持你虚拟出ip提供给外部访问,需要使用阿里云的负载均衡产品对应的产品有三个系列。
2024-12-08 23:55:57
526
原创 The last packet successfully received from the server was 11,877 milliseconds ago.数据库链接超时断开连接
2、如果用的druid数据库连接池,需要设置socketTimeOut。超时设计到从前端到后端几个步骤。1、设置前端超时时间。
2024-11-24 20:15:31
159
原创 spring cloud实战总结(优雅下线、灰度发布)
灰度发布通过在网关层根据特定规则将部分流量路由到新版本的服务实例上,同时保持大部分流量仍路由到旧版本服务实例,从而实现逐步过渡到新版本的目的。主要步骤是:将应用部署到灰度实例上,在nacos元数据标识灰度服务,然后通过网关获取到url灰度标识,通过拦截器路由算法路由到灰度实例上。1、在url中header加入灰度标识,例如: version: gray。4、应用层保存灰度信息,放到ThreadLocal中。5、dubbo、feign配置。3、nacos灰度配置。
2024-11-10 17:22:46
439
原创 spring、mybatis、并发、虚拟机总结
在Spring框架中,扩展接口是一种强大的机制,允许开发者在Spring容器的生命周期中插入自定义逻辑。:Spring通过反射机制利用bean的class属性指定支线类去实例化bean,如果实例化Bean过程比较复杂,可以通过实现。扩展方式为实现该接口,并重写。在这个时机,用户可以通过实现这个扩展接口来自行处理一些东西,比如修改已经注册的。接口,增加了在实例化阶段和属性注入阶段的扩展能力。接口定制实例化Bean的逻辑,扩展方式为实现该接口,并重写。扩展方式为实现该接口,并根据需要重写相应的方法。
2024-11-02 22:46:37
635
原创 代码整洁之道整理总结
6、要保持单元测试或者使用swagger, 单元测试可以保持变量数据信息。7、类尽可能的短小,访问文件代码过长,实现类不要超过1000行。2、函数方法要控制在200行以内,尽量做到一个函数只做一件事。4、方法调用数据传输尽量使用对象,也就是DTO有利于扩展性。8、系统迭代,是一个持续的过程,系统要进行持续重构。5、异常要定义不同的异常类,尽量不返回NULL。3、做有意义的注释,注释中没用的代码直接删除。1、不管是什么变量要有一个有意义的名称。9、系统设计:定分层、定结构、定接口。
2024-11-02 20:11:06
173
原创 程序员思维修炼总结
3、积累经验,在实践中进行积累,并认识到失败的重要性,压力会磨灭你的想法,所以不要有太大的压力,注意控制注意力,尽量避免被打扰,做好待办任务清单。1、要想达到金字塔顶,必须要随时用记事本记录好想法,然后跟踪想法,最后是去实践,经常性的做一些不是自己习惯的东西。做计划比计划本身更重要,计划是变的,不过和目标保持一直非常重要,只要安排定期学习,长期来看一定会成功。2、主动学习,所有的知识投资都有价值,运用SMART目标,指定一个具体的计划,要为不同阶段设立不同的目标。
2024-10-26 23:17:54
151
原创 Rabbitmq与xxl-job运维监控
在RabbitMQ中,交换机(Exchange)和队列(Queue)是两个核心组件,它们支持多种类型,以适应不同的使用场景。
2024-10-20 11:41:08
739
原创 阿里云数据库和redis运维
也可以通过show PROCESSLIST查看有没有锁等待。监控只要指标cpu、内存、磁盘读写、连接数。回话管理里面看看有没有长连接事务、锁等待。添加cpu、内存、磁盘使用率告警。库表恢复可以按时间点和备份集。
2024-10-06 15:31:07
206
原创 nginx性能优化及使用方面技巧
Nginx 的连接处理机制在不同的操作系统中会采用不同的 I/O 模型,在 linux 下,Nginx 使用 epoll 的 I/O 多路复用模型,在 Freebsd 中使用 kqueue 的 I/O 多路复用模型,在 Solaris 中使用 /dev/poll 方式的 I/O 多路复用模型,在 Windows 中使用 icop,等等。默认情况下,Nginx 进程只会在一个时刻接收一个新的连接,我们可以配置multi_accept 为 on,实现在一个时刻内可以接收多个新的连接,提高处理效率。
2024-09-22 16:16:38
1021
原创 3分钟理清QPS、TPS、RT、吞吐量以及它们直接的关系
如在手机上打开淘宝,在t1时刻点击商品查询按钮,客户端请求服务器获取商品数据然后客户端展示商品信息结束的时刻t2为止,那么t2-t1的时间间隔就是系统RT。RT的数值大小直接反映了系统的快慢。如淘宝上下单商品的时候,每当用户下单请求被服务器接受到之后,服务需要保存订单、扣减商品库存、确认支付等等这一些列的操作都完成之后并成功返回给客户端的过程,这就构成了一次事务。QPS是一个非常重要的指标,在618电商平台在大促期间,服务器需要处理大量用户请求,我们可以通过服务器的QPS来评估服务器的处理能力。
2024-09-17 09:42:35
649
原创 规则引擎drools及示例
首先我想明确下规则引擎的定义,因为很多小伙伴容易把规则引擎和流程引擎的概念混在一起。规则引擎通常是嵌入在应用程序组件中的,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。简单来说就是,规则引擎主要解决易变逻辑和业务耦合的问题,规则驱动逻辑。以前项目内写死在代码里的逻辑用规则引擎可以提出来,随时热变更。而流程引擎实现了将多个业务参与者之间按照某种预定义的规则进行流转,通常需要涉及到角色信息。
2024-09-16 21:20:43
316
原创 副业深思考
副业方向很多,但是如何去选择,这个是需要深入思考的,如果一个副业靠出卖时间来赚钱,这个是划不来的,那还不如找一份工作去干,付出一次时间,可以获取远远不断地收入,这个是做服务的底层逻辑,这样就可以筛选掉很多类型的副业。今天谈一谈我对程序员副业的思考,因为之前一直忙于工作,副业方面就耽搁了,越早做副业越好,技能能增加你的能力和经验,也是可以赚取额外收入的来源,同时也是对你未来发展方向的探索,摆脱中年危机的必经之路。有了1-6的商业闭环的时候,可以利用自媒体推广自己的产品或者服务,并能赚取广告费。
2024-09-08 12:17:57
258
原创 分布式开源报警系统frostmourne
不要把告警当做发现系统所有问题的手段,要通过日常巡检来解决,如果告警大多不需要立即处理,久而久之就不会再有人关注告警;环比相关的告警,是为了发现异常流量,对于流量陡起陡落的业务容易产生误报,根据自身实际情况来选择配置。注意:由于告警平台不支持普通用户跨部门操作告警规则,以下操作使用各部门admin权限账号操作。3、复制的告警规则只是基础的模版,部分规则的阈值设置要根据服务实际情况修改规则。对生产环境要有敬畏,谨慎操作,严禁直接操作到其他团队的告警规则。单个服务语法:xxxx{tc_bj_ewp_prod=
2023-08-13 21:43:06
736
原创 异步mq和线程池如何选择
异步处理:如果核心逻辑和非核心逻辑可以在后台异步处理,不需要立即返回结果,使用消息队列可以提高方法的响应速度,因为主方法不需要等待非核心逻辑的完成。例如,可以将消息队列用于系统之间的异步通信和解耦,同时使用线程池来处理接收到的消息,从而充分利用系统资源和提高系统性能。- 并发处理:如果核心逻辑和非核心逻辑需要并发执行,线程池是更合适的选择,它可以高效地管理和复用线程,从而提高系统资源的利用率。- 任务队列:线程池常与任务队列结合使用,将待处理的任务放入队列中,线程池中的线程从队列中获取任务并执行。
2023-08-01 22:48:03
1895
原创 【算法】二分查找代码模板
/第一个>=target的数的下标(不存在为n)//最后一个<=target的数(不存在为-1)// 开始位置(lower_bound):查询第一个>=target的数。// 范围 [-1表示不存在] + [0 .. n-1 ]// 范围 [0 .. n-1 ] + [n表示不存在]// target出现在[ans[0], ans[1]]// 如果要求4位小数,就多算2~4位,到1e-6或1e-8,保证精确。// 结束位置:查询最后一个<=target的数。// 更通用的二分模板。
2023-07-19 20:55:48
112
原创 【算法】二叉堆代码模板
while (child < heap.size()) { // child未出界,说明p有合法的child,还不是叶子。if (heap.get(p).key > heap.get(child).key) { // 小根堆。if (heap.get(p).key < heap.get(fa).key) { // 小根堆。// 当最小被取出后,指针向后移动一位,可能需要插入新的元素。// child存较小的孩子。// 让child跟p比较。// 在答案链表的末尾插入。// O(元素个数*logK)
2023-07-19 20:54:33
51
多项目正在使用的基于redis的分布式id生成器
2024-10-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人