系统架构演进,待续

【交易系统系列40】行至终章:我们的CNX(exchang trading system)心路历程与下一代交易所的星辰大海 这不只是一篇技术总结,更是一次漫长旅程的回望。作为《交易所核心系统》系列的收官之作,我们将一起回顾“Cat-nip Exchange (CNX)”从一张白纸到完整架构蓝图的全过程,沉淀那些在代码、咖啡与猫毛中悟出的核心设计哲学。最后,让我们站在当前的技术前沿,眺望AI、DeFi、Web3将如何重塑我们所熟知的金融市场,共同探讨下一代交易系统的无限可能。 阅读详情

系统架构演进
单一应用架构 
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 
此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
垂直应用架构 
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 
此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
分布式服务架构 
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,
使前端应用能更快速的响应多变的市场需求。 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
流动计算架构 
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,
提高集群利用率。 此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。

根据现在团队的业务系统情况,首先我们要梳理出现存的问题是什么:
     多种调用传输方式:HTTP方式、WebService方式;
     服务调用依赖关系:人工记录,查看代码分析;
     服务调用性能监控:日志记录,人工查看时间;
     服务与应用紧耦合:服务挂掉,应用无法可用;
     服务集群负载配置:Nginx配置,存在单点问题;

在去选择技术框架时,技术框架最基本要解决上面现存问题,同时我们也要确认出我们的期望,要达到的目标是什么:
     支持当前业务需求,这是最最基本的条件;
     服务避免单点问题,去中心化;
     服务高可用、高并发,解耦服务依赖;
     服务通用化,支持异构系统调用服务;
     解耦系统服务间依赖,去重复;
     服务依赖关系自维护,可视化;
     服务性能监控自统计,可视化;
     服务需自带注册、发现、健康检查、负载均衡等特性;
     开发人员关注度高,上手快;

SOA (面向服务的架构)Service-Oriented Architecture 
微服务msa
微服务相比于SOA更加精细 ,微服务更多的以独立的进程的方式存在,互相之间并无影响;
 微服务提供的接口方式更加通用化 ,例如HTTP RESTful方式,各种终端都可以调用,无关语言、平台限制;
 微服务更倾向于分布式去中心化的部署方式 ,在互联网业务场景下更适合;


微服务调用为啥用RPC框架,Http不更简单吗?RPC框架除了HTTP实现外,私有协议不具备通用性.?
http接口是在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;
优点就是简单、直接、开发方便。
如果是一个大型的网站,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了:
首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;
其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。
最后是安全性。

通过RPC能解耦服务,这才是使用RPC的真正目的。

RPC:Remote Produre Call-远程过程调用,像调用本地方法一样调用远程方法
RPC采用客户端(服务调用方)/服务端(服务提供方)模式,各自独自运行。
RPC主要的依赖的技术包括序列化、反序列化和数据传输协议。
基础概念
RMI(Remote Method Invoke,远程方法调用)代理模式通过代理对象将方法传递给实际对象;
stub(桩)驻留客户端,承担远程对象实现者的角色;
skeleton(骨架)帮助远程对象与stub连接进行通信。

时序
    1.客户端(client)通过本地调用的方式调用服务
    2.client stub接收到调用方法之后将参数、方法封装成能够网络传输的消息体(序列化)
    3.client stub找到服务地址,并将消息发送到服务端
    4.server stub接收消息并解码(反序列化)
    5.server stub根据解码结果调用本地服务
    6.本地服务奖调用结果返回给server stub
    7.server stub将返回结果打包成消息(序列化)发送至调用方
    8.client stub接收消息并解码(反序列化)
    9.客户端得到最终结果

RMI调用过程
    1.服务端向RMI注册服务绑定自己的地址
    2.客户端通过RMI注册服务获取目标地址
    3.客户端调用本地stub对象上的方法,与调用本地方法一致
    4.本地stub对象将调用信息打包(序列化),通过网络发送给服务端
    5.服务端skeleton对象接收到网络请求,对调用信息进行解包(反序列化)
    6.服务端真正服务调用发起调用,并将返回结果打包(序列化)发送给客户端
    7.客户端解包(反序列化)结果,获取服务调用结果
在RMI调用中,有以下几个核心概念
    1.通过接口进行远程调用
    2.通过客户端stub对象和服务端skeleton对象帮助远程调用伪装成本地调用
    3.通过RMI注册服务完成服务的注册与发现


常见RPC框架
常见RPC框架方案有RMI(JDK自带),Hessian,Dubbo,Hprose,Thrift等


扩展:
IaaS:Infrastructure-as-a-Service(基础设施即服务)
PaaS:Platform-as-a-Service(平台即服务)
SaaS:Software-as-a-Service(软件即服务)

