详解网商银行“三地五中心”数据部署架构

数据库部署架构是从容量、可用性、性能、成本等多方面权衡的结果,网商银行基础架构从建行之初满足快速业务响应的分布式架构,到单元化架构的落地,再到云原生时代,其中伴随着业务的快速发展,数据库的部署架构也经过多个版本的迭代发展。
容灾方面,从最初的“两地三中心”,具备机房级容灾,不具备全部的城市级容灾,经过扩容建设发展到现在的“三地五中心”。具体部署方式如图3-1-1所示,采用3-2-1的部署方式,任意一个城市的故障,通过选主(选择主库)实现主库的切换完成容灾。

在这里插入图片描述

图3-1-1 “三地五中心”架构

分布式业务应用为支撑业务容量的快速发展和业务的多样性,持续进行微服务的拆分改造,其中数据库也随着进行扩容、拆分、迁移。数据库之间的隔离性、集群故障的业务影响面愈加重要,如何合理规划业务集群,实现业务的故障影响面可控,是发展过程中一直面临的挑战。

分布式数据库

分布式数据库中的数据在逻辑上是一个整体,但物理上分布在计算机网络的不同节点上。网络中的每个节点都可以提供数据服务,可以通过中间件或者协同服务器实现协调,以代理的形式完成数据库访问的策略控制。图3-1-2所示为一种集中代理方式,通过协同服务器实现多应用的数据读写访问,在这种方式中应用不感知分布式的多个节点,通过协同服务器进行读写节点的路由选择、读写分离控制、权限控制等。

在这里插入图片描述

图3-1-2 集中式代理与分布式数据库

分布式数据库增加了系统交互的复杂性,为系统引入了更多潜在的失败环节,但分布式系统带来的好处也非常明显。

(1)持续可用。分布式数据库对同一份数据维护多个副本,当某个副本出现故障时,其他副本还能继续正常提供服务。为避免多个副本同时服务同一份数据带来的数据一致性问题,引入分布式协议Paxos或Raft实现数据的一致性。以系统包含3个副本(1个主库,2个备库)为例,每次写事务都需要让主库和其中一个备库同步,在主库出现故障时,至少一个备库有完整的数据,数据不会丢失,可通过分布式协议完成选主,继续提供写服务。在任意一个备库出现故障时,主库仍然可以将数据同步到另一个备库,形成“多数派”,保证数据不会丢失。

(2)可扩展。通过对集群节点的扩容,完成读写容量的线性扩展,支撑大促的突发流量。

(3)低成本。分布式系统通常只需要采用廉价的普通服务器替代高端服务器与高端存储设备,通过自动容错能力实现运维成本的降低。

分布式事务与数据一致性

处理事务是数据库系统的基本能力,通过事务保证数据的准确性与一致性,从而减少了上层应用的复杂度。但数据库系统为实现事务,也进行了一定的性能牺牲。事务必须具有ACID属性。

lA,原子性(Atomicity):事务中多个操作要么全部完成,要么全部未完成,不存在中间状态。

lC,一致性(Consistency):事务必须始终保证系统的一致性状态,不管在什么时间,并发事务有多少。

lI,隔离性(Isolation):为了防止事务操作的混淆,必须使请求序列化,使得在同一时间仅有一个请求作用于同一数据。

lD,持久性(Durability):事务完成以后,事务对于数据的变更持久保存,不会进行回滚。

分布式事务通常是在多个节点的机器上运行,运行时有进行RPC的过程,相对于单系统数据库,在保证事务的原子性上会遇到更多的异常环节,存在更多的恢复与回滚情形,当前大多通过两阶段提交协议进行解决。分布式事务提交到多台服务器上进行处理时,每台服务器都需要进行日志的记录,当事务出现失败时,对应的服务器都需要进行回滚操作,典型的分布式事务处理过程。

图中左侧是协调者状态机,右侧是参与者状态机。协调者是驱动整个事务提交流程的主体,它可以在任意机器上,当然也可以和其中一个参与者在同一台机器上。参与者是真正的事务操作的执行者。协调者首先通知所有的参与者持久化(图中的prepare命令),当参与者使事务的日志处于持久化状态后会回复prepare OK,当所有参与者都回复prepare OK后,意味着整个事务完成了。然后协调者会写下事务commit的日志,并且发送commit给所有参与者,如果其中任何一个参与者返回失败(即abort OK),那么协调者就会认为事务是失败的,记下事务回滚的日志,并且发送abort给所有参与者。
在这个流程中,分布式事务提交的延迟是两次写日志(参与者写prepare日志,协调者写commit日志)的延迟和两次通信(协调者通知参与者prepare,协调者通知参与者commit)的延迟。

在这里插入图片描述

图3-1-3 分布式事务处理过程

多租户策略

一套分布式数据库集群可以用于支持多个业务,通过分配多个数据库实例进行管理,这就是多租户策略。多租户是分布式数据库实现资源隔离与未来进行云化发展的基础,通过多租户还可以实现安全的隔离、故障的隔离、运维的隔离等。

首先是租户资源的隔离,租户是资源分配的最小单元,每个租户可以进行CPU、内存、存储、网络带宽、连接数等的资源控制。CPU等资源可以在租户创建时进行指定,也可以按需进行动态调整。每个租户之间的资源不进行复用,以避免资源的抢占带来的稳定性问题。

