首页
学习
活动
专区
圈层
工具
发布

微服务在微信的架构实践

作者|许家滔 编辑|田光 微服务的理念与腾讯一直倡导的“大系统小做”有很多相通之处,本文将分享微信后台架构的服务发现、通信机制、集群管理等基础能力与其上层服务划分原则、代码管理规则等。...过去几年,微信都是很敏捷地在开发一些业务。所以我们的底层架构需要支撑业务的快速发展,会有一些特殊的需求。 另外,目前整个微信团队已经有一千多人了,开发人员也有好几百。...整个微信底层框架是统一的,微信后台有千级模块的系统。比如说某某服务,有上千个微服务在跑,而集群机器数有几万台,那么在这样的规模下,我们会有怎么样的挑战呢?...早年我们 QQ 邮箱、微信、图像压缩、反垃圾都是一个 web 服务,只有存储层会独立到后面去,甚至用 web 直连 MySQL。因为它早期比较小,后来变大之后就用微服务架构。...2011 年起负责微信后台基础架构,包括分布式存储平台和后台服务框架等,覆盖微信账号 / 消息 / 朋友圈核心存储等,并为公众号 / 微信支付 / 微信企业号等等业务提供组件支持,近两年专注于后台服务质量提升和高性能架构

4K32

微服务架构多“微”才合适?

二、互联网微服务架构多“微”才适合 大家也都认可,随着数据量、流量、业务复杂度的提升,服务化架构是架构演进中的必由之路,今天要讨论的话题是:微服务架构多“微”才合适?...最粗犷的玩法,所有基础数据的访问,都通过一个service访问,在业务不是特别复杂的时候还好,一旦业务变复杂了,这个service层会变得非常重,成为耦合点之一,以微信场景为例,假设有一个通用的服务层来访问基础数据...有一个统一的service层,用户信息,好友信息,群组信息,消息信息都通过这个service层来走。 细节:微信单对单消息是一个写多读少的业务,故没有缓存。...垂直拆分是个好的方案,将子业务一个个拆出来,那么微信的服务化架构或许会变成这个样子: ?...【一个接口对应一个service】 微服务架构中更极端的,甚至一个接口对应一个微服务,这样的话,架构就从: ? 演化为: ?

