自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构精进之路

公号「架构精进之路」,专注软件架构研究,技术学习与职业成长

  • 博客(514)
  • 收藏
  • 关注

原创 揭秘登上2021春晚舞台的黑科技-XR技术

我是架构精进之路,点击上方“关注”,坚持每天为你分享技术干货,私信我回复“01”,送你一份程序员成长进阶大礼包。‍2021牛年春晚的舞台效果太美了,在视觉表现、科技创新上做了诸多尝试,...

2021-02-14 17:16:07 5797 8

原创 系统稳定性建设实践总结

2020年,注定是个不平凡的一年。疫情的蔓延打乱了大家既定的原有的计划,同时也催生了一些在线业务办理能力的应用诉求,作为技术同学,需要在短时间内快速支持建设系统能力并保障其运行系统稳定性...

2020-12-03 12:45:00 3370 1

原创 无缝切换,实现多厂家大模型高效对接

随着业务需求的多样化,大家希望能够逐一对比和探索不同的大模型,以便选择最适合的解决方案。然而,不同模型的对接方式各异,请求格式、参数解析也各不相同,这给开发者带来了不小的困扰。借助这一方案,研发同学可以更专注于业务逻辑的实现,而无需为不同模型的适配问题头疼,助你在 AI 的浪潮中游刃有余。事实上,OpenAI 已经为我们提供了现成的参考实现,只需稍作调整即可轻松集成到你的项目中。,通过统一的接口设计,屏蔽了底层模型的差异,使开发者能够无缝切换和对接不同的大模型。私藏多年的系统性能优化十大绝招(万字干货)

2025-03-14 08:36:44 511

原创 Deepseek 这么厉害,普通人怎么用好它?

点击蓝字,关注我们DeepSeek 学习内容,持续更新,欢迎关注~最近,Deepseek 的风头可谓是一时无两,相关消息一波接着一波。它强大的能力让人惊叹不已,写代码、做翻译、生成文案……简直无所不能!不少小伙伴跃跃欲试,却又担心自己不是程序员、不会写代码,用不好这么“高大上”的工具。许多之前不了解 AI 的人,都开始纷纷入坑。DeepSeek 功能强大,但普通人如何才能充分利用其 AI 能力呢?...

2025-02-19 08:43:30 957

原创 基于 LangServe 的 Deepseek 本地大模型服务化实践

点击蓝字,关注我们DeepSeek 学习内容,持续更新,欢迎关注~在人工智能技术飞速发展的今天,大模型(LLM)已成为推动 AI 应用落地的核心驱动力。上次分享「普通人上手 Deepseek 的实用攻略」,我们已经将 Deepseek 大模型的能力高效地部署到本地环境,并对外提供稳定的服务。本文将分享我们基于LangServe框架,将DeepSeek 本地大模型服务化的实践经验,带你一步步...

2025-02-12 19:15:18 680

原创 普通人上手 Deepseek 的实用攻略

点击蓝字,关注我们DeepSeek 学习内容,持续更新,欢迎关注~近期,DeepSeek 作为人工智能领域一颗新星,冉冉升起,引发业界广泛关注。这款由深度求索公司开发的AI工具,以其强大的功能和广泛的应用前景,迅速成为科技圈的新宠,相信在春节期间也刷爆了大家的朋友圈。作为研发同学,应该不仅仅了解一些新闻报道,更想上手亲自体验一下,那该如何操作呢?最近花时间研究了下,上手体验 DeepSeek 有以...

2025-02-07 18:26:52 857

原创 近期爆火的 AI Agent,运行原理全解析

点击蓝字,关注我们“Android、iOS 和 Windows 都是平台,AI Agent 将成为下一个平台”,比尔·盖茨在他的博客文章中这样说到。那让比尔·盖茨都为之倾倒的 AI Agent,究竟是什么呢?随着 AI 技术的日益普及,未来五年内我们将不再使用不同的应用程序来完成不同的任务,相反只需用日常用语告诉你的手机或电脑想要做什么,它们就能够处理你的请求。在不远的将来,任何上网的人都将能够拥...