其次是安全的隔离,租户有对应的用户权限,每个租户的用户只能访问自己租户内的实例以及相关租户资源。不存在可以进行跨租户访问的超级用户,实现了安全策略的可控,避免了数据安全问题。

再次是故障的隔离,因为硬件资源的隔离,单个租户的“抖动”、资源不足、数据错误等不会影响其他租户,对于分布式数据库的监控最小采集粒度是租户级别,数据库的故障影响分析也从租户维度进行关联分析。

最后是运维的隔离,租户是资源分配的最小单元,在进行资源调度、集群扩容时按照租户进行迁移,集群的备份与恢复也从租户维度进行控制。

“异地多活”之“三地五中心”

《商业银行数据中心监管指引》要求金融机构设立异地模式的灾备中心,其中重要系统的灾难恢复能力要达到《信息安全技术 信息系统灾难恢复规范》中定义的灾难恢复等级第5级(含)以上。具体要求是,RPO为数分钟到两天,RTO为0~30分钟。
传统银行中最常见的是“两地三中心”模式,具备同城的机房级容灾能力,实现了同城一个机房故障下RPO为0,异地数据弱一致。网商银行从“两地三中心”的“异地多活”进一步发展到“三地五中心”,实现RP0为0,RTO在1分钟内的城市级容灾架构,保证了银行系统的高可用和不间断的用户服务能力,实现了金融服务的随时在线。

常见部署模式

传统银行的“两地三中心”(见图3-1-4)

在这里插入图片描述

图3-1-4 传统银行的“两地三中心”

(1)同城双机房采用主备模式,应用访问主数据库,进行数据写入。
(2)同城双机房间采用存储设备的同步复制,保障同城双机房之间的数据实时一致。
(3)异地机房用异步复制方式进行数据同步,备份节点数据非强一致,对数据实时性要求不高的可以进行读访问。
(4)同城主备库之间进行故障检测,出现异常时进行主备切换。
(5)应用端可以通过使备库只读而降低主库压力。
这种部署模式本质上只能做到机房级容灾,当城市1异常时,城市2的数据是不完整的,无法实现城市级的容灾。

分布式数据库“两地三中心”(见图3-1-5)
在这里插入图片描述

图3-1-5 分布式数据库“两地三中心”

(1)“两地三中心”模式有三个副本,采用主备模式,应用访问主数据库,进行数据写入主库。
(2)主库数据实时同步到所有备库,基于一致性协议,在1/2的节点完成数据的同步后,即认为数据同步完成。同城机房因耗时更短,两个机房的数据保持实时同步。
(3)异地机房因耗时较长,在数据同步上有延迟,但相对于传统银行的备份节点,该延迟较小,在1分钟以内。
(4)两个从节点都可以提供数据的弱一致性只读服务。
三个副本中最多允许有一个故障点,所以这种模式只具备城市2的城市级容灾能力,不具备城市1的容灾能力。

分布式数据库“三地五中心”(见图3-1-6)

在这里插入图片描述

图3-1-6 分布式数据库“三地五中心”

“三地五中心”模式有五个副本,最多允许存在两个异常节点,所以采用2-2-1的方式进行分布建设。当任意一个城市的机房发生城市级的故障时,数据库都依然能够继续提供服务。

五副本在进行数据写入实时同步时,需要三个节点完成写入,因一个城市最大节点只有两个,所以必然会存在跨城市的实时同步,带来耗时的增加。具体耗时的增加与城市间的距离有关,例如从杭州到上海,需要增加6~8毫秒。
城市3只有单节点,无法满足城市内的容灾要求,一旦有故障,应用都需要跨城访问数据库,所以在部署时,城市3不进行应用的部署。由于不提供数据服务,城市3可以进一步降低成本,机房5作为日志副本,无全量数据,参与一致性协议投票选举主节点。

从“两地三中心”到“三地五中心”的升级

从“两地三中心”升级到“三地五中心”,是基础设施的重大升级,不只是简单的数据副本的增加。其带来的架构改善有以下几点。

(1)数据库具备了城市级容灾能力。
(2)应用具备了城市级容灾能力,应用的部署可以实现城市1与城市2双中心的模式,应用的容灾能力增强。
(3)数据库的容量提升,只读副本数量增加,服务能力增强。

这种升级同时也对原数据中心架构引入了新的挑战。

(1)跨城带来的耗时增加,对业务的批处理、链路整体耗时、热点行等产生影响。
(2)数据同步副本数增加,原有机房间的网络需扩容。
(3)数据同步副本数增加,原有租户的硬件资源扩容。

在架构升级的过程中,需始终保持容灾能力不降低:任何单个机房出现故障后,集群依然可用,且除了主库所在城市1之外的其他城市机房出现故障,集群依然可用,依然能够提供服务。其过程如下。

(1)初始状态,如图3-1-7所示。

在这里插入图片描述

图3-1-7 “两地三中心”

(2)城市2新增一个副本,该副本用于数据异步式同步,不参与一致性投票,该副本对原集群结构稳定性无影响。参与投票的依然是机房1、机房2、机房3,容灾策略与“两地三中心”一致,数据同步耗时无增加。“两地四副本”模式如图3-1-8所示。