参照:
https://blog.youkuaiyun.com/u013952133/article/details/79622786
云计算之IasS、PasS、SaaS
https://www.sohu.com/a/250891912_100233513
Iass、Pass、SasS三种云服务区别 
https://www.cnblogs.com/lykbk/p/fdf34345435435435345453.html
各大开源rpc 框架 比较
https://developer.51cto.com/art/201904/595840.htm
微服务调用为啥用RPC框架,Http不更简单吗?
https://developer.51cto.com/art/201908/601617.htm
6种微服务RPC框架,你知道几个?
做后的图很好。

数字蓝牙功放 数字蓝牙功放(TPA3110+BK8000L),基于D类数字功放芯片TPA3116蓝牙功放,HIFI级带滤波15Wx2蓝牙数字功放,支持有线和蓝牙两种音源输入 阅读详情

相关推荐

python自动交易 缠论_缠论自动交易系统实现了

一、缘起:缠中说禅的伟大,我想你只要上网搜索一下就知道了,他的才气不用我说,我只想说说他的《教你炒股票》系列文章,108篇文章,将他的股票操盘秘籍全部公开给广大的股友了,更有缠友将其理论写成公式,在网上也是广为流传,深受广大缠友们的喜爱。我也是缠中说禅的忠实崇拜者之一,从2008年开始每天都使用缠论来看盘,特别想将缠论写成交易系统,让计算加来帮助我们自动交易,从而减轻我们盯盘的辛劳,可是苦于没有好...

weixin_39970689的博客 4637

软件架构:可能和你想的不太一样——可持续架构(一)

很多公司都有架构委员会,这些人很多都与开发无关,要想保证我们的应用软件拥有弹性并且可以持续发展,必须将软件架构的控制权从这些人手中移交至真正实施的人手中:即开发人员。软件架构的重点是做出决策而不是描述静态的结构设计。对于一个敏捷团队来说,架构是整个团队的表现,是每个人的参与付出,这也意味着架构师对于敏捷团队来说并不仅仅是一个个人角色。架构并不是在一开始设计好就是一成不变的,它应该是随着时代与技术的发展,而去不断调整和选择新的技术方案,从而是软件质量不断提升。

奔跑的蜗牛的博客 2026

芋道前后端分离项目跳过登录

在此页面中可以看到当在没有获取到token时,如果此页面在白名单中则直接进入,所以我们将刚刚配置在。在此路径下配置需要跳过登录的页面路径,记住path中编辑的名称。根据以上两图可以发现芋道的。将所有需要跳过登录的方法。,否则会提示登录状态过期。至此完成免登录进入页面。

FanZaiYo的博客 5486

【架构艺术】可持续性架构设计的秘诀

概念拆解,重组改造,是可持续性架构设计的秘诀。其核心要思考的便是,如何在自顶向下的需求拆解和自底向上的技术实现之间,不断优化这个“最大公约数”。为了让技术实现能够更具备可持续性,我们才需要把所有概念打碎,理顺概念之间的依赖和层次关系,再根据灵活组合不同的概念体系,以达到不同需求预期的效果。这样做技术设计,就可以应对频繁的需求变更,不至于积重难返。

HiKariのTechLab 712

ZYNQ开发(2)在Linux系统层上PL-PS通过AXI-DMA传输数据详细步骤及注意事项

参考的网络资料 https://github.com/bperez77/xilinx_axidma/tree/master https://gitlab.gnome.org/HosseinBeheshti/UlteraZed7EV/-/tree/master/petalinux/xilinx_axidma https://www.icode9.com/content-3-925319.html https://blog.youkuaiyun.com/weixin_38218267/article/details/1

aizaiyueye的专栏 3448

QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析

本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。

g9h0i1的博客 1003

互联网网站应用架构模式

o单一应用架构: · 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部 署节点和成本。 · 此时,用于 数据访问框架(ORM) 是关键。 · 缺点:不便于维护 o垂直架构: · 当访问量逐渐增大,单一应用增加带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 · 此时,用于加速前端页面开发的 web框架(MVC) 是关键。 · 缺点: 复用性差。 o分布式服务架构:...

bkdl047的博客 370

SSD性能测试进阶:用fio的io_uring引擎榨干你的NVMe硬盘

本文深入探讨了如何利用fio的io_uring引擎对NVMe SSD进行深度性能测试。通过对比传统libaio引擎,详解了io_uring低开销、高并发的优势。文章提供了从测试矩阵设计、队列深度分析到写入放大观察和尾延迟可视化的完整进阶方法,并附有实战案例与脚本,旨在帮助用户科学压榨NVMe硬盘的极限性能,获取更真实的评估数据。