2025-01-22 17:58:14 858

原创 硬核干货!一文掌握MySQL核心日志:binlog 、redo log、undo log

hello,大家好,我是张张,「架构精进之路」公号作者。在MySQL 中我们经常会接触到三个核心日志,它们分别是:binlog、redo log、undo log。好多同学对于它们可能并不陌生,但是具体区分起来各自的功能用途以及实现原理,那可能认知就会比较模糊了,今天就跟大家一起,来清晰明了的介绍一下这些日志的核心思想和功能原理。1 binlog1.1 binlog 设计目标binlog 记录了对...

2025-01-15 11:56:37 845

原创 Redis 经典缓存问题:一致性、穿透、击穿、雪崩与污染

Redis 是一种广泛应用的高性能内存数据库,常用于缓存场景以提升系统性能和用户体验。然而,使用 Redis 缓存时,可能会遇到一些经典问题,比如一致性问题、缓存穿击、缓存穿透、缓存雪崩,以及缓存污染等。这些问题如果不加以有效处理,可能导致系统性能下降,甚至引发服务不可用的严重后果。本文主要探讨Redis作为缓存,在实践中可能会有哪些问题。本文目录:为什么要理解Redis缓存问题缓存穿透缓存击穿缓...

2025-01-10 17:36:53 782

转载 有趣的提问:12306订票系统在世界上属于什么水平?

没错,就是世界第一,而且极其牛逼。我很佩服设计这套算法和系统的人。马上又即将迎来一年一度的春运高峰,我们来看看知友们都是如何评价我国铁路订票系统的——也就是大名鼎鼎的 12306。感觉非常有意思。先来看看这个 1.8 万赞的,我觉得说得非常有道理(狗头必须加上),所以也趁机点了赞。我只能告诉你,12306,曾经出价10亿,如果不够,可以加,让他们稳固系统,保证大家订票不出问题,结果,全世界最顶尖的...

2025-01-08 08:23:21 42

原创 逃离“信息茧房”:不做被圈住的囚徒

