献给2021年技术选型中被我否定的那些技术

近几年来,我的团队构建了部门最大规模的线上平台,也是部门迄今最成功的基于微服务架构的系统。每当做部门技术分享,我说的最多的是那些被我否定的技术框架,分析的核心问题是这些技术框架在解决什么问题,我们真的需要么? 就我的实践来讲,真的没什么可讲的,毕竟最近两年一直在对技术架构做减法。

第一个否定的是ELK架构,平台上线之初,我认真的研究了一下ELK整个技术体系,并进行线上验证,存在如下几个问题,是我团队无法解决的:

  1. Elasticsearch的插入效率问题,每秒几百条的速度是个硬伤。 支撑系统3000TPS,每日大约3000万条日志,存在明显瓶颈。而且ES相当耗费内存。
  2. 与CentOS系统默认安装的日志系统Rsyslog相比,Logstash的存在是个鸡肋,不明白为什么这么多人推崇。
  3. Kibana是为支持Elasticsearch而生的,不多说。

最终选用了Rsyslog + 【实时分析:Goaccess + 日志文件本地存储】 + 【离线分析: Flink + clickhouse+ superset】,环境搭建相对简单,对资源的要求也很低。最最重要的是不想ELK那样大版本升级那么频繁,而且还各种不兼容。

第二个否定的是Springcloud, 不可否认它是一个不错的微服务架构,很多团队也用这个框架交付了很多项目,但我无法忍受的是Springcloud的绝大部分微服务特性,K8S容器引擎都都已经提供了而且对程序是无侵入性的。不用Springcloud的理由很简单:

  1.  Springcloud + K8s的微服务特性是重叠的。 针对的业务场景越多,越能体现微服务的优势,再搭配K8s这样的容器引擎真是如虎添翼,但Springcloud这样一个完整的微服务解决方案和k8s从一些功能上是重叠的。如果业务场景单一,我真建议你开发一个大的本体应用,至少这样占用的服务器少,能省钱啊。
  2. Springcloud的版本升级很频繁, 难道我要经常全量升级我的线上环境么?

第三个否定的是JWT。项目之初,同事建议采用无状态会话机制,采用JWT,提升平台的并发性能。 这个技术我简单的了解了一下,就否定了:

  1. JWT看似节省了服务器的内存资源,但它是基于加密算法的,必定是CPU型,这对平台也是致命影响的。
  2. JWT携带了大量的客户信息,就算安全性不说,它每次请求中都带着这样几KB甚至十几KB的请求头,是很占用上行流量的,务必影响并发和吞吐量。
  3. JWT所SSO可以考虑,但是作为会话标识是肯定不行的。
  4. 一个平台是不可能做完全无状态的,有多少在线用户,客户肯定是在意的。

第四个否定的是MongoDB。 最初的我在生产环境上,真把它作为Nosql的存储方案了,甚至基于它的GridFS进行文件存储,但是存储数据量的增加,MongoDB无法满足查询需要,相同配置下,远不及clickhouse。文件存储方案也该用更加简单的Fastdfs。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT 行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值