硬核难度

个人博客

【架构入门 - 高可用篇】计算高可用

计算高可用的目标是当部分服务器停止服务时,整体的计算任务能够继续进行,所以本质是通过冗余来规避风险 问题 计算高可用的复杂度体现在任务管理方面,比如一台机器挂了,那么上面的任务如何处理?所以设计高可用架构有以下问题: 哪些服务器可以执行任务?第一种方式是每个服务器都能执行任务;第二种方式是特定主机可以执行任务,如etcd的leader 任务如何重新执行?第一种是即使任务失败也不处理,但......

【架构入门 - 高性能篇】数据库高性能

单机高性能与集群高性能都是针对负责计算的服务器而言的,负责存储的数据库服务器因为处理的是数据而不是计算,架构和使用方式又有所不同 SQL - 读写分离 基本原理是将数据库读写操作分散到不同节点上,从而分散读写压力到不同的节点上 一主一从或一主多从都可以;主机负责读写操作,从机负责读操作,每个机器都需要同时工作;主机通过复制将数据同步到从机,每个节点都存储了所有的数据 复制延迟 MySQ......

【架构入门 - 高性能篇】集群高性能

做到集群高性能其实非常简单,三个字【加机器】 但加机器之后带来的是机器之间配合和集群管理的复杂度,对应也会有解决方案 负载均衡 任务分配是高性能集群主要的复杂性体现,所以选择一个合适的负载均衡器和算法是必须的 分类 DNS 最简单的方式,一般用来实现地理级别的均衡(AWS Route53就是)。比如来自美国的访问就分配给位于美国的服务器,来自中国的访问就分配给位于中国的服务器 优点: ......

🥚男的几个高能

一拳超人第二季放送开始啦,写点儿东西送给老师和自己 Note:Music自动播放哦~ 上大学的时候被这个🥚头男深深吸引了,主要还是这个男人的拳头实在太猛了,一出场就是无敌的存在,第一次让我为反派担心 因为很少有故事是这样讲的:男主一开始就无敌了,然后各种因缘巧合干掉了无数个在他面前装逼的小喽啰,男主装完逼之后还觉得没什么意思。但这就是引人入胜、夺人眼球的关键,然后就进入了🥚男的套路了......

【架构入门 - 高性能篇】单机高性能

做到单机高性能其实非常简单,一个字【钱】 但钱的力量远远不够,还需要把钱花在刀刃上 协作方式 在高并发场景中,必须要让服务器同时维护大量请求连接,可能是一个服务进程创建另一个进程,也可能是一个服务线程去创建另一个线程,但连接结束后进程或线程就销毁了,这是一个巨大的浪费 一个自然的想法就是通过创建一个进程/线程池从而达到资源复用,一个进程/线程可以处理多个连接 那么如何处理多个连接? 同步......

【架构入门】什么是架构

对于想要入门架构的小白来说,我们必须要了解以下问题: 什么是架构 架构的目的 架构的复杂度来源 做架构需要具备的能力 什么是架构 软件架构指软件系统的顶层结构 系统:泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。比如微信就是一个系统 顶层结构:系统可分为系统与子系统,差别在于系统可能是另外一个大系统的子系统。比如微信系统中还包含聊天、登录、支付......

基于Go Micro的微服务架构本地实战

本项目Github地址:https://github.com/xbox1994/GoMicroExample 简介 Go Micro是一个插件化的基础微服务框架,它是一部分微服务工具的集合。基于该框架可以构建出微服务应用程序。Micro的设计哲学是“可插拔”的插件化架构。在架构之外,它默认实现了consul作为服务发现,通过http、protobuf、进行通信。里面包含几乎所有微服务组件,......

【译】在AWS上扩展到数百万用户的系统

第一步:弄清用例与约束 收集需求和问题的范围 通过问问题来弄清用例与约束 讨论假设 我们假定以下用例 用例 解决这个问题需要采用迭代的方法: 基准/负载测试 瓶颈检测 评估替代方案来解决瓶颈 重复以上 这是将基本设计升级为可扩展设计的良好模式 除非你有AWS的背景或者正在申请AWS的相关职位,否则在AWS上的实现细节不需要了解。然而大部分在这里讨论的原理可以应用到除了AWS以外更通......

【架构入门】从业务到平台的思维转变

一个需求:抽奖系统 如果你接到了一个开发需求:开发一个抽奖活动的后台系统。第一反应如果是打开IDEA,新建一个项目,输入项目名:lottery。然后开始根据需求着手开始进行设计数据库,api,然后进行开发,这是太平常不过的开发流程。 过了一段时间,你又接到一个类似的需求:开发另一个抽奖活动的后台系统,但是里面的一些业务逻辑、流程处理不太一样,然后就把前一个完成的后台系统复制过来,准备开始修......

OAuth2原理与LinkedIn的第三方分享实战

OAuth是什么 开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。在全世界得到广泛应用,目前的版本是2.0版。 比如我的应用需要实现在领英上替用户分享一个动态,但是只有得到用户的授权才能在我的应用中调用领英的API进行分享操作,如果直接让用户把用户名密码传到我的应用,确实可以......