引子最近读书看到一个有趣的话题,感觉挺有意思,拿来分享一下。信息茧房(Information Cocoons)“指人们的信息领域会习惯性地被自己的兴趣所引导,从而将自己的生活桎梏于像蚕茧一般的“茧房”中的现象。当用户困于喜欢的东西时,相应的他所不喜欢的东西和差异性价值观就会被屏蔽掉,久而久之可能进一步逃避社会中的种种矛盾,成为与世隔绝的孤立者。这一概念是由哈佛大学教授:桑斯坦(Cass R. ...

2024-12-31 08:34:21 557

转载 Nacos 之外,配置中心不可忽视的另一款 “神器”

“配置”的本质是什么呢?配置的表象,一个配置项可能是key-value,value可能是一个有限值的集合。从我的理解来说,本质上是因为我们人类没有办法掌控和预知一切,所以我们需要人为的预留一些线头,以便拨弄这些线头调整系统的飞行状态。所以我觉得配置中心是程序运行时动态调整行为能力的一种手段,而且这个是上到生产,在运行时想调整行为的几乎唯一的一个手段。1. 基本概念由于Apollo 概念比较多,刚开...

2024-12-27 11:36:26 46

转载 解析共享单车背后的技术奥秘

经常上班赶时间,出了家门赶紧就扫个单车骑到地铁站。我们经常骑的共享单车到底是什么通信原理,有人了解过吗?一、智能车锁二、芯片供电三、扫码解锁四、支付系统五、蓝牙模块六、GPS定位七、物联网技术一、智能车锁:核心硬件在共享单车的诸多组件中,智能车锁无疑占据着最为核心的地位,它宛如一位忠诚的卫士,肩负着控制车辆状态与精准定位的重任。车锁内部巧妙融合了嵌入式芯片(内置通信模块)、GPS 模块以及物联网 ...

2024-12-24 08:34:12 72

转载 适宜 Redis 的16种应用场景

Redis 是一款高性能的 key-value 存储系统,具有丰富的数据结构和强大的功能,在众多领域都有着广泛的应用。以下最适宜 Redis 的16种应用场景:1、缓存2、数据共享分布式3、分布式锁4、全局ID5、计数器6、限流7、位统计8、购物车9、用户消息时间线timeline10、消息队列11、抽奖12、点赞、签到、打卡13、商品标签14、商品筛选15、用户关注、推荐模型16、排行榜1、缓存...

2024-12-19 08:31:24 779

转载 如果安排你做架构师,你该如何开展工作?

前言今天我们来了解一些关于软件设计文档的基础知识,这样你在学习后面的具体案例时,就能更加清楚地理解文档是基于什么方式来组织的了。首先,请你设想这样一个场景:如果公司安排你做架构师,要你在项目开发前期进行软件架构设计,你该如何开展你的工作?如何输出你的工作成果?如何确定你的设计是否满足用户需求?你是否有把握最后交付的软件是满足要求的?是否有把握让团队每个工程师清楚自己的职责范围并有效地完成开发工作…...

2024-12-11 08:32:21 60

原创 关于 BFF 架构设计的胖瘦之争

hello,大家好,我是张张,「架构精进之路」公号作者。前段时间,整理过一篇《应该如何正确理解BFF架构设计?》的文章,最近又做了进一步研究,发现业界还存在BFF架构的胖瘦之争,大家纠结的点到底是什么?今天我们一起来聊聊吧。一、什么是BFF最开始,我们还是先明确下BFF是什么吧,由于前文已经做过介绍了,这里就简单的提一下。BFF:Backends For Frontends(服务于前端的后端)。B...

2024-12-06 08:34:24 974

原创 代码审查,从Unix设计哲学到编码设计原则

大家好,我是张张,「架构精进之路」公号作者。随着研发团队规模的逐步扩大,新项目及新成员越来越多,如何做好 code review,把控研发人员的代码质量很是关键。相信大部分团队,谈到 code review 时候就会面漏哀状:“上线时间倒排,研发工期这么紧,连码代码的时间都不够了,你还要我CR?”“上版的需求,这版就变了,代码生命周期太短,烂就烂吧,反正能用就行啦”最近在团队内 CodeRevie...

2024-12-03 08:30:42 974

原创 重拾我的架构启蒙书,如遇故知

???? 最近重读了《架构整洁之道》这本书,重拾旧书,如遇故知。大约六年前的时候,记得那时自己还是个架构新手,虽然掌握些基础理论,但还不能对已有模式进行技术创新,或者缺乏一些可以参考指导的架构设计流程。这些问题我在《整洁架构之道》中找到了答案。软件架构的构建规则独立于其他任何变量。 —...

2024-11-29 08:30:21 946

原创 身为技术人,如何打造一场让人眼前一亮的技术分享?

在日常工作中,我们经常会学习到一些“奇淫技巧”或解决方案,总忍不住想要和团队或社区做分享。然而,自己了解和能够清晰地分享出来,是两个完全不同的层次。对于每个技术同学都可能存在同一个问题:如何做好一场技术分享呢?在现实生活中,在我们自己看来,可能会存在很多因素会导致我们可能做不好一场技术分享,例如:我是个内向性格,特别不善于表达,根本不是当众做演讲的材料我的专业技术研究不是很深入,被听众嘲笑怎么办?...

2024-11-26 08:31:34 800

转载 微服务架构的四大核心设计原则

一前言微服务是一种架构风格。一个大型的复杂软件应用,由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好的完成该任务。那么关于微服务的设计原则有哪些呢?如下:AKF拆分原则前后端分离原则无状态服务RestFul的通信风格二AKF拆分原则业界对于可扩展的系统架构设计有一个朴素的理念,就是:通过加机器就可以解决容量和可用性问题...

2024-11-22 08:31:37 89

转载 ElasticSearch 搜索原理,原来可以这样轻松上手

提到Elasticsearch,做业务开发的同学是不是既陌生又熟悉呢?说陌生,是因为它并不跟MySQL一样,天天拿来做存储查询数据用;说熟悉,我们排查问题查询的ELK日志,文本分词检索等场景,好像又离不开它....Elasticsearch 特别擅长处理各种各样的数据类型,不管是文本、数字,还是其他稀奇古怪的玩意儿,它就像一个超级收纳大师,把所有的数据都放在合适的位置,还能让你轻松地找到它们。今天...

2024-11-19 08:30:12 41

转载 面试官:存储IP地址,你会用什么数据类型?

在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串。但是没有给出具体原因。为了搞清楚这个原因,查了一些资料,记录下来。相对字符串存储,使用无符号整数来存储有如下的好处:节省空间,不管是数据存储空间,还是索引存储空间便于使用范围查询(BETWEEN...AND),且效率更高通常,在保存I...

2024-11-14 08:30:50 50

原创 一文带你快速上手DDD 领域驱动设计

DDD 让人感觉晦涩难懂,主要是因为DDD诞生之初,是一个纯粹的理论体系,它包含了各种复杂且难以理解的概念,它那一堆名词与理论,让人看起来很费力。今天我们来直击其本质,让你快速上手DDD 领域驱动设计,let's go!1、什么是 DDDDDD(Domain-Driven Design,领域驱动设计)是一种软件设计方法,专注于通过深入理解业务领域来构建复杂的软件系统。DDD的核心思想是将业务需求与...

2024-11-08 08:30:09 1066

原创 一张表到底建多少个索引才是合适呢?

上周的一天,到公司接了杯水刚刚坐稳,就看到 DBA就在群里@ 某个研发帅哥,说“你们表已经有10个索引了,怎么这次还要加呢?”关于索引,是数据库后台用来加快查询速度的强大工具,索引通过提供快速查找所需数据的方法来增强查询能力。但我们经常听到这样一句话:“索引是把双刃剑”。说明索引并不是越多越好,索引可以提高查询的效率,但会降低写数据的效率,有时不恰当的索引还会降低查询的效率。那我就在想:一张表到底...

2024-11-06 08:30:42 1295

转载 深入理解Nginx工作原理

NGINX以高性能的负载均衡器,缓存,和web服务器闻名,驱动了全球超过 40% 最繁忙的网站。在大多数场景下,默认的 NGINX 和 Linux 设置可以很好的工作,但要达到最佳性能,有些时候必须做些调整。NGINX被广泛应用于大规模网站、Web应用和移动应用等领域,以其卓越的性能、高并发处理能力和低内存消耗而闻名。以下是NGINX的一些特点:高性能:通过采用事件驱动架构和异步非阻塞处理方式,使...

2024-11-01 08:31:12 195

转载 微服务为什么要用到服务网关?

一、什么是服务网关服务网关为客户与服务系统之间的交互提供了统一的接口,也是管理请求和响应的中心点,选择一个适合的服务网关,可以有效地简化开发并提高系统的运维与管理效率。服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。...

2024-10-29 08:32:02 55

转载 详解三大权限模型:ACL,ABAC,RBAC

权限控制是软件系统中常见的模块之一,权限模型是信息安全管理中用于定义和控制不同用户对系统资源访问权限的方法。每种模型有其独特的方式来指定谁可以访问什么资源、在什么条件下可以访问以及可以执行哪些操作。本文对三种最常见的权限模型进行介绍。1. ACL 访问控制列表ACL是一种基于对象和主体的权限控制模型,它通过为每个对象定义一个访问列表来进行权限管理,根据对特定对象的访问权限,来控制主体对该对象的访问...

2024-10-23 08:31:11 837

转载 后端API接口,优雅设计方法分享

在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟)一般系统的大致整体架构图如下:需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太low了,什么网关啊,缓存啊,消息中间件啊,都没有。因为这篇主要介绍的是API接口,所以我们聚焦点,其他的模块小伙伴们自行去补充...