在这里插入图片描述

图3-1-8 “两地四副本”

(3)城市3新增一个副本,该副本数据实时同步,参与一致性投票,但需限定在选主时不能作为主库,以避免耗时的增加,因应用部署还在城市1。在这种模式下,城市2、城市3的单个城市故障不影响集群的稳定性。“三地五中心”模式如前面的图3-1-1所示。

(4)城市2的不参与投票副本切换为实时同步,并开始参与投票,完成“三地五中心”的部署。在任意一个城市的机房出现故障时,都能够实现容灾切换。

以上过程中,如果机房5不选择部署全量副本,只是参与投票的日志副本,那么建设周期会较短,可以直接在城市2建设全量副本,完成后立即进行机房5的配置。

应用耗时分析与优化

“三地五中心”带来的事务耗时增加了跨城耗时部分,会对业务全链路耗时、热点行、批处理产生影响,需要在架构升级前进行耗时分析,在升级后进行耗时的监控与验证。

基于分布式的trace中间件,使用实时计算对链路上的应用日志、数据库日志进行解析,分析出业务链路的不同场景中的库依赖、SQL模板、SQL执行顺序与次数。然后按照“三地五中心”建设的库关联、应用部署城市,分析会增加耗时的SQL,从而计算出整体链路的耗时增加。根据评估结果进行耗时的优化,可考虑的方向有:缓存、应用部署、SQL的优化,以及异步化改造等。

热点行也会因为单次事务的耗时增加导致锁冲突加剧,热点行问题更加明显。可以在建设完成后进行压测,识别热点行,并有针对性地解决热点问题。

单次耗时的增加,也会导致批处理整体完成的时间延长,需要评估是否会超出业务可接受的完成时间。可考虑的优化方案有调整批处理分组数、调整锁粒度等。

数据访问路由策略

由于单机房的容量限制以及容灾能力不足,多机房的应用与数据库部署一般有两种模式:扩展模式与镜像模式。扩展模式按照业务把应用进行分类,把相互依赖的应用部署在同一个机房中,实现业务之间的隔离。但必然存在一些业务需要多机房同时提供服务,这种模式本质上是把一个机房拆分并部署为多个机房。镜像模式下每个机房都部署相同的应用与数据库,每个机房都具备全量的业务提供能力,按照比例进行流量的调拨。运行时机房只承担一部分业务,但必然存在一些基础应用和数据无法按照流量进行比例划分,需要机房间的数据共享与同步。

网商银行在进行单元化架构改造时,根据业务情况,结合两种模式,把数据划分为三类。

(1)可进行流量调拨的数据,可以按照一定的规则进行等比例划分,实现每个机房只需要一部分数据。对应用进行镜像化部署,应用对于数据的访问在同一个机房内可以完成。应用与数据的访问情况如图3-1-9所示,其中每个数据库在其他机房也都有副本,以实现容灾能力。

在这里插入图片描述

图3-1-9 可进行流量调拨数据的访问

(2)不可进行流量调拨的全局数据,数据库的主节点在某个机房,其他机房和城市进行数据访问会出现跨机房与跨城市情况,耗时增加较多。应用与数据的访问情况如图3-1-10所示,在流量调拨时,同机房调用优先进行。

(3)全局数据的耗时涉及跨城情况时,存在业务不可接受的情况。可进行流量调拨的数据分布在其他城市时,应用的访问也会出现跨城情况。这部分数据会同步到一个独立库中,该库在每个城市都有部署。全局城市级数据模式下应用与数据的访问如图3-1-11所示,在进行流量调拨时同机房调用优先进行。

在这里插入图片描述

图3-1-10 全局数据模式下应用与数据的访问

在这里插入图片描述

图3-1-11 全局城市级数据模式下应用与数据的访问

综合考虑分布式数据库主节点与副本的读写分离、应用与库的部署情况、数据库自身的负载等,应用对于数据的访问优先级如下:同机房正常状态→同城正常状态→同城高负载状态→跨城正常状态→跨城高负载状态。其中三类数据在正常和容灾场景中都按照以上策略,通过该策略可降低数据访问的耗时,实现数据库的负载均衡。

多集群部署

网商银行的数据库集群部署经历了两个阶段,从建行之初的单库、分库少量集群,通过按业务的垂直拆分、分库的水平拆分,发展到现在的用户、产品、业务、账务、交换、公共等多套集群,保障了业务快速增长过程中的高可用。

建行之初,业务分库集群有5套,用于支撑业务的分库,分库方式包括10分库、20分库、100分库,分配到各分集群的策略也有两种:所有分库集中于单个集群或均分到5套集群。这种方式可以节约运维成本,但随着业务的快速增长,单集群故障影响全行业务的情况越来越不可接受。

网商银行应用采用微服务架构,L1层的架构如图3-1-12所示。

在这里插入图片描述

图3-1-12 网商银行应用L1架构图

业务流量的流向是渠道层→业务产品层→核心层→基础服务层,其中业务产品层各产品之间的业务隔离,数据也隔离,业务产品层和核心层可以按照用户信息进行分库分表,如图3-1-13所示。

