架构技术栈

[关键词特辑]技术栈、开发架构与项目开发 技术栈和开发架构的选择是项目开发中的关键决策,它们对项目的各个方面都有重要影响。选择合适的技术栈和开发架构,可以提高开发效率,降低维护成本,提升系统性能和安全性,从而确保项目的成功。在实际项目中,应综合考虑项目需求、团队技能、性能要求、成本和生态系统等因素,做出最符合项目目标的选择。 阅读详情

互联网技术演进的模式

互联网业务千差万别,但由于它们具有“规模决定一切”的相同点,其发展路径也基本上是一致的。互联网业务发展一般分为几个时期:初创期、发展期、竞争期、成熟期。

不同时期的差别主要体现在两个方面:复杂性、用户规模。

业务复杂性

互联网业务发展第一个主要方向就是“业务越来越复杂”,我们来看看不同时期业务的复杂性的表现。

初创期
发展期
竞争期
成熟期
用户规模

互联网业务的发展第二个主要方向就是“用户量越来越大”。互联网业务的发展会经历“初创期、发展期、竞争期、成熟期”几个阶段,不同阶段典型的差别就是用户量的差别,用户量随着业务的发展而越来越大。

用户量增大对技术的影响主要体现在两个方面:性能要求越来越高、可用性要求越来越高。

量变到质变

在这里插入图片描述

负载均衡

DNS 用于实现地理级别的负载均衡,而 Nginx、LVS、F5 用于同一地点内机器级别的负载均衡。其中 Nginx 是软件的 7 层负载均衡,LVS 是内核的 4 层负载均衡,F5 是硬件的 4 层负载均衡。

软件和硬件的区别就在于性能,硬件远远高于软件,

Ngxin 的性能是万级,一般的 Linux 服务器上装个 Nginx 大概能到 5 万 / 秒;

LVS 的性能是十万级,没有具体测试过,据说可达到 80 万 / 秒;

F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有。硬件虽然性能高,但是单台硬件的成本也很高,一台最便宜的 F5 都是几十万,但是如果按照同等请求量级来计算成本的话,实际上硬件负载均衡设备可能会更便宜,例如假设每秒处理 100 万请求,用一台 F5 就够了,但用 Nginx,可能要 20 台,这样折算下来用 F5 的成本反而低。

因此通常情况下,如果性能要求不高,可以用软件负载均衡;如果性能要求很高,推荐用硬件负载均衡。

4 层和 7 层的区别就在于协议和灵活性。Nginx 支持 HTTP、E-mail 协议,而 LVS 和 F5 是 4 层负载均衡,和协议无关,几乎所有应用都可以做,例如聊天、数据库等。

目前很多云服务商都已经提供了负载均衡的产品,例如阿里云的 SLB、UCloud 的 ULB 等,中小公司直接购买即可。

用户管理

单点登录(SSO)