weixin_29247219的博客 326

架构的演进之路与前沿技术

本课时会讲解分布式系统架构以及面试中做项目介绍的技巧,重点有如下三部分。 介绍系统架构的演进:包括微服务架构、云原生以及业界最新趋势 ServiceMesh。 讲解微服务的基础知识点:Docker 和 K8s。 面试技巧,教你如何更有效地做项目介绍。 系统架构演进 首先以演进的方式来了解不同的系统架构。 单体架构 最简单的系统架构是单体服务,如下图所示。 一个项目中的多个服务,混合部署在一个进程...

weixin_44117767的博客 984

CloudCompare横截面工具实战:从点云切片到轮廓提取的完整流程

本文详细介绍了CloudCompare软件中Cross Section工具的核心功能与实战流程。从交互式裁剪框的精准操控,到包络线提取的参数设置与优化,再到内部轮廓提取及批量处理技巧,完整解析了如何从三维点云中高效提取建筑立面、隧道断面等关键轮廓信息,是点云数据处理与分析的实用指南。

weixin_29290963的博客 284

从入门到精通:HyperMesh实体选择全攻略(含2025新界面操作)

本文系统解析了HyperMesh从基础到高级的实体选择技巧,重点介绍了2025新界面的交互逻辑与效率提升。内容涵盖选择模式、框选方法、右键菜单高级选择、图形窗口选择器与命令面板的智能联动,以及利用浏览器和过滤器进行精准定位的实战指南,帮助用户显著提升前处理建模效率。

open4的博客 1084

dubbo入门

dubbo产生的背景 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端.

断翼天使 205

STM32外部中断EXTI原理与飞控实时应用实战

外部中断(EXTI)是嵌入式系统中实现事件驱动和实时响应的核心机制,其本质是将外部电平变化转化为可调度的CPU中断事件。基于ARM Cortex-M NVIC架构,EXTI通过GPIO-EXTI-NVIC三级硬件通路实现低延迟信号捕获,具备边沿触发、优先级管理与挂起控制等关键能力。在四轴飞控、工业传感器、人机交互等对毫秒级响应有强需求的场景中,EXTI显著优于轮询方式,兼顾实时性与CPU资源效率。实际开发需严格遵循SYSCFG映射→EXTI配置→NVIC使能的时序逻辑,并规避常见陷阱如中断号误配、伪触发、低

weixin_36382073的博客 65

万丈高楼平地起:从“输入-处理-输出”第一性原理,看懂系统架构的演进

本文探讨了系统架构演进与抗压设计。随着互联网业务规模扩张,传统单体架构面临性能瓶颈,促使系统向分布式集群转型。这种演进在解决单点瓶颈的同时,也带来了新的技术挑战:1)性能方面需要引入缓存层应对网络延迟;2)通过消息中间件实现服务解耦和流量削峰;3)利用数据库事务机制保障分布式数据一致性。文章揭示了现代系统设计的核心矛盾——在追求可扩展性的同时,必须协调好性能、可靠性和一致性的关系。分层抗压架构正是通过缓存、消息中间件和数据库这三大技术支柱的协同作用,构建弹性系统以应对高并发场景。

让世界知道我的存在 487

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

跨境电商系统的一个架构演进

在商城内偶有心得体会,晒出来给后人作为一个可以参考的对象 把以前设计做过得都发出来,给大家参考参考先上逻辑图风.fox1.0 版2.0 版3.0 版图片比较大,最好放大了看4.0 版待添加架构1.0版2.0 版3.0 版4.0 版未完待续

风.foxwho(神秘狐) 9288

数学建模模型总结

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

按图索骥之 java开发心得(一)

仅个人所得,不喜勿喷! 1,自己定位 刚入行时是小白,菜鸟,入行久了,就成了老白了! 小公司日志: 小公司往往要求你,什么都会,一般人很难做到,博而精,所以当你在这样的公司往往纯粹只是curd+web 要想长期的保持竞争力: 一,看运气,如果遇到有营养的项目,从中快速成长,成为公司该产品线上不可或缺的 灵魂人物。 二,自我学习,说说都很容易,坚持也很重要,人很容易被世事所扰...

与时代同行 liwei 359

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

5G结构模型和概念(未完待续...)

5G体系结构被定义为支持数据连接性和服务,使部署能够使用诸如网络功能虚拟化和软件定义网络等技术。

冬瓜有点瘦 1万+

重新认识微服务

SpringCloud用了挺久,但仅停留在用上面,没有真正对微服务的概念有深入了解。 1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此也不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google带领下来势汹涌的Service Mesh。到底是该乘坐微服务的船只驶向远方,还是...

phubing 339