数据库集群要结合应用架构、相关应用对业务的影响、分库分表的维度进行设计,减轻集群故障的影响。基础服务层中PaaS、分布式消息等进行独立集群部署;用户、产品进行独立集群部署并进行主备多集群保障;账务、交换等公共服务库独立部署;对存款、信贷、理财、支付结算等业务分别部署10套集群,分库均分到集群中,单集群故障影响面降低到10%。在业务集群分拆过程中,需各业务库统一分库维度,避免因分库维度不同导致的故障影响放大,例如:单集群中两个业务库维度不同,则该集群发生故障时业务的影响由10%增加到19%(即1-0.9×0.9)。

在这里插入图片描述

图3-1-13 网商银行数据库集群划分

容器化部署

为什么要进行容器化部署

架构设计上为避免集群的单点,而将业务分摊到更多集群上。分布式数据库集群是由多台物理机构成的,在高可用方面集群存在多种单点,一方面集群强依赖“心跳”、系统租户等单点,另一方面,具备自动选主能力的分布式集群,遇到SQL导致进程中断或崩溃的情况。有限数量的物理机无法创建更多集群,而容器化技术可以在一定数量的物理机中创建出更多的数据库集群,待后面机器数量增加后,这些集群可以迁移到不同的物理硬件上,从而实现集群数量、容灾能力的提升。

如何进行容器化部署

如图3-1-14所示,容器化部署在物理机中按一定规格虚拟出容器,在容器中部署分布式数据库以增加集群数量。

从ECS部署切换到ECS+容器化部署可按如下步骤实现灰度化。
(1)在集群中增加容器化节点,并将库的一个备节点切至容器化节点,如图3-1-15所示。
在这里插入图片描述

图3-1-14 容器化部署

在这里插入图片描述

图3-1-15 将一个备节点切至容器化节点

(2)依次替换两个容器化节点,并将主节点切至容器节点。设置选主优先级,若ECS5崩溃,则数据库将ECS1的备节点选为主节点,如图3-1-16所示。

在这里插入图片描述

图3-1-16 将备节点选为主节点

(3)此时,若出现单容器故障,仍可回滚到ECS上,运行一段时间检查无误后,将ECS1节点替换为容器化节点,如图3-1-17所示。

在这里插入图片描述

图3-1-17 将ECS1节点替换为容器化节点

分区与容器化

分区与容器化既有联系又有区别,它们都为数据库的应用提供了扩展性。业务规模较小时,容器化可以创建多套集群,满足架构设计上对多集群的需求,此时表分区通常用不到。业务规模较大时,分区在集群数量不变的情况下提供容量的扩展性,容器化提供了更细粒度的管理能力。例如,可以将同一个业务链路的上下游的相同用户的分区放到同一台或者同一组物理机上,减小单台物理机上业务链路用户范围。分区是分布式数据库提供的能力,而容器化不属于数据库本身。

在这里插入图片描述

《金融级IT架构:数字银行的云原生架构解密》

网商银行技术编委会 著

架构书中的“战斗机”!
引领数字化时代金融级别的IT架构发展方向
书中阐述的核心技术荣获“银行科技发展奖”
网商银行IT技术架构演进实践精华

本书介绍了网商银行成立至今的IT技术架构演进路线,涵盖了分布式、单元化、弹性混合云、云原生多个基础架构领域,同时介绍了技术风险、安全可信、业务架构等多方面的技术实践经验,我们希望和读者分享网商银行在金融级IT技术上做的独特探索,跟大家探讨数字化时代金融级IT架构的发展方向。

相关推荐

涵盖从Java 5到Java 11所有重要特性,让Java学习不再难!

曾经,网络上流传着这样一套视频,无数学员通过这套视频学会了Java,进入了软件开发领域~~这套视频就是“Java无难事”。如今,为了方便大家更好地学习,也跟上当前Java发展更新的步伐,作者基于之前的视频内容,做了更新和完善,在广度和深度上进行了扩展,并继承“让Java学习再也不是难事”的思想,推出了新书《Java无难事》。—— 从Java5到Java11 ——Java,这门编程语言界的常青树,凭借着简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 ,深受程

博文视点(北京)官方博客 5022

离开大厂为什么会“返贫”?比《逆行人生》更真实~~

近期热播的电影《逆行人生》讲述了曾经的互联网大厂中层高志垒,因意气用事成为了“家里蹲”,却没想到人生从此“开入逆行道”的故事!电影播出后陷入巨大争议,不少人认为这部电影在消费苦难,刻意把一个人的生活拍得那么无辜、受害~~一个高设定的中产家庭真的能落魄到这种地步吗?抛开电影中主角的具体经历,在现实中,确实有不少离开大厂“返贫”的怪现象!那么,大厂“返贫”到底有哪些不为人知的底层逻辑呢?《大厂之外》作者刘飞老师就此采访了互联网行业的“老炮儿”、见证过很多离开大厂盲目折腾的真实案例的沈浩翔老师,让我们一

博文视点(北京)官方博客 1252

首部顶级AI科学家创作的纯正科幻小说,一个元宇宙和AI时代的全新科学幻想!

