- 博客(27)
- 资源 (10)
- 收藏
- 关注

原创 基于Rsyslog+Kafka+Flink+Clickhouse的高性能日志采集、分析、汇聚存储方法
我们要首先解决日志文件存储和分析的问题,鉴于Nginx日志数据量大的特点,我们必须选择一种功效的分析工具(能流式分析更好)和支持大数据量写入的数据库,经过各种Baidu和谷歌,最终定型为:Kafka + Flink + Clickhouse。
2022-01-08 23:55:43
2226

原创 高并发系统负载均衡与实时监控的实用方案
Nginx+ELK是当下高并发系统负载和监控的成熟方案,网上充斥着各种教程和最佳实践。可要在生产环境部署还是会面临着不小的挑战,生产环境首要满足的条件就是高可用, Nginx至少两个节点,如果后台服务多、并发高、访问接入点多情况,那单nginx节点的数量就会很可观;Elasticsearch要集群部署至少三个节点,对内存的要求也不低;Logstash和日志需要本地采集处理,多少个日志采集点就需要部署多少套,对内存要求不低。综上,这个方案俨然就是“吃机”大户,不但主机资源采购成本高,运维更具技...
2021-12-24 01:06:31
2554
1

原创 【架构选型】中小型软件公司微服务架构选型建议
笔者从事发大水我的精力,从微服务开发。微服务的优势在增量微服务的特性sping cloud alibaba huawei的一些看法
2020-12-18 22:33:48
1653
1
原创 Spring AI正当时,Java从此也可以开发AI应用了
然而,在OpenAI的ChatGPT等创新的推动下,生成式AI最近取得了进展,通过HTTP普及了与预训练模型的交互。虽然Document可以表示广泛的内容,例如整个文件,但RAG方法将内容分成更小的部分,以便包含在提示符中。有了这个可移植的API,你可以一开始瞄准一个AI聊天模型,比如OpenAI,然后很容易地切换到另一个AI聊天模型的实现,比如Amazon Bedrock的Anthropic model。由于需要专门的硬件,重新训练模型,特别是那些具有数十亿参数的模型是具有挑战性的。
2024-05-20 22:01:03
1108
1
原创 分布式事务我们真的需要么?
分布式事务,顾名思义,是指涉及两个或多个分布式资源(如数据库、消息队列等)的事务操作,要求这些操作要么全部成功,要么全部失败,以此保证数据的一致性。通过设计独立的服务边界,尽量减少跨服务的事务操作,利用API幂等性、事务日志和事件溯源等技术,可以在不引入分布式事务的情况下,实现业务逻辑的一致性。尽管分布式事务在某些关键场景下不可或缺,如金融交易系统,但大多数日常业务场景下,通过采用最终一致性模型、优化系统架构设计、实施有效的补偿机制,我们往往能避免分布式事务带来的复杂性和性能开销。
2024-05-18 22:06:23
598
原创 一个被忽略的日志采集框架Rsyslog
Rsyslog在日志收集和基础路由方面表现出色,而Logstash、Fluentd、Graylog和Splunk更侧重于日志的处理、分析和可视化。说起日志采集框架,大家动辄使用Logstash和Fluentd, 却忽略了Linux系统内置的日志框架Rsyslog,而且日常大家的应用服务都是部署在Linux服务器,可以减少三方组件的依赖。Rsyslog、Logstash、Fluentd、Graylog、Splunk、Filebeat和Metricbeat都是日志管理和分析工具,各自有其独特的优势。
2024-05-18 21:55:30
1073
原创 如何使公共组件与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
500
原创 你程序中的异常用对了么? 一个属性大幅减少系统的异常堆栈信息
因此可以在你自己的工程中,通过覆写RuntimeException的所有构造方法,避免一些无效的堆栈打印。如果启用了异常抑制,那么在一个异常(称为“主异常”)抛出时,如果另一个异常(称为“被抑制的异常”)也发生,则被抑制的异常会被添加到主异常的“抑制异常”列表中。控制台上打印着一堆异常堆栈信息,这不但覆盖了有价值的日志,也大大降低了程序的性能,而且这些错误堆栈信息自身的价值很小。,则可以在异常对象中保存空的堆栈跟踪信息,从而减少填充异常对象所需的空间和时间。,则表示不保留堆栈跟踪信息。
2023-12-05 17:30:00
211
原创 Vue 组件加载 WASM 模块的最简方法
Vue 组件加载 WASM 模块的最简方法。基于wasm-pack构建的wasm要集成到vue工程中,总是遇到这样那样的错误。本文讲解了vue集成wasm的最简方法,亲测有效
2023-06-19 23:49:24
2383
原创 Maven构建时告警提醒的处理
Maven构建时的提醒信息的处理。有关详细信息, 请使用 -Xlint:unchecked 重新编译。[WARNING] XxFilter.java: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
2023-03-24 22:45:14
4591
原创 关于ClickHouse字典表在分布式表中使用的问题
Clickhouse的字典表在分布式表中进行查询操作时,会报列不存在(THERE_IS_NO_COLUMN)的问题。
2022-12-29 00:09:46
1387
原创 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
1232
原创 开源症状自诊微信小程序的设计方案
大学做毕业设计时,开发过一款根据症状自我评估病因的“家庭医生”。十几年过去了,当年在宿舍边写查资料边写代码的情景还时常浮现现在脑海,时过境迁,Delphi的辉煌已成历史,如今由小程序驱动当年的数据库,让尘封毕设的“家庭医生”重获新生。疫情当下,献给那些封控在家,不方便去医院的人,用这样一款小程序对症状进行自我评估,做到心中有数。
2022-04-29 18:54:55
1345
原创 Nginx配置相关的问题
1. Nginx代理丢失非80端口的问题如果Nginx采用非80端口进行代理时,会丢失端口,可通过如下方式避免此问题:location /api { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:8080;}...
2022-01-24 23:21:17
2460
原创 献给2021年技术选型中被我否定的那些技术
近几年来,我的团队构建了部门最大规模的线上平台,也是部门迄今最成功的基于微服务架构的系统。每当做部门技术分享,我说的最多的是那些被我否定的技术框架,分析的核心问题是这些技术框架在解决什么问题,我们真的需要么? 就我的实践来讲,真的没什么可讲的,毕竟最近两年一直在对技术架构做减法。第一个否定的是ELK架构,平台上线之初,我认真的研究了一下ELK整个技术体系,并进行线上验证,存在如下几个问题,是我团队无法解决的:Elasticsearch的插入效率问题,每秒几百条的速度是个硬伤。 支撑系统3000TPS
2022-01-16 23:16:48
1133
原创 基于Rsyslog的日志文件采集办法
近几年笔者在生产环境中,很多日志处理场景中都适用了Rsyslog,在基于UDP的分布式日志汇聚、日志文件采集方面都有出色的发挥,“The rocket-fast system for log processing” 真不是吹的。在Rsyslog的官方文档中,发现Rsyslog已经提供了文件(imfile)输入方法,毕竟它就在系统中,拿来就用,还选什么 filebeat,logstash。
2022-01-10 23:09:05
1236
原创 【Mysql数据库系列】是时候升级到Mysql8 Innodb Cluster了
1)Mysql在8x版本的Innodb集群安装优化得当,避免了一些不必要的重启 (比如在5.7版本中dba.configLoaction() 后,必须要重启节点生效) 。2)Mysql8x的组复制更加智能、可靠,支持基于Binlog的GTID模式和数据拷贝模式,这个特性在把单节点或主从模式改为集群模式的时候,免去了手动同步数据,而且非常高效。3)快速在线添加列。由腾讯互娱DBA团队贡献的快速在线加新列功能,非常实用。笔者运维的系统很多表的规模都在千万级别,要在以前必须通过添加扩展表或从表的方式实现,现
2022-01-09 11:48:34
997
原创 [2021年终总结之Java篇] 与Java朝夕相处的这些年
虽然Java当前存在的问题,任然是学习编程的首选语言。 Java只是一种编程工具,程序员真正要学习的发现问题、分析问题和解决问题的能力。作为程序员应该具备:始终保持一种心境,遇到Bug还会废寝忘食,解决问题后的喜悦还是那么可爱;始终有种勇气,敢于否定一切;始终有个追求,把繁琐留给自己,让用户体验更加舒心。
2021-12-29 22:58:39
316
原创 【架构选型】就微服务特性而言Kubernates可以代替Spring Cloud么?
Spring Cloud 脱去Netflix公司的系列微服务组件的外衣,基本就是Spring Boot,那么,给Spring Boot 换装Kubernetes,又是一番怎样的景象?
2021-02-16 11:50:26
832
原创 CentOS7下Mysql安装与主从 (GTID) 集群搭建详细说明
不可否认Mysql InnoDB Cluster 模式运维具有很高的难度,后期我会逐步的分享相关的运维经验。如果团队中力量相对薄弱,又有高可用的需求,那么Mysql主从是一个不错的选择 。 下文有Mysql5.7.23为例讲解, 本博文讲述的步骤同样适用于Mysql8 和 Mysql 5.7 的其他版本。 本文分四个部分进行讲解:环境初始化 Mysql数据库安装 主从集群搭建一、环境初始化1. 修改系统最大文件打开数,直接执行下列脚本即可说明: 数据库服务器建议都要调整此...
2020-12-26 17:50:36
255
4
原创 【Mysql数据库系列】CentOS7下Mysql安装与Mysql Cluster集群搭建详细说明( Innodb Cluster)
一、环境准备1. 修改系统最大文件打开数,直接执行下列脚本即可说明: 数据库服务器建议都要调整此参数# 可参考 https://blog.youkuaiyun.com/robin90814/article/details/86705155cat <<EOF >>/etc/security/limits.conf* soft nofile 65535* hard nofile 65535EOF验证:ulimit -n2. 卸载相关mysql和mariad
2020-12-22 00:12:53
947
原创 Kubernetes(k8s)中Service代理容器外服务(Mysql、Redis、MongoDB)
在k8s中各服务之间通过内部域名【服务名.namespace】的形式进行调用非常方便, 但是容器集群内的服务如何调用部署在集群外的中间件(如:Mysql、Redis、MongoDB)呢?一、配置方法:其实, k8s的Service 可以通过独立配置Endpoints的方法,直接代理外部服务并支持代理多个端口, 代码如下:# describe: Service 代理外部服务# author: qianmuYZ# since: 2020-11-30apiVersion: v1kind:
2020-11-30 20:26:41
1991
2
OpenJDK8U-jdk_x64_linux_hotspot_8u232b09.tar.gz
2019-12-30
idea sbt更新资源库
2017-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人