2024-10-17 08:31:25 95

转载 关于软件工程,经常被你忽略的一些真知灼见

很少有人从头开始构建代码对领域的认知比会写代码更重要!文档编写没有得到足够重视代码是次要的,商业价值才是第一的你需要和不称职的人打交道大部分时间都在与不确定性打交道假设所有东西都有bug这不是一份理想的工作美学是教不来的即使你不想给出估算,但还是会有人问你并非所有的会议都是无用的结论按照惯例,首先声明,以下内容皆为个人观点。但,无论你是经验丰富的专业人士还是刚刚入行的小白,都希望下面这些见解能够给...

2024-10-10 08:31:34 312

原创 五种提升工作效率且经科学验证的方法

之前,我曾天真地想:“写论文能有多难?创办一家公司又能难到哪里去呢?”然而,仅仅过了几个星期,我就得到了答案:极其困难,而且是双倍的困难。尤其是当你妄图仅仅凭借简单的努力就想收获成果的时候。单纯依靠力量和意志力是无法长久支撑的。在经历了一番毫无意义的兜兜转转之后,我决定像对待自己的事业和论文一样,严肃对待自己的工作效率问题。实际上,我将个人效率置于所有事务之上。我会运用科学的方法去完成更多的工作,...

2024-09-30 08:31:26 898