自2023 年起,深度学习和大模型的浪潮,终于超脱学院里形而上的争论,展示了它大规模改变现实世界的可能性,而改变的方式,可能和我们的想象完全不同。在这个新的时代中,每个个体的“独一无二”不再是与生俱来的,而是需要把握先机,以极大的勇气去开辟的。当平静的生活被诡谲的彗星所打破,当艰难的抉择关系到人类的命运,当虚拟世界成为最后的避风港,在无解的阳谋之下,顶尖的头脑们如何破局?在此背景下,很多事情都会发生变化,人的价值体系和价值评判方式,人和人之间的互动模式,人和人之间的相互关系,都将产生巨大的改变。

博文视点(北京)官方博客 1354

如何构建一个大模型?看完你就知道了!

第 7 章和第 8 章围绕大语言模型的应用和评估开展介绍,包括将大语言模型与外部工具和知 识源进行连接的 LangChain 框架、大语言模型在智能代理及多模态大模型等方面的研究和应用情 况,以及传统的语言模型评估方式、针对大语言模型使用的各类评估方法。例如:提示词:复旦大学有几个校区?强化学习(Reinforcement Learning,RL)阶段根据数十万用户给出的提示词,利用前一阶段训练的奖励模型,给出 SFT 模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到更好的效果。

博文视点(北京)官方博客 2023

爆火的无人驾驶萝卜快跑,背后有哪些隐忧?

就在不久前的上海世界人工智能大会上,澳大利亚科学院院士、新南威尔士大学教授托比·沃尔什,在出席“人工智能新进展与社会科学的未来”论坛时指出,要深入研究人工智能发展给人类带来的影响,尤其是在就业方面,并不是所有工作人工智能都做得比人类好,在谋划未来、创意工作和提供情绪价值等方面,人类具有不可取代的优势。不得不说,现在的人工智能技术,特别是那些超大的智能模型,简直就是坐上了火箭,嗖嗖地往前冲,对经济、社会还有咱们的日常生活,影响大得不得了!人工智能的发展必然会带来生产力的提升,对劳动力的替代也是必然的。

博文视点(北京)官方博客 2010

人类警惕!AI是个大骗子!

幸运的是,医学界拒绝了辛顿的建议,继续培训新的放射科医生。我认为,如果你是一名放射科医生,你就像那只已经跑到悬崖边缘的郊狼,因为还没有往下看,所以它没有意识到脚下已经没有路了。书中从图灵的梦想开始,谈到人机共存的未来,娓娓道来,深刻且生动有趣。从关于人工智能中的“人工”这一讨论中,我们可以得出一个最终结论,那就是在人类智能中的“人”可能是我们与我们正在制造的能力越来越强的人工制品的机器之间最重要的区别。我对那些人,尤其是从事人工智能和道德规范工作的员工表示同情, 他们似乎受到了不成比例的影响。

博文视点(北京)官方博客 1443

大模型时代的基础架构,大模型算力中心建设指南重磅来袭!

在这个例子中,成本为100元的T恤是最畅销商品,成本为80元的T恤是高毛利商品,它们的区别在于前者内在的原料价值创造了最畅销商品,带来了更高的性价比,而后者外在的思想价值创造了高毛利商品。这类商品不会有很强的需求和很大的销售量,但毛利率很高。在最畅销商品和高毛利商品的“挡拆”战术中,一旦客户与最畅销商品发生接触,就是高毛利商品赚取利润的最佳时机,因为客户会将二者进行比较。最畅销商品和高毛利商品并不是两类单独的商品,即新奇商品、流行商品、基本商品和专业化商品中的任何一个都同时包含最畅销商品和高毛利商品。

博文视点(北京)官方博客 1354

程序员“计算机之子“的职场反思

Winter 是我认识的最有传奇性,也最有趣的程序员之一。他在前端工程师领域颇有知名度,是 JavaScript 专家,主要的作品是 Weex 框架。如果在搜索引擎中搜 Winter,会出来一个看似没头没脑的“计算机之子”的称呼。这是因为他的生日是 10 月 24 日,正好是“程序员节”(1024 是 2 的 10 次方)。Winter 从小就用机器码编程了,那个年代还是用打孔纸的。从哈尔滨工程大学毕业后,他加入微软亚洲研究院,后来加入过 “人才辈出”的盛大创新院,又在 2012 年加入了阿里巴巴,职

博文视点(北京)官方博客 1938

红队实战宝典之内网渗透测试

本书是以内网攻防中红队的视角编写的,从内网的基础攻击原理出发,讲解红队的攻击思路和主流渗透测试工具的使用方法,旨在帮助安全行业从业人员建立和完善技术知识体系,掌握完整的后渗透流程和攻击手段。由于本书的编写初衷是为具有一定基础的渗透测试工程师和红队人员梳理常用技巧,所以,本书主要通过命令和工具介绍各种内网渗透测试方法,同时分析了一部分工具的工作原理。一场真实的、有目的的网络攻击,通常包括对业务的控制、修改和对数据的获取等,而对业务的攻击,一般都是通过本书介绍的方法拿到权限后展开的。

博文视点(北京)官方博客 1775

端午节,来看看这本应景的“龙舟书”吧!

