魏小言
BAT资深工程师,Cloud Native 拥护者,敏捷实践者,坚守开发一线打磨工匠技艺的架构师。对基础架构和微服务有丰富的研究和实践。微信群请私信博主
展开
-
面向 “大模型” 的未来服务架构设计
发展研究中心 5 月底发布的《中国人工智能大模型地图研究报告》显示,我国 10 亿参数规模以上的大模型已发布79个,几乎进入“百模大战”。百度的文心一言 ,阿里的通义千问、讯飞星火大模型、智谱AI的ChatGLM 等纷纷发布。此后,美团、百川智能、云知声、美图、腾讯……新加入大模型赛道的国内科技公司此起彼伏,一场围绕大模型的 “军备竞赛” 已趋白热化。原创 2023-07-10 10:00:00 · 1145 阅读 · 1 评论 -
千万级入口服务[Gateway]框架设计(三:分层模式)
基于组件(插件)模式设计构建的入口服务实现中,使用 Go 原生包 plugin 的时候,会存在功能缺陷问题,不足以支撑预期能力;在使用 go-plugin 开源包的时候,虽然功能缺陷得到了弥补,但丧失了部分的性能(组件与主程序通信成本)。本文将介绍另一种基于 “分层” 、“管道” 的架构模式。原创 2023-07-03 11:30:00 · 521 阅读 · 1 评论 -
千万级入口服务[Gateway]框架设计(二:插件模式)
基于组件(插件)模式设计构建的入口服务,在使用 Go 原生包 plugin 实现的时候,会存在功能缺陷问题,不足以支撑预期能力。原创 2023-06-14 10:00:47 · 687 阅读 · 1 评论 -
千万级入口服务[Gateway]框架设计(一:组件模式)
在历史架构的迭代中,服务的入口级模块从雨后春笋到方兴未艾、以至于现在的如火如荼,最终成为服务定位中的,基础服务之一。原创 2023-06-13 13:52:25 · 1111 阅读 · 1 评论 -
【腾讯云FinOps Crane 集训营】Crane 助力云原生用户充分发挥云上资源的最大价值,帮助企业降本增效之利器
19年疫情至今,互联网业务高增速、强创收的局面已是昨日黄花。在面对疫情、国际局势、人口规模趋势、基尼效应、经济形势 等多种复杂的因素下,互联网企业的日子相对窘迫。严峻的环境倒逼着企业进行 “开源节流”、“降本增效”,捂紧钱袋子,应对充满未知的 “寒冬”。本文将围绕 “FinOps“ 思想,介绍 “通过 Crane 手段进行优化应用资源配置“,以达到业务增效降本的目的。欢迎感兴趣的同学,参考、学习。原创 2023-05-14 16:21:51 · 1289 阅读 · 3 评论 -
亚马逊:分布式计算宣言
它改变了亚马逊电子商务平台的架构。它突出了我们在20世纪末面临的挑战,并暗示了我们的前进方向。原创 2023-05-06 18:01:22 · 1143 阅读 · 0 评论 -
服务的高可用 —— 智能流控设计
最坏情况是dsp超时无反馈,响应时间由默认配置的最大超时时间决定,此时会拖慢整个A服务,同时广告链路各微服务之间产生连级反应,整条链路被影响。拿到有效的阈值后,服务会读取最近2m的QPS/120依据当前机器的权重计算总QPS与阈值做对比,做出是否调控的判定。这个时候,我们依赖流处理组件prometheus,我们以30s粒度去轮询dsp最近2min的失败率及超时率,通过设定阈值的方式,做出流量与dsp承载力之间的关系决策。智能流控,听起来是流量的拆分控制。...原创 2022-07-18 15:23:23 · 614 阅读 · 2 评论 -
垂类账号权限平台的设计与实践
目录垂类账号权限平台的设计与实践一、前言二、账号登录服务2.1 企业组织与账号模型2.2 稳定高效可配置的统一登录服务2.3 OAuth能力三、权限服务3.1 问题与思路3.2 复杂的功能鉴权3.3 灵活扩展的数据鉴权3.4 高性能高可用的鉴权服务四、总结垂类账号权限平台的设计与实践一、前言百度 ToB 垂类账号权限平台( 以下简称平台 ),是专注于为百度 ToB 垂类各产品线提供通用账号权限服务的基础平台,所提供的服务涵盖了租户管理、账号管理原创 2022-04-12 13:48:25 · 970 阅读 · 1 评论 -
查杀慢查询是预防 MySQL 雪崩不错的突破口
目录查杀慢查询是预防 MySQL 雪崩不错的突破口一、背景二、解决办法三、杀慢查询的方式四、解铃还须系铃人查杀慢查询是预防 MySQL 雪崩不错的突破口一、背景慢查询在 MySQL 数据库管理中,已经是再熟悉不过的事情了,只要我们在使用 MySQL,那慢查询就会一直存在下去,因为不管是业务 APP,还是 MySQL,他们的状态都是动态变化的,在这个动态的服务中,可能经常遇到的问题是,某几个指标的变化形成了共振效应,进而导致本来不慢的查询语句变成慢查询,本来可以走二级索原创 2022-04-11 10:36:58 · 301 阅读 · 1 评论 -
百度信誉保障服务架构全解析
目录一、背景百度保障产品介绍二、业务架构全景三保障服务核心能力介绍3.1 统一入驻3.2 信誉披露3.3 点击记录接入3.4 赔付申请四、电商场景实践五、发展与思考一、背景百度保障是商家与网民之间发生投诉纠纷时,百度处理投诉的兜底方案,目标在于围绕百度商家提供的内容和服务,构建良币驱逐劣币的百度信誉生态,让用户放心的在百度获取信息和服务。目前百度保障覆盖百度的各主要核心业务场景。搜索场景,无论是pc还是wise,端内还是端外,几乎所有交易场景都覆盖了;电商原创 2022-04-06 18:29:56 · 484 阅读 · 1 评论 -
Redis 进阶必备技能
目录Redis 进阶必备技能Redis 基础数据结构StringListSetHashZsetRedis 进阶使用布隆过滤器分布式锁深入原理IO模型通信协议持久化主从同步SentinelRedis集群工作原理Redis为什么变慢了Redis安全Redis 进阶必备技能Redis 大家用的不少,但是我们大多数人可能都只是关注业务本身,对于底层的细节则经常忽略,久而久之,对个人的成长帮助甚少。本文为大家总结了关于 Red原创 2022-03-30 12:49:15 · 569 阅读 · 3 评论 -
基于Spring Cloud的微服务架构分析
目录基于Spring Cloud的微服务架构分析Spring Cloud 的核心组件Eureka(注册中心)Zuul(服务网关)Ribbon(负载均衡)Hystrix(熔断保护器)Feign(REST转换器)Config(分布式配置)注册中心与API网关的分析Eureka 的竞品分析:Nacos、ZooKeeper、etcdEurekaZooKeeperNacosConsuletcd(待续)Spring Cloud全家桶的简介关.原创 2022-03-29 12:26:40 · 351 阅读 · 1 评论 -
数据库分库分表可扩展及数据倾斜/热点问题(二)
目录数据库分库分表可扩展及数据倾斜/热点问题(二)垂直&水平 分库分表Range & Hash策略“ 山前车 策略数据库分库分表可扩展及数据倾斜/热点问题(二)“在高并发、业务数据规模庞大、数据库服务负载高 的场景中,数据库分库分表是必不可少的手段之一。如何建立高效的分配策略,确保良好的可扩展性,解决数据倾斜等问题呢?”上周看到一篇关于,数据库分库分表的文章,文中除了提到垂直维度分割,还说到水平维度的两种分割策略:分别是Range和H...原创 2022-03-28 13:26:39 · 5334 阅读 · 1 评论 -
几年基础架构的经验之谈[42 things I learned from building a production database]
几年基础架构的经验之谈[42 things I learned from building a production database]最近读到了分布式系统研究者 Mahesh Balakrishnan 的一篇博客《42 things I learned from building a production database》。同样做基础架构,看完大佬总结的经验后拍案叫绝,其中有几条简直是真知灼见,故翻译了全文。Mahesh Balakrishnan 是 Facebook Delos 项目的负责原创 2022-03-21 12:55:44 · 3142 阅读 · 2 评论 -
经典软件架构设计模式
—1—分层模式(Layered Pattern (n-tier))分层架构模式是最常见的模式之一。分层模式背后的理念是,具有相同功能的组件将被组织成水平层。因此,每一层在应用程序中都扮演着特定的角色。在这种模式中,我们对应用程序可以拥有的层数没有限制。在这方面,我们还提倡关注点分离的概念。分层模式风格抽象了整个软件的视图;同时提供足够的细节,以了解各个层的角色和职责以及它们之间的关系。分层模式的典型实现如下: UI展示层(UI/Presentation Layer):渲染并运行用...原创 2022-03-17 10:27:26 · 4311 阅读 · 2 评论 -
细解 kafka 架构、应用场景及良好特性
文章目录细解 kafka 架构、应用场景及良好特性什么是 kafkakafka 框架/组成kafka 数据流消息数据写入 — 分区策略轮训策略随机策略按 key 哈希策略消息消费 — 分派策略rebalancerange 策略轮训策略策略缺陷消费者推拉模式push 模式缺点优点:pull 模式协调者KIP-500consumer offset 迁移吞吐量高且速度快顺序读写零拷贝sendfilemmap读写传统技术读写流式处理中扮演的角色附录细解 kafka 架构、应用场景及良好特性文章涵盖角度较广,建原创 2022-01-27 16:52:40 · 2406 阅读 · 1 评论 -
重试 — [双发机制] 解决的实质问题
文章目录背景服务高可用双发机制成功率长尾问题预定时间附录背景在基于云原生微服务的架构中,为保障整体服务可用性,会对各个依赖服务配置读写阈值,约束错误范围避免形成联机效应,有效的进行容错处理。服务高可用良好的容错手段之一是 “ 熔断器 ”,而服务的高可用不仅需要容错,还需要自主恢复的手段。现阶段架构中,重试、心跳检测、健康监测…等等都是从不同角度采取的措施,今天聊一下其中最常用的重试机制。双发机制重试机制 包含多种,这里以 “ 双发机制 “ 举例:双发机制:当服务发出请求后在预定的时间未收原创 2022-01-19 10:33:43 · 404 阅读 · 1 评论 -
Ab Test 衍生功能之锦上添花 —— 目标流量筛选
文章目录Ab Test 衍生功能之锦上添花 —— 目标流量筛选条件筛选整体设计详细设计代码设计性能优化Q&A附录Ab Test 衍生功能之锦上添花 —— 目标流量筛选Ab Test 在互联网产品精细化运营中发挥着重要且出色的作用,通过实验的形式,以数据为依据,科学决策,使产品在市场中保持强劲竞争力!前段时间,小结了关于 Ab Test 的基础知识及 Ab Test 通用平台的搭建 ,今天要对通用平台增添几分色彩,对其附加功能做些许补充,如筛选…条件筛选当我们进行实验配置之后,生产环境流原创 2021-08-30 10:11:13 · 772 阅读 · 10 评论 -
搞不懂代码里 XXX.sh 或 fis.js 脚本有什么用?从不知道代码 Push 以后到上线经历了什么?一分钟告诉你全流程!
文章目录服务上线 == 代码从本地切换到服务器上跑?服务器环境需要的物料构建脚本 —— build加载程序依赖可执行文件执行 —— Docker打包工具 —— Jekenis整体流程Q&A附录 作为一名研发,你有没有想过,自己完成代码 Push 到服务上线启动,这个过程经历了什么?只是交给运维或者平台进行 - 点点点完成就结束了吗? 今天就简单聊下本地 Push 代码后,到服务启动的全过程。服务上线 == 代码从本地切换到服务器上跑? 看小标题 “ 服务上线 == 代码从本地切换到服务原创 2021-08-10 17:41:22 · 525 阅读 · 2 评论 -
三天掌握Kafka 消息队列 小白到专家之路!
01 为什么要使用消息中间件在没有使用消息中间件之前,许多传统的系统业务对于消息的处理一般会采用串行方式或者并行方法;例如,你去网站注册一个账号,网站服务器对我们的注册操作进行处理,下面是串行跟并行的处理方式。串行方式:用户注册发放优惠券:用户注册,发放优惠券,将注册信息记录到数据库后,发送注册消息邮件,再发送注册短信验证,每个过程消耗50毫秒,一共就需要200毫秒并行方式:并行方式与串行方式不同的就是,用户注册存储数据后只需要往MQ投递消息即可,后续的发送邮件、优惠券发放等可以同时完成,只需要1原创 2021-06-19 17:23:03 · 735 阅读 · 2 评论 -
分分钟教会你, 解决 Grafana 中 String 类型的展示问题
文章目录特殊场景解决方案方案一「 API + Panel 」方案二「 Metric + Table + Display」方案施行流程最终效果Q&A附录 目前在企业级监控中,许多公司都用了 Prometheus + Grafana 组件。有些特殊场景需要以 String 类型为主要展示内容,那么你们的解决方案是什么呢?特殊场景场景一 在一个业务任务中,通过抢锁的方式确保当前有且仅有一个节点在执行任务,且一但节点故障,其他节点替换执行。「 锁:基于redisgo的分布式锁https:原创 2021-06-17 16:09:52 · 3399 阅读 · 2 评论 -
快速理解 WAL 机制,架构师必备技能!「建议收藏!!」
文章目录什么是 WAL 机制WAL 应用场景WAL 磁盘中具象结构WAL 截断WAL 检查点 checkPointQ&A附录 WAL 机制,是个伟大的设计,在不同的系统、组件中,都存在它的身影。 WAL 的分析了解,也是你在架构设计道路上,必备的技能之一。 下面来简单唠唠:什么是 WAL 机制 WAL 全称为,Write Ahead Log ,译为进行写操作前先写日志。WAL 应用场景 那么 WAL 是用来做什么的呢? WAL 最早/常出现的场景数据库操作中,解决两个问原创 2021-06-16 18:19:45 · 2669 阅读 · 0 评论 -
你知道系统模块之间如何聊天吗?——摊牌了,不装了,就是这样聊......「建议关注收藏!!架构师养成必备」
文章目录模块间的交互模块间交互方式RestfulRpc中间件如何选型Q&A附录模块间的交互 这个主题的提出,是想归类梳理一下在架构设计中,各组件模块如何交互,及交互方式的异同,如何取舍!模块间交互方式 模块间的交互方式都有哪些呢?首先,明确下主题范围,模块间。指系统内部各模块之间,不包含系统服务于外界耦合部分。 主要的模块间交互方式,常见的有三种:Restful、Rpc、中间件。下面来依次简单唠一下。Restful Restful 广义上讲是一种架构风格,不特指某种技术或框原创 2021-06-08 16:25:46 · 404 阅读 · 6 评论 -
你真正了解过Consul吗——掌握Consul分布式锁一篇就够了
文章目录ConsulConsul分布式锁SessionK-VLock流程图关键参数解析编码实例Q&A附录Consul现在大型系统为了保证服务高可用,都采用分布式架构提供服务。Consul是一款较zookeepr、etcd等年轻的纯Goland分布式服务架构。其包含多个功能模块服务发现、检查健康、K/V存储、多数据中心等,这里就其分布式锁进行介绍。Consul分布式锁Consul分布式锁实现和其K/V存储的特性密切相关。K/V存储在业务中最常见的之一是Redis「基于K/V设计的存储、中间件等原创 2021-05-25 13:54:31 · 811 阅读 · 14 评论 -
你真的需要这样一把锁——Redisgo_task分布式锁
文章目录Redisgo_task长短类型分布式场景介绍Redisgo_task实现原理SetNx(value+expire)原子性子协程Done()时间点子协程中的TickerRedisgo_task唯一外部依赖Redisgo_task Lock结构Redisgo_task架构健壮性设计Redisgo_task可扩展性Redisgo_task灵活性Redisgo_task可读性Redisgo_task性能指标Q&A附:产品设计思路借鉴Redisgo_task一款基于Goland语言实现的Redi原创 2021-05-24 15:12:49 · 570 阅读 · 12 评论 -
ES为什么那么牛——Elasticsearch存储解析
文章目录ElasticsearchElasticsearch 架构文档型数据库索引结构时间复杂度空间复杂度Q&A附录本文仅针对ES存储部分进行解析,其他部分请关注后续博文,欢迎技术交流!Elasticsearch监控全家桶 ELK/EFK,其中的 E 就是 ES(Elasticsearch)。Elasticsearch「开发语言 Java」最早于 2010 年 2 月发布,是一款分布式可扩展的实时检索分析组件。它不仅是一款文档型数据库,也是基于全文搜索引擎 Apache Lucene 之上的一原创 2021-05-23 16:02:58 · 2915 阅读 · 6 评论 -
问题定位排查方式
文章目录问题定位排查方式问题发现问题分析为什么要定位Collect节点/?这样的机制合理吗?机制适用的群体/范围/?问题解答良好的解决方式是什么呢/?附录问题定位排查方式这个问题很突然,也很粗糙,可能是呆过一线/二线公司后,不经意间对比的一些思考。问题发现今天搭建系统监控的时候,发现Collect模块用了Redis分布式锁解决Collect的单点问题。没什么问题,挺好,实现逻辑、重试设计性能都不错,唯一的问题是,无法快速定位当前Collect任务节点。问题分析为什么要定位Collect节点/?原创 2021-05-19 11:43:46 · 237 阅读 · 1 评论 -
你真的会重试吗?——重试机制之二进制指数退避机制
Table of Contents重试机制重试的必要性重试前提重试策略重试策略分析二进制指数退避策略二进制指数退避策略实操过程二进制指数退避策略原理Q&A附录重试机制本文介绍系统设计中,常见的重试机制。重点介绍二进制指数规避策略,从原理至实操,希望能为您在日后架构设计中带来些帮助!重试的必要性在互联网系统中,不管是基础组件还是业务开发,都依赖这机器、网络、电信号、等硬件、软件,任何流程不能保证100%到位。在实际场景中,会有各种不同重试的场景,尤其是在分布式架构、微原创 2021-05-17 18:21:35 · 1591 阅读 · 3 评论 -
四层负载均衡和七层负载均衡的区别
一、简介所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;七层通过虚拟的URL或主...转载 2019-12-20 15:28:47 · 279 阅读 · 0 评论 -
B/S、C/S系统设计对比
B/S、C/S对比: 一、C/S 1.优点: (1)安全性:需要其特定的客户端,所以面向对象比较确定,将所进行的信息安全处于一个可控的范围 (2)效率:客户端的服务器直接相连,省却了中间环节,数据的传输比较快 (3)个性化:有特定的客户端,所以可以在较大程度上满足客户的个性化要求 (4)稳定性:结构比较稳定,有较强的事务处理能力,可以实现较复杂的业务逻辑 2.缺点: ...原创 2018-09-05 07:28:49 · 1304 阅读 · 0 评论