转载 架构设计原则:SPI 与 API 该如何选择?

背景第一次听说 SPI 是阅读《软件框架设计的艺术》,以后陆续在 JDBC 和 SpringBoot 中发现了以这种形式组织代码的方式,本文给出为什么要区分 SPI 和 API 的一个思考过程。从面向接口编程说起我们在“调用方”和“实现方”之间引入了“接口”,上图没有给出“接口”应该位于哪个“包”中,从纯粹的可能性上考虑,我们有三种选择:“接口”位于“调用方”所在的“包”中。“接口”位于“实现方”...

2024-09-19 08:31:39 192

原创 数据库表字段为何默认为 NOT NULL?

目前大部分的开发现状来说,我们都会把字段全部设置成 NOT NULL 并且给默认值的形式。最近在 Review 代码时候,仍然偶尔发现数据库字段很多没有设置 NOT NULL,为什么要设置成 NOT NULL 呢?来自「高性能MySQL」中有这样一段话:尽量避免NULL很多表都包含可为NULL(空值)的列,即使应用程序并不需要保存NULL也是如此,这是因为可为NULL是列的默认属性。通常情况下最...

2024-09-12 08:31:14 1257

原创 深入剖析 SSO 和 OAuth:解锁单点登录与授权的技术密码

前言在当今数字化的时代,我们每天都在与众多的网络应用和服务打交道。无论是工作中的企业级应用,还是生活中的各类社交、娱乐平台,用户体验和安全性都是至关重要的考量因素。而 SSO(Single Sign-On,单点登录)与 OAuth(Open Authorization,开放授权)就是在这个领域中发挥着关键作用的两项重要技术。OAuth 不是SSO,尽管开发人员经常将两者混淆。大多数混淆源于这样一个...

2024-09-11 08:31:26 1283

转载 如何防范 Token 遭遇伪造、篡改与窃取?—— 安全性问题全解析

引言随着IT和互联网的发展,从国家到企业,网络安全成为数字经济安全的重要内容,是一项每天、长期都要面对的问题。稍大一点的公司每年也都会有护网行动。随着技术的发展,Token的安全性已成为一个至关重要的议题,Token不仅被广泛用于用户身份验证,还承担着会话管理等关键任务。本文我们就来聊一聊防范伪造、篡改、窃取问题的解决方案。JWT提到token,就不得不提到JWT。什么是JWT❝Json web ...