如果你曾经尝试过使用AI工具,但是始终没有找到能够助力自己工作生活的地方,或者只停留于简单的问答,于是就慢慢放下了,那么这本书或许可以帮你看见使用AI工具的真正魅力,让你掌握ChatGPT的高阶玩法,看到它的更多应用场景,真正让它成为为自己赋能的AI助手!比如第四章的编程提效部分,或许你会用AI生成片段代码,但通过龙舟书的案例,你会了解到如何用AI实现一个模块、甚至实现项目级开发的操作逻辑和具体方法。在23年3月,我们也成立了自己的AI社群"AI俱乐部",也是在这个时期,我们全公司都加入了AI赛道!

博文视点(北京)官方博客 1045

100倍增长的背后:华为IPD实施20年

不仅有严谨的理论和方法阐述,更大量剖析了经典商业公司产品的成功案例,阐述了他们成功的背后逻辑是如何反应了IPD的本质,同时也基于大家司空见惯的日常商业案例进行了分析,让读者更容易理解IPD关于产品的业务本质和商业经营的核心。华为坚持IPD变革20多年,不仅构建了产品研发领域的世界级竞争力、更是开启了从此持续变革的序幕,培养了一大批熟知变革方法的干部队伍和企业文化,让华为尝到了变革的甜头,从此华为就开始不断革自己的命、直到今天也未有停止过。华为创始人任正非说过:华为没有成功、只有成长和对常识的遵守。

博文视点(北京)官方博客 1503

被众多AI大佬看好的具身智能到底是什么?它凭什么成为下一个AI浪潮?

通过比较智能体和具身智能,我们不仅能够更好地理解具身智能的独特性和价值,而且看到了一个全新的视角:智能是如何通过与环境的互动来发展和适应的。具身智能理论让我们想起人类自身的特性,我们的智能不仅来源于大脑的思维过程,还深深根植于我们的身体及我们与外部世界的交互。具身智能的核心观点是,认知和智能行为是大脑、身体、环境相互作用的结果,体现了智能体通过物理互动来学习和适应环境的能力。感知与交互:智能体的感知和交互很有规律,而具身智能喜欢与环境实时互动,它的感知和行为是在不断变化的环境中进行的。

博文视点(北京)官方博客 2488

数字经济 + 人工智能最大的商业机会不是在互联网上……

因为,今天中国农业已经不仅仅涉及单一的种养殖的事情了,还涉及农业组织、土壤问题、种业研发、种植技术、植保技术、采收技术、品控技术、深加工、营销及IP 打造、全渠道运营、物流供应链、文化赋能、一二三产融合、产业资本、政策配套等,同时还涉及农村产业结构、返乡创业、农民老龄化、新农人培养、产业转型升级等。(2) 家庭农场带动的一二三产融合模式 :城市周边的乡村,是很难实现规模化的农业的,如果单靠第一产业,很难支撑农业的发展,稳定种地农民的心,要一二三产融合发展,才能在同一片土地上,实现不同商业模式的收益。

博文视点(北京)官方博客 1431

亿级流量下通用的高并发架构设计

Proxy收到业务服务的数据库操作请求后,根据请求中的SQL语句进行归类,将属于写操作的请求(如insert/delete/update语句)转发到数据库Master,将属于读操作的请求(如select语句)转发到数据库任意一个Slave,完成读/写分离的路由。数据库承受的高并发请求压力,主要来自读请求。我们可以把数据库按照读/写请求分成专门负责处理写请求的数据库(写库)和专门负责处理读请求的数据库(读库),让所有的写请求都落到写库,写库将写请求处理后的最新数据同步到读库,所有的读请求都从读库中读取数据。

博文视点(北京)官方博客 1593

豆瓣8.7分,30000人都在阅读的量化用户体验实操书全面更新!

这些示例中的行为、态度和情感都是可以被度量的。来自不同专业和领域的关注如何提高用户体验的人将会从本书获益,包括可用性和用户体验专业人员、交互设计师、信息架构师、服务设计师、产品设计师、Web 设计师和开发人员、软件开发人员、平面设计师,以及市场营销和市场研究专业人员,还有项目和产品经理等。这本书适用于任何对改进不同类型产品或服务的用户体验感兴趣的人,无论这些产品是消费类产品、计算机系统、应用程序、网站、服务,还是其他任何类型的物品,只要是人使用的产品,就可以度量与使用该产品有关的用户体验。

博文视点(北京)官方博客 1233

一本书了解AI的下一个风口:AI Agent

随着技术的飞速发展,我们正站在一个新的转折点上,AI Agent(AI智能体,简称智能体)作为AI技术发展的新风口,正逐渐揭开神秘面纱,预示着一个全新的智能时代到来。它们将不再是被动的执行者,而是我们生活中的主动参与者,可以理解我们的语言,预测我们的需求,并在多个任务中提供个性化的帮助。智能体将不再是单一功能的应用程序,而是能够跨平台、跨任务的智能伙伴,可以根据我们的需求和偏好,提供更精准和更高效的帮助。我们需要制定相应的法律法规,确保智能体技术的发展在伦理和法律的框架内进行,并加强监管,保护用户的权益。

博文视点(北京)官方博客 1122

一本书精通推荐算法,轻松搞定入门、面试、进阶