1.5K61
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    架构的未来:微前端与微服务的融合

    文章目录 微服务架构简介 微前端架构简介 微前端与微服务的融合 1. 共享服务 2. 基于事件的通信 3. 统一的身份和认证 4....交付管道的集成 示例:使用微服务和微前端的电子商务平台 微服务架构 微前端架构 融合微服务和微前端 结论 欢迎来到架构设计专栏~架构的未来:微前端与微服务的融合 ☆* o(≧▽≦)o *☆嗨~我是...❤️ 在当今快速发展的软件开发领域,架构设计一直是一个不断演化的领域。随着技术的不断发展,我们看到了微服务架构和微前端架构这两种新兴的架构风格的崭露头角。...微前端与微服务的融合 虽然微服务和微前端是两种不同的架构风格,但它们之间存在许多共通之处。它们都强调了模块化、独立开发和部署的概念。...同样,微前端架构可以将前端模块拆分为多个独立的部分,这些部分可以在不同的前端应用程序之间共享。通过将微服务和微前端中的共享部分抽象为可重用的服务,可以实现更好的代码复用。 2.

    68710

    【微前端架构】AWS 上的微前端架构

    微服务架构的特点是独立服务,这些服务专注于特定的业务功能,并由小型、自包含的团队维护。微服务架构经常用于在 AWS 上开发的 Web 应用程序,这是有充分理由的。...例如,他们有一个与所有后端微服务交互的大型代码库,并由一大群开发人员维护。 图 1. 带有单体前端的微服务后端 什么是微前端? 微前端架构将微服务开发原则引入前端应用程序。...带有微前端的微服务后端 微前端的好处 与单体前端相比,微前端具有以下优势: 独立工件:微服务开发的核心原则是工件可以独立部署,这对于微前端仍然适用。...在微前端架构中,团队应该能够独立部署他们的前端应用程序,而对其他服务的影响最小。这些更改将反映在父应用程序中。 自治团队:每个团队都是各自领域的专家。例如,计费服务团队成员具有专业知识。...应将它们配置为使用父应用程序获取的 JWT,或者从 Amazon Cognito 静默检索新的 JWT。 结论 微前端架构为前端应用程序引入了微服务开发的许多熟悉的好处。

    2.3K10

    微前端学习笔记(1):微前端总体架构概述,从微服务发微

    从最初的CS架构,如MFC Java Swing 等,到BS架构,JSP PHP,再到前端后端分离,前端从jquery  GWT-Ext  到 Handlebars ,再到angularJS/Vue/React...,反观java 世界,学好 Spring MyBatis ,一路无忧,哎……微服务为了解决庞大的一整块后端服务带来的变更与扩展方面的限制,出现了微服务架构(Microservices):微服务是面向服务架构...微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将单页面前端应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用还可以独立开发、独立部署。...微前端微前端是一种类似于微服务的架构,是一种由独立交付的多个前端应用组成整体的架构风格,将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的应用,而在用户看来仍然是内聚的单个产品。...微服务架构,可以解耦后端服务间依赖。而微前端,则关注于聚合前端应用。热闹驱动开发。新的技术,既然很热闹,那么就学吧。微前端的实现,意味着对前端应用的拆分。

    69310

    基于 PHP 实现的微信小程序 pdf 文件的预览服务

    知识点 微信小程序预览pdf文件 问题描述 前段时间文库类微信小程序开发中遇到个问题,就是要在小程序中预览 pdf 文件。微信官方给的方案就一个,就是把文档缓存到本地然后用资源管理器打开。...探索过程 方案一:使用小程序的 webview,在网页中实现预览。体验还是可以的,但是遇到的问题是 跨域问题无法解决。 方案二:pdf.js。网上很多方案说是用这个,在服务器上写个静态页面进行预览。...这种方案的话,如果 pdf 文件在自己域名的服务器上还可以。但是如果文件在第三方的 oss 中,还是会碰到跨域问题。而且线上小程序会出跳转提示。...服务器需要安装图像处理软件 (ImageMagick) 用于生成图片 php 需要安装 ImageMagick 对应的扩展 服务器需要安装 ghostscript 用于打开并解析 pdf 文件 最终效果.../configure make && make install 五条命令分别对应的操作为:下载 解压 打开目录 配置 编译安装 为 php 安装扩展 imagemagick (我是在宝塔中一键安装的

    2.3K20

    【微服务架构】微服务架构——探索 UBER 的微服务架构

    在本文中,您将了解以下内容: 微服务架构的定义 微服务架构的关键概念 微服务架构的优缺点 优步——案例研究 在我谈论 UBER 的微服务架构之前,如果我给你定义微服务,这将是公平的。...确保微服务之间的通信是通过无状态服务器完成的。 每个服务都可以进一步重构为更小的服务,拥有自己的微服务。 现在,您已经阅读了设计微服务时的基本指南,让我们了解微服务的架构。 微服务架构如何工作?...【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】公众号 【jiagoushipro】 【超级架构师】 精彩图文详解架构方法论,架构实践,技术原理,技术趋势。...微信小号 【cea_csa_cto】 50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化....知识星球【职场和技术】微博【智能时刻】智能时刻哔哩哔哩【超级架构师】抖音【cea_cio】超级架构师快手【cea_cio_cto】超级架构师 小红书【cea_csa_cto】超级架构师 谢谢大家关注

    75420

    PHP程序员如何简单的开展服务治理架构(一)

    不涉及其他的语言及工具,我们从PHP本身来谈如何实现服务治理 本猿人已经写好的服务治理 https://github.com/CrazyCodes/Service-Govern.git 治理什么...这个专业名词很容易发现治理的是服务,而服务则是我们的项目。管理这些服务方案则叫服务治理。...) 调用服务的应用我们称它为服务消费者,例如 * User-Api * Shop-Api * Goods-Api * Live-Api Service 是对内服务的而Api是对外服务的 图片来源...服务与服务之间通信可以通过RPC通信,当然也可以选择UDP等 swoole PHP圈内跨世纪的产物,使用他的原因是因为Swoole本身支持RPC通信,所以我们本章通过Swoole Rpc的方法去实现消费者与服务提供者之间的通信...首先通过php的__call 方法去截取一个不存在的方法 public function __call($name, $arguments) { $client = new ClientRpc(

    52610

    PHP程序员如何简单的开展服务治理架构(三)

    概述 SOA代表了面向服务架构,仅仅是一种概念,通过这种概念而演变出的各种各样的服务架构都可称为SOA架构,SOA核心的概念就是 “松耦合”。...非SOA的架构 多语言开发 同语言开发 服务与服务之间可能会是不同的开发语言或相同语言开发,他们的调用方式依旧只可以通过http去获取,或者比较流行的Restful Api的形式,无论是在性能与开发的过程中都是很笨的办法...是的,你猜对了,使用SOA可以松散耦合的方式管理服务之间的工作流。 什么是SOA SOA代表了面向服务的架构。...SOA是一种使用松耦合的黑盒子服务构建业务应用的体系架构,这些服务可以通过编排连接在一起以实现特定的功能。 什么是合同,地址和绑定? 这是三个SOA的标准术语。...下一章回到正题,讲一下服务治理实现 PHP程序员如何简单的开展服务治理架构(一) https://segmentfault.com/a/1190000013481688 PHP程序员如何简单的开展服务治理架构

    74920

    PHP程序员如何简单的开展服务治理架构(二)

    服务治理 治理的绝笔是服务,在一家公司有玩各种语言的程序员,如何去统一管理他们开发的服务,这是一个问题。...上一章主要讲了下服务治理需要什么,如何实现,这章我们详细的“肢解”一下服务治理的一个非常重要的组员 Thrift 上一章说明他的时候是这样写的 暂时大可理解为可以通过它去调用其他开发语言的方法...它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript...,使用php魔术方法__call去调用一个不存在的方法 class Client{ protected $serviceName; public function __construct...程序员如何简单的开展服务治理架构(一) 鸣谢 周梦康 https://mengkang.net/ 最后修改:6个月前 2018-03-06 © 著作权归作者所有

    59120

    「微服务架构」Medium的微服务架构实践

    我们已经构建了几个卫星服务,但我们还没有制定一个系统地采用微服务架构的策略。随着系统变得越来越复杂并且团队不断发展,我们在2018年初转向了微服务架构。...在这篇文章中,我们希望分享我们有效地做到这一点并避免微服务综合症的经验。 什么是微服务架构? 首先,让我们花一点时间来思考微服务架构是什么,不是什么。 “微服务”是那些过载和混乱的软件工程趋势之一。...由于多个服务协调的复杂性和成本(有时跨多个团队),分布式单片系统通常比集中式单片系统差得多。 与此同时,了解微服务不是什么很重要: 微服务不是具有少量代码行或“微”任务的服务。...尽管微服务架构允许团队更轻松地测试新技术,但它并不是微服务架构的主要目标。只要团队从分离的服务中受益,就可以使用完全相同的技术堆栈构建新服务。 微服务不是必须从头开始构建的服务。...微服务架构的一个主要优点是每个服务都可以使用不同的技术堆栈构建,并与不同的技术集成。这使我们能够选择最适合工作的工具,更重要的是,我们可以快速安全地完成工作。 微服务策略 采用微服务架构并非易事。

    70221

    微服务架构与SpringCloud:微服务架构的特点

    微服务架构是一项在云端部署应用和服务的新技术。 诸如此类,不一而足。...下面摘录的一段描述,被普遍认为可以作为微服务架构的定义:“简而言之,微服务架构是将单个应用程序作为一组小型服务开发的方法,每个服务程序都在自己的进程中运行,并与轻量级机制(通常是 Hπ?...进行整合,这就是微服务架构的精髓所在。我们可以用一句通俗易懂的话来概括,那就是“分而治之,合而用之”。 从上面微服务架构的描述中,我们可以概括出微服务架构的几个显著特点。 1....本文给大家讲解的内容是微服务架构与SpringCloud:微服务架构的特点、微服务架构与整体式架构的区别 下篇文章给大家讲解的是微服务架构与 SOA 的比较、微服务架构的优势; 觉得文章不错的朋友可以转发此文关注小编...本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

    82120

    微服务架构: 微服务架构的核心概念 ( 一 )

    导语 我将发表一系列关于微服务的文章, 从探讨微服务的架构开始, 到打造微服务软件架构的工程实践。 期望, 能激发起大家对微服务的兴趣与重视。 更期待大家的交流。...前言 经过了半个多世纪的软件开发, 所积累到的知识与经验, 我们终于构造了可扩展的系统架构; 云平台。 然而, 在这可扩展的云平台上, 我们又该如何打造我们自身的产品软件架构?...微服务, 提供了一个 "架构模式"; 使得我们得以参考这一架构模式, 而去设计一可扩展、可适应变化的产品软件架构。 微服务设计是架构设计。 微服务设计不应是一个讲求标准答案, 简单粗暴的设计过程。...而应该是一个考量各方因素下的一个决策的过程。 本文 在探讨微服务架构前, 我们先来探讨下, 所谓的微服务具体应包含哪些核心的概念? I....分别部署 (Separately Deploy): 微服务架构的产品或许会有数百甚至数千个微服务所构成。

    2.3K10

    微服务架构 (一): 微服务架构的核心概念

    2016.8.8, 深圳, Ken Fang 微服务设计是架构设计。 所以, 微服务设计不应是一个讲求标准答案, 简单粗暴的设计过程。而应该是一个考量各方因素下的一个决策的过程。...所以, 在探讨微服务架构前, 我们先来探讨下, 所谓的微服务具体应包含哪些核心的概念? I.        ...分别部署 (Separately Deploy): 微服务架构的产品或许会有数百甚至数千个微服务所构成。...而当微服务外部的使用者界面、系统或设备发现此新的微服务不适用时, api layer 便可将微服务外部的使用者界面、系统或设备导向旧的微服务上的 endpoint, 而使得新的微服务, 对微服务外部的使用者界面...开发新的微服务优于在既有的微服务上不断的加新的场景或功能: 当某个微服务开发完后, 便应避免不要再在此微服务上, 不断的加新的场景或功能; 新的场景或功能应该是属于另一个新的微服务。 ?

    1K90

    服务架构的进化

    然而,开发分布式程序也并不意味着一定要依靠今天的微服务架构才能实现。...SOA 架构(Service-Oriented Architecture)面向服务的架构是一次具体地、系统性地成功解决分布式服务主要问题的架构模式。...Microservices)微服务是一种通过多个小型服务组合来构建单个应用的架构风格,这些服务围绕业务能力而非特定的技术标准来构建。...在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单。本质:用一些功能比较明确、业务比较精练的服务去解决更大、更实际的问题。...早期,云原生架构有几个特征:符合12模式(Twelve-Factor App):云原生应用架构的模式集合微服务架构(Microservices):独立部署的服务,一次只做一件事自助服务敏捷基础设施(Self-Service

    90381

    微信许家滔:微信10亿日活场景下,后台微服务架构及存储架构实践!

    作者介绍:许家滔,微信技术架构部后台总监,专家工程师,多年来伴随QQ邮箱和微信后台成长,历经系统从0到10亿级用户的过程。目前负责微信后台工作,包括消息,资料与关系链,后台基础设施等内容。...本文整理自许家滔老师在“第十届中国系统架构师大会SACC2018)”的演讲内容整理而成,以下是正文: 01 微信发展主要的技术里程碑 微信在2011年1月21日发布了1.0版本,以即时消息为主;2011...02 微信后台的系统架构 逻辑上讲,最前面会有一个终端,后面会有一个长链接接入层,在线有几亿的管理连接部分。...上面提到的这个论文是微信PaxosStore的一点创新,贡献出了一些简洁的算法实现流程,大家可以很轻松的去理解和实现。 06 PaxosStore整体架构 PaxosStore整体架构,如下图。...09 微信微服务架构框架 微服务包含了服务定义、服务发现、错误重试、监控容灾、灰度发布等一系列面向服务的高级特性的统一框架。

    6K435

    「微服务架构」企业微服务架构

    首先,来自Darren的消息是,微服务架构并不是构建大规模企业应用程序的新方式。 Netflix和亚马逊等公司已经实施了微服务架构,在过去几年中提供了成功的产品。 但是微服务架构适合您的组织吗?...监控部署生命周期的各个阶段 集中式架构团队与分散式架构团队 基建自动化 架构师的角色随着微服务的采用而发展,并委托他或她承担挑战性的责任,从而形成架构治理。...架构治理是组织尝试开始微服务之旅的关键因素之一,因为如果没有正确的顺序,该过程将很快导致微管理而不是微服务。...这意味着企业架构师不再需要承担单个服务的内部工作负担,而是高度关注整个系统中服务之间的交互。此外,架构师应密切关注系统的整体运行状况,以确保每项服务以一致的方式生成与监控相关的指标。...如果您正在寻找有关微服务架构的其他材料,请查看Martin Fowler的文章或ThoughtWorks网站上的其他微服务洞察博客。

    91822

    微前端架构实战

    微前端架构实战 如何实现多个应用之间的资源共享? 之前比较多的处理方式是npm包形式抽离和引用,比如多个应用项目之间,可能有某业务逻辑模块或者其他是可复用的,便抽离出来以npm包的形式进行管理和使用。...可以理解微前端是一种将多个可独立交付的小型前端应用聚合为一个整体的架构风格。...这种架构目前有多种方案,都有利弊之处,但只要适用当前业务场景的就是好方案。 微前端并没有技术栈的约束。每一套微前端方案的设计,都是基于实际需求出发。...微前端由于是多个子应用的聚合,如果多个业务应用依赖同一个服务应用的功能模块,只需要更新服务应用,其他业务应用就可以立马更新,从而缩短了更新流程和节约了更新成本。...直接迁移是不可能的,在新的框架中完全重写也不太现实。 使用微前端架构就可以解决问题,在保留原有项目的同时,可以完全使用新的框架开发新的需求,然后再使用微前端架构将旧的项目和新的项目进行整合。

    4.3K00
    领券