![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
理论与实践
文章平均质量分 61
对研发过程中一些实践进行总结
IT 行者
一觉醒来看看崩溃的程序,瞬间精神抖擞,撸起袖子就干;夜幕降临,调试通过的程序是我最好的镇静剂。
展开
-
分布式事务我们真的需要么?
分布式事务,顾名思义,是指涉及两个或多个分布式资源(如数据库、消息队列等)的事务操作,要求这些操作要么全部成功,要么全部失败,以此保证数据的一致性。通过设计独立的服务边界,尽量减少跨服务的事务操作,利用API幂等性、事务日志和事件溯源等技术,可以在不引入分布式事务的情况下,实现业务逻辑的一致性。尽管分布式事务在某些关键场景下不可或缺,如金融交易系统,但大多数日常业务场景下,通过采用最终一致性模型、优化系统架构设计、实施有效的补偿机制,我们往往能避免分布式事务带来的复杂性和性能开销。原创 2024-05-18 22:06:23 · 474 阅读 · 0 评论 -
一个被忽略的日志采集框架Rsyslog
Rsyslog在日志收集和基础路由方面表现出色,而Logstash、Fluentd、Graylog和Splunk更侧重于日志的处理、分析和可视化。说起日志采集框架,大家动辄使用Logstash和Fluentd, 却忽略了Linux系统内置的日志框架Rsyslog,而且日常大家的应用服务都是部署在Linux服务器,可以减少三方组件的依赖。Rsyslog、Logstash、Fluentd、Graylog、Splunk、Filebeat和Metricbeat都是日志管理和分析工具,各自有其独特的优势。原创 2024-05-18 21:55:30 · 866 阅读 · 0 评论 -
如何使公共组件与Springboot 2/3及不同Java版本保持兼容
对于依赖HttpServletResponse的公共组件或工具,建议逐步迁移到使用ResponseEntity,以确保对Spring Boot 2、3以及不同Java版本(如JDK 8和11+)的支持。这样,你无需根据不同的环境编写分支代码,从而简化了维护工作。然而,随着Servlet 5.0及更高版本的发布,javax.servlet.http.HttpServletResponse已被移到jakarta.servlet.http.HttpServletResponse命名空间下。原创 2024-05-17 23:46:19 · 423 阅读 · 0 评论 -
你程序中的异常用对了么? 一个属性大幅减少系统的异常堆栈信息
因此可以在你自己的工程中,通过覆写RuntimeException的所有构造方法,避免一些无效的堆栈打印。如果启用了异常抑制,那么在一个异常(称为“主异常”)抛出时,如果另一个异常(称为“被抑制的异常”)也发生,则被抑制的异常会被添加到主异常的“抑制异常”列表中。控制台上打印着一堆异常堆栈信息,这不但覆盖了有价值的日志,也大大降低了程序的性能,而且这些错误堆栈信息自身的价值很小。,则可以在异常对象中保存空的堆栈跟踪信息,从而减少填充异常对象所需的空间和时间。,则表示不保留堆栈跟踪信息。原创 2023-12-05 17:30:00 · 120 阅读 · 0 评论 -
Vue 组件加载 WASM 模块的最简方法
Vue 组件加载 WASM 模块的最简方法。基于wasm-pack构建的wasm要集成到vue工程中,总是遇到这样那样的错误。本文讲解了vue集成wasm的最简方法,亲测有效原创 2023-06-19 23:49:24 · 1804 阅读 · 0 评论 -
Maven构建时告警提醒的处理
Maven构建时的提醒信息的处理。有关详细信息, 请使用 -Xlint:unchecked 重新编译。[WARNING] XxFilter.java: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。原创 2023-03-24 22:45:14 · 4241 阅读 · 0 评论 -
关于ClickHouse字典表在分布式表中使用的问题
Clickhouse的字典表在分布式表中进行查询操作时,会报列不存在(THERE_IS_NO_COLUMN)的问题。原创 2022-12-29 00:09:46 · 1208 阅读 · 0 评论 -
Mac中常用命令(持续更新)
1. 文本内容替换Mac中的这个命令与linux有点不同,它多了一个备份参数# 需要备份文件sed -i '.bak' 's/old_words/new_words/g' a.txt# 不需要备份文件sed -i '' 's/old_words/new_words/g' a.txt原创 2022-05-01 09:37:59 · 1209 阅读 · 0 评论 -
brew安装python2
Mac homebrew 成功安装 了puthon2原创 2022-04-27 16:45:12 · 4415 阅读 · 0 评论 -
【转发】75%新项目都可以“无脑”选择单体架构
75%新项目都可以“无脑”选择单体架构转载 2022-02-26 21:23:02 · 82 阅读 · 0 评论 -
献给2021年技术选型中被我否定的那些技术
近几年来,我的团队构建了部门最大规模的线上平台,也是部门迄今最成功的基于微服务架构的系统。每当做部门技术分享,我说的最多的是那些被我否定的技术框架,分析的核心问题是这些技术框架在解决什么问题,我们真的需要么? 就我的实践来讲,真的没什么可讲的,毕竟最近两年一直在对技术架构做减法。第一个否定的是ELK架构,平台上线之初,我认真的研究了一下ELK整个技术体系,并进行线上验证,存在如下几个问题,是我团队无法解决的:Elasticsearch的插入效率问题,每秒几百条的速度是个硬伤。 支撑系统3000TPS原创 2022-01-16 23:16:48 · 1110 阅读 · 0 评论 -
实用Linux命令大全【持续补充中】
持续积累的常用Linux命令原创 2022-01-14 08:30:21 · 1287 阅读 · 0 评论 -
基于Rsyslog的日志文件采集办法
近几年笔者在生产环境中,很多日志处理场景中都适用了Rsyslog,在基于UDP的分布式日志汇聚、日志文件采集方面都有出色的发挥,“The rocket-fast system for log processing” 真不是吹的。在Rsyslog的官方文档中,发现Rsyslog已经提供了文件(imfile)输入方法,毕竟它就在系统中,拿来就用,还选什么 filebeat,logstash。原创 2022-01-10 23:09:05 · 1124 阅读 · 0 评论 -
基于Rsyslog+Kafka+Flink+Clickhouse的高性能日志采集、分析、汇聚存储方法
我们要首先解决日志文件存储和分析的问题,鉴于Nginx日志数据量大的特点,我们必须选择一种功效的分析工具(能流式分析更好)和支持大数据量写入的数据库,经过各种Baidu和谷歌,最终定型为:Kafka + Flink + Clickhouse。原创 2022-01-08 23:55:43 · 2106 阅读 · 0 评论 -
[2021年终总结之Java篇] 与Java朝夕相处的这些年
虽然Java当前存在的问题,任然是学习编程的首选语言。 Java只是一种编程工具,程序员真正要学习的发现问题、分析问题和解决问题的能力。作为程序员应该具备:始终保持一种心境,遇到Bug还会废寝忘食,解决问题后的喜悦还是那么可爱;始终有种勇气,敢于否定一切;始终有个追求,把繁琐留给自己,让用户体验更加舒心。原创 2021-12-29 22:58:39 · 288 阅读 · 0 评论 -
高并发系统负载均衡与实时监控的实用方案
Nginx+ELK是当下高并发系统负载和监控的成熟方案,网上充斥着各种教程和最佳实践。可要在生产环境部署还是会面临着不小的挑战,生产环境首要满足的条件就是高可用, Nginx至少两个节点,如果后台服务多、并发高、访问接入点多情况,那单nginx节点的数量就会很可观;Elasticsearch要集群部署至少三个节点,对内存的要求也不低;Logstash和日志需要本地采集处理,多少个日志采集点就需要部署多少套,对内存要求不低。综上,这个方案俨然就是“吃机”大户,不但主机资源采购成本高,运维更具技...原创 2021-12-24 01:06:31 · 2428 阅读 · 1 评论 -
Mac用命令行在访达中打开指定目录
Mac用命令行快速在访达中打开指定目录原创 2021-11-23 13:05:54 · 3714 阅读 · 3 评论 -
【架构选型】就微服务特性而言Kubernates可以代替Spring Cloud么?
Spring Cloud 脱去Netflix公司的系列微服务组件的外衣,基本就是Spring Boot,那么,给Spring Boot 换装Kubernetes,又是一番怎样的景象?原创 2021-02-16 11:50:26 · 725 阅读 · 0 评论 -
【架构选型】中小型软件公司微服务架构选型建议
笔者从事发大水我的精力,从微服务开发。微服务的优势在增量微服务的特性sping cloud alibaba huawei的一些看法原创 2020-12-18 22:33:48 · 1607 阅读 · 1 评论