精通推荐算法:核心模块+经典模型+代码详解》一书主要介绍推荐算法技术,覆盖召回、粗排、精排和重排等模块,目的是让读者熟悉推荐算法的全部链路,加深体系化理解,并掌握关键技术细节。它能帮助你掌握推荐算法的整体架构、每个核心模块的知识框架,以及一些工作必备的经典模型,同时,能帮助你深入理解它们的出发点和具体实现方案,在实际工作中融会贯通。同时,推荐系统链路很长,包括召回、粗排、精排和重排等诸多模块,如何掌握整体架构,并深入每个模块理解其细节,就成为一件困难且重要的事。(3)模型经典,代表性强。

博文视点(北京)官方博客 1291

一本书了解AI的下一个风口:AI Agent

随着技术的飞速发展,我们正站在一个新的转折点上,AI Agent(AI智能体,简称智能体)作为AI技术发展的新风口,正逐渐揭开神秘面纱,预示着一个全新的智能时代到来。它们将不再是被动的执行者,而是我们生活中的主动参与者,可以理解我们的语言,预测我们的需求,并在多个任务中提供个性化的帮助。智能体将不再是单一功能的应用程序,而是能够跨平台、跨任务的智能伙伴,可以根据我们的需求和偏好,提供更精准和更高效的帮助。我们需要制定相应的法律法规,确保智能体技术的发展在伦理和法律的框架内进行,并加强监管,保护用户的权益。

博文视点(北京)官方博客 1164

野心、梦想与科幻——浅谈外星殖民与软件工程

这本书完美融合价值和创新的软件架构选择,旨在让业务决策者和技术团队成员学会通过协作来清晰地理解自身在战略层面面临的问题,并确定理想的架构制定方法,无论该方法是分布式微服务、模块化良好的单体,还是介于两者之间的粗粒度服务。软件架构专家Vaughn Vernon和Tomasz Jaskuła展示了如何基于需求和目标做出平衡的架构决策,而非盲目跟风,从而聚焦于价值和创新,交付更具可演进性的系统,并避免代价高昂的错误。考虑到新的交付机制和收入模式,现有的产品可能是创新的催化剂,能够带来比昨天更大的价值。

博文视点(北京)官方博客 1675

万众期待,催更5年,《码农翻身2》强势来袭!!!

再比如,对于“编程语言的巅峰”这一节,如果你对基本的数组、条件分支、函数都不了解,就无法领略汇编语言的厉害之处。现在《码农翻身2》终于来了,之所以拖了这么长的时间,主要是因为中间“插播”了另外一本书——《半小时漫画计算机》,该书使用纯漫画的方式来讲解计算机基础知识,这对我来说是一个全新的尝试,花费了我不少的时间和精力。所以,我在写文章的时候也有意把枯燥乏味的技术包装一下,变成好玩有趣的故事,在故事中让主人公不断遇到问题,不断制造悬念,吸引大家看下去,不知不觉就把技术掌握了。

博文视点(北京)官方博客 1931

【干货来了】大语言模型训练优化秘籍

由于一次模型训练过程通常包含多轮,因此,初始数据预热占用的同步时间在整个训练过程中的占比很低,而且本地缓存不受节点数量增加的影响,可以保证每个节点具有同等的吞吐性能。这样做效率更高,性能可提升数倍。不同的分布式并行技术对通信带宽的要求不同,因此,针对不同的硬件环境,需要选择最适合的分布式并行方案,并针对不同的数据量和模型特点做针对性的优化,从而达到最好的通信效率。还有一些需要关注的 I/O 问题,如训练数据量比较大,通常有几 TB∼几百 TB,这对存储的要求比较高,既需要大存储容量,又需要高吞吐性能。

博文视点(北京)官方博客 1621

从《繁花》看图数据库的关联力!

据艾瑞咨询《2022年中国知识图谱行业研究报告》,知识图谱是二维链接的图结构而非行或列的表结构,需要以图数据的形式描述并存储,该方式能直接反映知识图谱的内部结构,有利于知识查询,并且结合图计算算法能够实现知识的深度挖掘与推理。在此背景下,图技术领域专家张晨博士基于近十多年来在图数据库技术领域的研究和实践经验,牵头编写了《图数据库:理论与实践》,为图技术爱好者提供一本即具备领域概括性、又具有专业深度、还兼顾了业务实操性的领域知识与实践手册。在市场上,尚未出现一本能够帮助图数据库爱好者从入门到精通的实践手册。

博文视点(北京)官方博客 1069

大模型的智慧之源:图技术的崛起

以创邻科技针对信用卡场景打造的智能问答平台为例,该平台通过图技术和通用大模型的协同工作,优化大模型框架的逻辑推理能力的同时拓展了其原始知识边界,让生成式回答的灵活开放性与精确性并存。在处理复杂的推理和问答任务,特别是涉及多个变量和条件的情况时,图技术可以将问题抽象为图结构,并利用图算法进行分析,有效解决复杂问题,弥补大型语言模型推理能力的不足,实现更广泛的应用和发展。与大模型相比,图技术能够更好地处理复杂的逻辑关系和多种数据结构,更全面地分析和理解数据之间的关系,提高推理和决策的准确性。

博文视点(北京)官方博客 760