稍微大一点的互联网业务,肯定会涉及多个子系统,这些子系统不可能每个都管理这么庞大的用户,由此引申出用户管理的第一个目标:单点登录(SSO),又叫统一登录。单点登录的技术实现手段较多,例如 cookie、JSONP、token 等,目前最成熟的开源单点登录方案当属 CAS,其架构如下(https://apereo.github.io/cas/4.2.x/planning/Architecture.html )

第三方应用接入

除此之外,当业务做大成为了平台后,开放成为了促进业务进一步发展的手段,需要允许第三方应用接入,由此引申出用户管理的第二个目标:授权登录。现在最流行的授权登录就是 OAuth 2.0 协议,基本上已经成为了事实上的标准,如果要做开放平台,则最好用这个协议,私有协议漏洞多,第三方接入也麻烦。

在这里插入图片描述

消息推送

消息推送根据不同的途径,分为短信、邮件、站内信、App 推送。除了 App,不同的途径基本上调用不同的 API 即可完成,技术上没有什么难度。例如,短信需要依赖运营商的短信接口,邮件需要依赖邮件服务商的邮件接口,站内信是系统提供的消息通知功能。

App 目前主要分为 iOS 和 Android 推送,iOS 系统比较规范和封闭,基本上只能使用苹果的 APNS;但 Android 就不一样了,在国外,用 GCM 和 APNS 差别不大;但是在国内,情况就复杂多了:首先是 GCM 不能用;其次是各个手机厂商都有自己的定制的 Android,消息推送实现也不完全一样。因此 Android 的消息推送就五花八门了,大部分有实力的大厂,都会自己实现一套消息推送机制,例如阿里云移动推送、腾讯信鸽推送、百度云推送;也有第三方公司提供商业推送服务,例如友盟推送、极光推送等。

存储云、图片云

存储云和图片云通常的实现都是“CDN + 小文件存储”
只有服务器提供文件存储:FastDfs

微服务

在这里插入图片描述
微服务架构最佳实践 - 基础设施篇
自动化测试
自动化部署
配置中心
接口框架
API 网关
服务发现。服务发现主要有两种实现方式:自理式和代理式。
服务路由
服务容错
服务监控
服务跟踪
服务安全

原文转载

https://blog.youkuaiyun.com/zhangbijun1230/article/category/7519360/5

【编程架构实践】关于技术栈和架构 对于系统架构,或者程序架构,后来的程序员面对前任留下来的东西旺旺是脸上波澜不惊,心中翻云覆雨,虽然谁技术是相通的,但不同的程序员、不同的架构师面对同样的问题是,态度可能不一样,也许系统中用的某些软件不是他擅长的,或者某些代码风格不是他习惯的,所以很容易就会滑向重构的坑,为了自己运维使用的舒服而把架构中大量的组件重构,而不考虑是否会业务带来价值,如果这种问题不解决,下一波人进来还会重复这种问题,就会不断进入重构再重构的恶性循环。很多时候,尤其是新人,由于经验、视野问题,找不到可用的轮子,遍从头创建一个轮子。 阅读详情

相关推荐

ChatGPT 工程侧系统架构:架构设计、技术栈、部署架构以及性能优化等方面

在 ChatGPT 中,我们可以使用 PyTorch 实现各种模型训练和推理技术,例如数据处理、模型定义、模型训练、模型推理、模型优化、模型压缩和 GPU 加速等。通过学习这些技术,我们可以更好地理解和应用深度学习技术,提高模型的性能和效率,为 ChatGPT 的应用提供更好的支持和服务。

AI天才研究院 4128

spring cloud入门学习以及spring cloud技术栈架构图(分布式系统架构图)

spring cloud入门学习以及spring cloud技术栈架构图。分布式系统架构图。 一、Spring Cloud是什么? spring cloud是微服务架构的一整套微服务解决方案的技术栈,是这些技术栈的框架集合,包含了服务治理、注册中心、配置中心、客户端负载均衡、网关、限流熔断、分布式链路追踪、分布式事务等技术栈,这些技术栈提供了微服务架构存在的各种问题的解决方案。

新林的博客 8369

OpenAI 团队组织架构和研发技术栈

OpenAI 是一家致力于推动人工智能技术发展的公司,成立于2015年。其目标是确保人工智能技术造福全人类。为了实现这一目标,OpenAI 采用了多种先进的技术和组织架构来推动其研发工作。首先,OpenAI 在技术研发方面投入了大量资源,汇集了全球顶尖的科学家、工程师和研究人员。他们不断探索和开发新的算法和模型,以提升人工智能的性能和应用范围。OpenAI 的研究涵盖了深度学习、强化学习、自然语言处理等多个领域,力求在每一个方面都取得突破。其次,OpenAI 注重合作与开放。

AI天才研究院 1万+

【收藏】19张最全的架构师技术栈图谱

今天收集了19张关于软件架构师应该了解和掌握的技能图谱,希望这份技术知识图谱能够帮助到每一位奋斗在架构师技术路上的小伙伴。

heshihu2019的博客 1251

STM32+ESP8266接入OneNet物联网平台全流程

MQTT协议是物联网设备与云平台通信的主流轻量级消息传输标准,其发布/订阅模型天然适配嵌入式资源受限场景;OneJSON作为中国移动OneNet平台定制的数据格式,在标准JSON基础上精简Schema、降低解析开销,显著提升STM32等MCU的处理效率。该技术组合兼顾安全性、低功耗与工程可量产性,广泛应用于环境监测、智能仪表、工业传感器等远程数据采集系统。实际落地需协同完成云平台物模型定义、Token动态认证、MQTT Topic严格构造、AT指令可靠交互及单总线传感器数据融合等关键环节。本文以DS18B2

u5v6w7的博客 1119

如何编译RustDesk(Unbuntu 和Android版本)

备注:官方文档上,一边都是基于sciter,这个在后面已经不建议使用了,但是依然可以编译刚开始的时候看官方的文档,涉及的东西比较多,也搞的一头雾水,通过B站上一个视频,可以通过CI/CD来编译,以及act本地试试(最终放弃,大概需要下载大几十G的容器下来)。最终总算明确了方向,可以用自动化流水线来编译。直接看CI/CD的脚本文件文件在.github/workflows目录下,重点研究 bridge.yml 和flutter-build.yml 这两个文件。

lvronglee的专栏 2547

【超详细】Python、Jupyter、BI工具和技术栈搭建及说明【数据分析与机器学习】

好的,机器学习的开发环境搭建完成,

道阻且长,行则将至,关注我,和我一起奔赴下一场山海! 1818

深入解析ViT中的RoPE旋转位置编码:原理、实现与视觉应用

本文深入解析了ViT中的RoPE旋转位置编码原理、实现及其在视觉任务中的应用。RoPE通过旋转变换巧妙地将相对位置信息融入注意力计算,解决了传统绝对位置编码外推性差的问题,在图像分类、目标检测及生成任务中展现出更优的泛化能力和灵活性。

alice7model的博客 704

商业智能(BI)系统深度解析

商业智能是通过数据驱动的技术体系实现企业数据采集、整合、分析与可视化的系统化过程,旨在将原始数据转化为可操作的商业洞察,支持决策优化和战略制定。

谦与谦寻的神隐 1313

百度新闻评论内容抓取

通过抓包分析发现,百家号手机app端文章评论内容接口为:https://ext.baidu.com/api/comment/v1/comment/getlist?appid=101&sid=1008524_2-1010050_1-1007549_23033-1007550_23035&cuid=01B5EAF73E8A83BB842BE04E4FB6C656|23200201047...

codingforhaifeng的博客 2420

SQL实现数据仓库ETL:分层设计、增量抽取与性能优化实践

在数据仓库建设过程中,ETL(抽取、转换、加载)是数据流转的核心环节。传统观点常将ETL与专业工具或大数据框架绑定,但在中小规模数据场景下,基于SQL的ETL方案凭借低门槛、高可维护性和直观的排错体验,成为高效且务实的选择。本文从ETL的基础概念出发,阐述数据仓库分层(ODS、DWD、DWS、ADS)中每层ETL的定位与职责,重点剖析增量抽取策略(时间戳、主键、日志)下的SQL实现方式,以及数据清洗、去重和格式化的常见写法。同时,结合真实项目经验,分享慢SQL优化技巧、任务调度依赖设计、幂等性保障和常见问题

weixin_33290540的博客 345

基于ElasticSearch的站内全文搜索实现

摘要        对于一家公司而言,数据量越来越多,如果快速去查找这些信息是一个很难的问题,在计算机领域有一个专门的领域IR(Information Retrival)研究如果获取信息,做信息检索。在国内的如百度这样的搜索引擎也属于这个领域,要自己实现一个搜索引擎是非常难的,不过信息查找对每一个公司都非常重要,对于开发人员也可以选则一些市场上的开源项目来构建自己的站内搜索引擎,本文将通过ElasticSearch来构建一个这样的信息检索

刘滨浩的博客 4040

Linux系列:SecurtCRT中的密码如何找回

【代码】Linux系列:SecurtCRT中的密码如何找回。

NIO4444 1084

ThingsBoard架构及技术栈

通过了解架构及技术栈,初步认识。

dark的博客 4252

Hermes Agent 彩蛋大盘点:藏在终端里的浪漫

本文主要介绍了Hermes Agent 彩蛋大盘点:藏在终端里的浪漫,希望能对使用Hermes Agent的同学们有所帮助。 文章目录 1. 前言 2. Spinner 动画 3. Kawaii 表情 4. 思考动词 THINKING_VERBS 5. 皮肤主题 6. 启动 Banner 7. 工具 Emoji 8. 内置人格 9. SOUL.md —— Agent 的灵魂 10. BOOT.md —— 启动自动执行 11. 随机 Tips 12. 统计总览

weixin_43178406的博客 7万+

下采样新突破!ADown模块让YOLOv11多尺度特征提取更精准

ADown 凭借可编程梯度信息与多分支特征聚合的创新设计,打破了传统下采样在特征保留上的固有局限。本教程从原理到代码实现,再到工业场景适配,完整呈现了其在 YOLOv11 中的集成路径。只需简单新增模块脚本并修改配置文件,你的目标检测模型就能在多尺度特征捕捉能力上实现跨越式提升——无论是学术研究中的小目标检测突破,还是工业场景下的复杂多尺度任务落地,ADown 都能成为你攻克下采样瓶颈的利器。现在就动手尝试,让你的检测模型在下一代下采样技术的创新中再上一个台阶吧。

know_F0727的博客 524

架构师技术栈

今天在网上看到一幅java技术架构师的技术栈图,分享记录一下,虽然改图的技术架构也挺老的,但是我觉得基础的东西,还是值得学习的。后续会按照这个技术栈发布一些内容,非喜勿喷

漂泊的专栏 136

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

微服务架构技术栈

经过多年的发展,微服务已经成为了企业主流的架构首选,今天我们重新盘点一下微服务架构的技术栈,探讨微服务学习的全路径。 什么是微服务 维基百科定义: 微服务(Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关的API集相互通信。 2014年,Martin Fowler与James Lewis共同提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,.

言尭的博客 1775

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java架构直通车——架构师所需要具备的技术栈与能力

文章目录架构师所需要的技术栈架构师所需要的能力 架构师所需要的技术栈 首先,用户先通过前端来进行一个访问,这里前端可能用到了ios、android、H5和小程序等等。用户通过这些来发送请求,首先来到了我们的负载均衡。 这里就是Nginx,由于Nginx也是服务器,也会宕机,所以这里会有主备多台Nginx,通过使用lvs+keep alive做了这样一个主备,保证了Nginx不会宕机,就算宕机了也...

No_Game_No_Life_的博客 1608

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

06架构管理之技术栈选型

在一个公司或者一个团队中,每个人熟悉的技术栈可能千差万别,A项目可能会用vue+springboot开发,B项目可能用react+SSH开发,不能说谁比谁好,但是同一个公司或团队,使用不同的技术栈,对于团队的协作、维护成本的节约都没有好处。在架构管理工作中,技术栈选型时一项非常重要的工作,它直接影响到公司整体的技术人员结构,对于一个公司,做好公司的技术栈选型,意味着公司技术栈的统一,公司的架构选型统一。如何做好技术栈选型,要考虑的因素比较多,如当前技术人员的技术技能,当前项目的需求、公司投入等等。

rainyonelove的专栏 1513

架构师技术栈 个人总结 beta版

架构师技术栈,是自己从业这些年来涉猎的主要部分,也是自己不断提升的方向,其中的内容也在不断的完善中,随时会更新版本,姑且算作beta版本。 互联网技术日新月异,作为从业者,也需要不断学习,扩展技术视野。同时随着具体技术应用与实战,对其的理解也不断加深,配合对其原理与细节的深入研究,以增加技术深度。 架构师技术栈.png 个人介绍: 高广...

高广超的博客 736

Java架构师成长之道之Java架构师技术栈

Java架构师成长之道之Java架构师技术栈Java架构师成长之道 JavaSE篇 Java概述与开发环境搭建 Java数据存储 Java数据运算 Java程序流程控制 Java数组 Java面向对象程序设计(上) Java面向对象程序设计(中) Java面向对象程序设计(下) Java常用API 集合 泛型 异常处理 注解 IO/NIO/AIO AIO网络框架tio设计与...

weixin_30367945的博客 947

外卖系统开发的技术栈和架构设计

开发一个成功的外卖系统需要精心选择技术栈并设计良好的系统架构。通过采用分层架构、微服务架构和API网关等设计模式,以及使用现代的开发工具和实践,可以构建一个高性能、可扩展且易维护的外卖系统。

1511

技术栈架构图:从分层到选型全解析

摘要:系统技术栈架构图以可视化方式展现系统各层级的技术选型,包括前端框架、后端服务、中间件、数据库等核心组件。常见呈现形式包括分层技术标签和技术Logo图,帮助团队快速理解系统架构。架构图可用于新成员培训、技术选型评审及对外展示,是重要的技术文档形式。典型互联网系统通常包含前端层、API网关、服务层、中间件、数据存储和运维监控等层级,通过PlantUML等工具可快速生成结构化图示。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 1198

.Net 微服务架构技术栈

转载添加链接描述

qq_29892677的博客 489
上一篇: LinkedHashMap源码和实现LRU算法
下一篇: IO,NIO,AIO和高性能模型
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值