Spring Cloud 学习笔记(1) 概述

背景 本文是我在学习 Spring Cloud 构建微服务的过程中记录学习心得。什么是微服务 微服务是系统架构上的一种设计风格, 它是将一个原本独立的系统 拆分成多个小的互相通信的服务。特点将一个独立的系统 拆分成多个小型服务,拆分后的各个服务都在各自独立的进程中运行. 各个服务之间通过基于HTTP 的RESTful API进行通信协作。 被拆分成的每一个小型服务都围绕着系统中的某一项耦合度较高的业务功能进行构建 每个服务都维护着自身的数据存储、 业务开发、 自动化测试,及独立部署机制。 微服务和单体系统的

mt77666的博客 128

Beatles小记-分布式数据流分析框架(一)

Author:放翁(文初) Email:fangweng@taobao.com Mblog:weibo.com/fangweng Blog: http://blog.youkuaiyun.com/cenwenchu79/ 概述 重要:全文内容都是参照这个源码地址内容所写,因此两边对着看会更清晰明了:https://github.com/cenwenchu/beatles 这篇小记主要...

有心人cwx 182

广电智能推荐点播系统实践

广电智能推荐点播系统实践(1) 主要讲我开发的广电回看、点播、OTT的智能推荐系统 涉及主要技术:架构设计、爬虫、搜索引擎、智能推荐算法、docker、深度学习、前端开发 主要语言python 说在最前面这个项目早在两年前就想弄了,由于各种原因,一直耽搁了下来。最近看了深度学习的入门文章,想到研究生阶段做的医疗图像分割项目,用的也是梯度下降算法,都是求最优解的过程,最后我还GPU加速

孤独的广电人 744

服务器架构

当我们对数据库的访问较慢,这时就容易成为瓶颈,我们引入缓存作为解决手段,访问数据时可以直接访问缓存,比直接访问数据库速度更快,我们可以将热点数据保存到nosql数据库中。数据的查询涉及到大量的磁盘Io,处理速度较慢,我们不应该使得业务逻辑被数据操作阻塞,而且当我们当我们的网站上的商品越来越多,可能一台服务器存不下我们的数据,这时候我们可能需要专门的服务器用作业务逻辑处理,另一台专门用作数据存储和查询,做一些辅助处理。3.webserver集群+ 读写分离。当我们的瓶颈变成了对缓存的访问,

qq_43343063的博客 271

FAPI专题-1:5G nFAPI接口 - 中文规范-1- 概述、总体框架

前言: 小基站联盟正在开发技术和商业使能技术,加速小基站的推广和应用,以支持企业和社区的数字化转型。小蜂窝的广泛推广、应用将使工业、企业和城乡社区能够获得和负担得起高质量的移动连接。反过来,这将为不断扩大的服务提供商生态系统带来新的商机。这些服务提供商是小基站联盟工作计划的核心。 因而,小基站联盟积极推动了小基站关键技术要素的标准化,包括Iuh、FAPI、nFAPI、SON, Service API、TR-069的演进和X2接口的增强。这些规范能够为所有利益相关者提供了一个开放的多供应商平台,降低他们参

文火冰糖(王文兵)的博客 8235

【MCP认证续期必看】:4类考生的不同再认证路径选择建议

掌握MCP认证续期关键步骤,轻松应对再认证挑战。本文详解4类考生适用的MCP认证再认证流程,涵盖不同路径选择、考试要求与时间规划建议。帮你精准匹配最优方案,省时高效完成续期,值得收藏。

InitFlow的博客 824

DDD(Domain Driven Design) 领域驱动设计从理论到实践 三

…接上文 三. 架构演进及DDD架构 ​     近些年来,软件系统架构的发展非常迅速,历经了单体,SOA,微服务等多个框架。笔者在本节做一个简单梳理,并引出领域驱动设计的架构理念。 架构起什么作用 ​     首先,我们简单思考一下为什么要有架构?其主要作用是什么? ​ 系统架构定义其组成要素和关系: 要素 是 组成架构的重要元素 (Building Block) 结构 是 要素之间的关系 (Relationsh

weixin_43171270的博客 742

【IT职业发展必看】:MCP认证2025续证路径全面调整,你的计划还有效吗?

掌握MCP认证的2025续证路径更新,提前规划职业进阶。本文详解最新续证规则、适用场景与过渡方案,帮助IT从业者高效应对调整。涵盖核心考试替代路径、学分转换机制等关键优势,确保认证持续有效。值得收藏,点击了解最新政策细节。

QuickSolve的博客 854
上一篇: scrapy+selenium+chrome:问题笔记,持续更新。。。
下一篇: JRE 和 JDK
tomlone
博客等级 码龄19年 84粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值