Go 首次冲进前八!曾两次夺得年度编程语言,也曾跌至百名开外 | TIOBE 2 月榜单发布

本书基于Go 1.20版本编写,对Go语言的语法和使用方法进行了详尽的介绍,包括基础语法、数组、切片、映射、函数、类型、包与依赖管理、接口、反射、并发编程、泛型、测试、常用标准库和第三方库的基本原理和使用方法,并通过最佳实践案例详细讲解使用过程中遇到的常见问题和解决方法,以期帮助读者读者更好地理解Go语言的语法特性和应用技巧。想要用Go语言写出优质的软件,不仅要了解Go语言的语法,还需要对Go语言的特性、软件的通用编写方法、软件项目的组织方法、并发程序设计、软件测试、软件性能优化等方面都有一定的了解。

博文视点(北京)官方博客 1529

2024年了,是谁还在学C++11?(没错,是我)

它融合了令全球无数程序员为之迷醉的C++大师Stanley B. Lippman的丰富实践经验,注入了C++标准委员会原负责人Josée Lajoie 对C++标准的深入理解,再结合上C++ 先驱Barbara E. Moo在 C++教学方面的真知灼见,经历了语言缔造者与常青藤名校数版迭代,才锻造出了这样一本每一页都在闪闪发光的C++学习头牌!但无论如何,学习 C++11 仍然是一个有价值的投资,可以提升你的 C++编程技能,并为你在 C++领域的发展打下坚实的基础。

博文视点(北京)官方博客 1688

大模型竞速下半场,探索大模型应用的奥秘

虽然搭建Chatbot的产品方法论并没有因为以ChatGPT 为代表的大模型的出现发生本质的变化,但是在一些技术落地的实现路径中,新的技术对旧的技术确实有了一定程度的替换。只有冷静地看待人工智能的发展,理解技术周期性的变化并持续拥抱最新的技术,我们才能抓住真正的机会,做出人们期待的产品。与出版本书第1版时的情形非常相似,如今,大家对ChatGPT有和Chatbot一样巨大的误区,认为人工智能是一个纯粹的技术工程,被各种技术术语影响,忽略了商业应用中产品设计和对用户需求的理解实际上是更为重要的事实。

博文视点(北京)官方博客 1180

云联接:揭开SD-WAN神秘面纱,颠覆你对网络的认知!

如今,尽管 SD-WAN 技术在业内仍未有系统、标准的定义,但未来 WAN 传输将是软件定义的这一观点已成为业内共识:只有在应用识别能力、隧道加密能力、动态优化能力、应用可视化能力和零信任构架五大能力的支持下,一个具有商业化价值的 SD-WAN 基础服务架构体系才能形成。云联接,即世间万物中无处不在的联系、联接和联动,它是 SD-WAN 的形式化表述,包含了 SD-WAN 技术的丰富能力,是展现未来网络形态的理念。当然,不同行业的不同企业网络特性各有不同,SD-WAN的应用场景也可能大相径庭。

博文视点(北京)官方博客 847

RAG:让大语言模型拥有特定的专属知识

值得注意的是,在进行检索之前,对数据的处理也非常重要。可以发现,虽然大语言模型有上下文推理能力,但由于大语言模型存在“知识过期”和“细分领域的幻觉”这两个限制,且它会尽可能地尝试回答所有的问题,因此只是单纯地使用大语言模型是没有办法解决所有问题的,RAG正是在这个背景下应运而生的。RAG技术在Chatbot中的应用极大地提高了回应的相关性和准确性,使得处理复杂查询成为可能,并显著增强了个性化与上下文理解的能力,为用户提供了更丰富、更自然、更个性化的交互体验,推动了Chatbot技术的发展。

博文视点(北京)官方博客 2347

AI加持,openEuler打造数字基础设施全场景操作系统

通过在openEuler中引入的异构内核管理,可以在CPU和NPU通过共享页表的方式实现统一编址,使得双方可以互用内存,达成内存“透明”扩容、超分,这样可以提升推理场景吞吐量提升50%,并极大的简化内存管理的需求成本,以往多套内存接口简化为一套,异构驱动代码也能从万行下降到百行。通用的配置语言,也可以用于打造开箱即用的定制能力,支持任意YAML字段定制,适配众多格式的上游软件,而且OS支持分层定制,通过EulerMaker和EulerTest构建面向多场景的软件。“崛起数字时代,引领数智未来。

博文视点(北京)官方博客 1559

基于大语言模型LangChain框架:知识库问答系统实践

ChatGPT 所取得的巨大成功,使得越来越多的开发者希望利用 OpenAI 提供的 API 或私有化模型开发基于大语言模型的应用程序。然而,即使大语言模型的调用相对简单,仍需要完成大量的定制开发工作,包括 API 集成、交互逻辑、数据存储等。为了解决这个问题,从 2022 年开始,多家机构和个人陆续推出了大量开源项目,帮助开发者快速创建基于大语言模型的端到端应用程序或流程,其中较为著名的是 LangChain 框架。

博文视点(北京)官方博客 4702
上一篇: 一部好看过武侠小说的热血互联网史!
下一篇: 书单 | 带你轻松度假的10本好书!
博文视点
博文视点 企业官方账号 企业官方账号 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 6871粉丝 2132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值