数据架构高可用-腾讯微信学习笔记

2019-03-02 00:50|来源: 网路

1.大系统小做
仅仅把模块变得更为清晰,这在海量系统设计开发中是不够的,还需要再物理环境上进行分离部署,出现问题的时候可以快速发现,并且在最快的情况下解决掉。(在盛华这边,我们的后台进程根据功能分为几个,wsafe,wyw,wcx等)。每个进程负责不同的功能,这样在出现问题的时候根据出现的错误就能定位到我们的进程中,从而解决问题。但由于在这边业务不是很大,所以所有的进程都运行在同一台机器上,但是当我们的业务很大的时候可以把各个进程分离出来运行在独立的机器上,有更好的容错性。
将不同的应用逻辑物理分割独立出来,把关键的逻辑混搭在一起,用户注册登录、LBS逻辑、摇一摇逻辑、漂
流瓶逻辑、消息逻辑独立开来。当所有的逻辑部署在同一个服务器上,确实也会带来很大敏捷上的好处,因为不需要额外的考虑部署和监控的问题。在整个微信的逻辑中,可能现在已经有上百种不同的逻辑,因为会在逻辑的分割上拆分成8-10种做分离部署。

2.一切可扩展--网络协议可扩展,数据存储可扩展
扩展的关键点有两块。一个是网络协议需要扩展,当要升级一个新功能的时候,会有一些比较大的困难,所以所有协议设计都比较向前兼容,但是向前兼容还 是不够的,因为网络协议设计本身有非常多的功能也会有比较大的字段,相关的代码可能会有数千行,这一块不能通过手写方式完成。可以通过XML描述,再通过 工具自动生成所有的代码,这是微信获得快速开发的一个重要的点。
另外一块就是在数据存储方面是必须可扩展的。在2005年绝大多数海量系统的设计都是采用固定字段的存储,但是在现代系统中会意识到这个问题,会采用KV或者TLV的方式,微信也做了不同的设计。

3.把复杂逻辑都固化下来,成为基础软件。
在微信后台会有几种不同的基础组件。
大致包括:
• Svrkit——Client/Server自动代码生成框架:10分钟搭建内部服务器
• LogicServer——逻辑容器:随时添加新逻辑
• OssAgent——监控/统计框架:所见即所得的监控报表
• 存储组件——屏蔽容灾/扩容等复杂问题
在盛华这边基本的功能都固化下来,只要再需要的时候调用接口库就可以了。

4.灰度、灰度、再灰度
在变更后的部署方式上,微信在一些规则会限定不能一次把所有的逻辑变更上去,每一次变更一小点观察到每一个环节没有问题的时候,才能布局到全网上去。微信后台每一天可以支撑超过20个后台变更,在业界来说,通常做到5个已经是比较快了,但是微信可以做到快4倍。
而所谓灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。(在腾讯,灰度发布是最常采用的发布方式之一)


转自:http://www.cnblogs.com/Victorzsg/p/3467528

相关问答

更多
  • 可以看相关接口文档,边学边做,不会的就网上查资源。
  • 要了解以下内容: 第1搭建开发环境和相关技术介绍 公众平台开发模式的数据交互方式、AppServ的安装与配置、结合开发环境讲解了需要用到的技术:PHP、HTTP、XML、MySQL和HTML5。 第2、微.信公众平台API : 网址接入、接收用户消息、向用户发送消息、事件推送和自定义菜单,这些都是后续的案例开发中会使用的。 第3 内容运营 ,开发功能条件申请等
  • jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。 jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。 jstat 命令 ...
  • 微信2下载[2024-02-01]

    您好,打开手机浏览器或者是应用商城,然后输入微信进行搜索,在搜索结果中下载安装这款软件即可
  • 用电脑打开浏览器,搜索“微信公众平台”,注册,按提示一步一步操作就行。 如果是个人申请,只能申请订阅号,需要提供持身份证的清晰照片,一个身份证可以申请两个公众号,提前想好中文名字和英文ID(微信号),尽量别浪费机会。 申请成功就可以登陆,熟悉界面,功能还不能用,要等审核,审核通过很快,帮助文档里面说是7个工作日,事实上两三天就通过了。审核成功可以在右上角的邮件标志那看到。 使用的时候,公众号分为编辑模式和开发模式两种,选择开发模式就行了,申请成为开发人员,需要有服务器支持。
  • 有每天都有10-20个这样的电话,我不知道电话号码怎么泄露的,而且他还知道你姓名等很多信息,我平时也没时间去参加这样的会,他们就说没事下次打来,天天打,我说不去了,他们还是天天打,有时一天最多接50多个这样的号码,我不知道为什么微信把我们的号码泄露出去,难道就没有人管吗??有朋友去了他们那个酒店会议,参加了两次直接缴纳了5万多,什么事都没干,完全不知道什么,打电话找他们说已经帮他推广了?!!!!完全不懂什么推广??腾讯这是在干嘛?
  • 1. 首先要懂得前端的开发技术才是可以的。 2. 然后还要懂得后台的开发才可以开发出自己的小程序。
  • 开通微信商城的流程如下: 一、注册微信公众平台的服务号; 我们必须先注册微信公众平台的服务号,因为只有服务号才可能开通支付功能,实现线上的交易。至于如何申请微信公平台请参照我们的《微信公众号的申请和完善》。 二、微信认证服务号(申请公函); 进入微信公众平台之后点击右侧中设置的微信认证,如何搭建自己的微商城(上) 点击之后就会出现微信认证的界面 如何搭建自己的微商城(上) 微信认证 根据提示进行一步一步的认证,我们的公众号认证可以算是基本成型,不过认证的最后是要给腾迅缴纳300元认证费用的。认证通过之后,服 ...
  • 不是仿,是直接登录到微信公众平台,但是没有通过他们的登录界面登录进去,而是用程序提交用户名密码登录进去,然后进行相关操作,往相关接口提交数据
  • 小程序本身是微信提供的一个平台,使用和注册都是不需要钱的(企业需要300认证费)。注册下来的名字也永久是你的,就是小程序你要用起来里面的功能是需要开发的,要么自己开发要么找第三方合作。