2024-08-30 12:15:47 1208

转载 如果面试官询问微服务架构设计,该如何作答?

为什么要做微服务?微服务一直是近几年的技术热点,凡是谈到架构设计,毫无疑问都离不开微服务这个话题。无论是做架构设计,还是只是做业务开发,几乎在所有的面试中,微服务设计几乎是必问的一道面试题。另外,在我们的实际工作中,几乎百分之80的公司,微服务也都是架构演变升级的方向。那么,为什么要做微服务呢?微服务的出发点是什么呢?单体架构达到瓶颈业务复杂度上升,扩展困难,维护费力度上升,牵一发动全身团队规模扩...

2024-08-23 08:31:20 119

转载 大模型原理:一场通透的剖析之旅

生成式 AI 太火爆了,可以说无处不在,频频刷爆我们的朋友圈。你可能已经试用过 ChatGPT 了,甚至已经把它当作你的智能小助手。但我知道很多人心里会有个疑问:这些 AI 模型的智能究竟是怎么来的?今天咱们就来聊聊这个话题。我会用大家都能懂的,而不是那些让人头大的高等数学术语来解释生成式文本模型的工作原理,揭开它的神秘面纱,把它变成简单的计算机算法。LLM 的功能首先,我要澄清人们对 LLM 工...

2024-08-20 08:30:53 90

转载 疑问:加密后的数据如何进行模糊查询?

我们知道加密后的数据对模糊查询不是很友好,本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路,希望对大家有所启发。一、背景为了数据安全我们在开发过程中经常会对重要的数据进行加密存储,常见的有:密码、手机号、电话号码、详细地址、银行卡号、信用卡验证码等信息,这些信息对加解密的要求也不一样,比如说密码我们需要加密存储,一般使用的都是不可逆的慢hash算法,慢hash算法可以避免暴力破解(典型的用...

2024-08-07 08:30:39 207 2

转载 Redis 架构详解,值得收藏!

Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。Redis 更准确的描述是一个数据结构服务器。Redis不是通过迭代或者排序方式处理数据,而是一开始就按照数据结构方式组织。早期,它的使用很像 Memcached,但随着 Redis 的改进,它在许多其他用例中变得可行,包括发布-订阅机制、流(streaming)和队列。主要来说,Redis 是一个内存...

2024-07-31 08:30:09 621

原创 聊聊 Redis 的高可用

高可用性(HA),原本是系统的一个特性,旨在确保在高于平均水平的时间内保持约定的运行性能水平,通常是正常运行时间。Redis 作为一个内存数据库,其数据通常存储在内存中,一旦发生故障,可能导致数据丢失或服务中断,避免单点故障至关重要,这样系统才能顺利快速地恢复。Redis 高可用 是指 Redis 通过一系列技术手段确保在面临故障的情况下也能持续提供服务的能力。由于我们现在已经进入了一个分布式系统...

2024-07-25 08:30:21 608

转载 经典面试题:Redis为什么这么快?

Redis有多快根据官方基准测试,在具有平均硬件的Linux机器上运行的单个Redis实例通常可以为简单命令(O(N)或O(log(N)))实现8w+的QPS,使用流水线批处理可以达到100w。从性能角度来看,Redis可以称为高性能的缓存解决方案。Redis为什么这么快面试时经常被问到Redis高性能的原因,典型回答是下面这些:C语言实现,虽然C语言有助于Redis的性能,但语言并不是核心因素。...

2024-07-24 08:30:49 142

二维码生成接口(含源码),简单易用

1、二维码生成接口(含源码),文档注释全面,简单易用 2、服务接口说明:功能全面,可以定制内容、尺寸、前景色、背景色及透明度 3、一看就会,调用简单,易于应用

2022-12-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除