随笔分类 -  架构师

最强架构师
摘要:设计理念: 限流:鉴于只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务后端。 削峰:对于秒杀系统瞬时会有大量用户涌入,所以在抢购一开始会有很高的瞬间峰值。高峰值流量是压垮系统很重要的原因,所以如何把瞬间的高流量变成一段时间平稳的流量也是设计秒杀系统很重要的思路。实现削峰的常 阅读全文
posted @ 2024-09-09 18:25 Mr.peter 阅读(246) 评论(0) 推荐(0) 编辑
摘要:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。 AMQP协议 核心概念 server:又称broker,接 阅读全文
posted @ 2022-10-19 14:37 Mr.peter 阅读(58) 评论(0) 推荐(0) 编辑
摘要:一、中间件简介 我国企业从20世纪80年代开始就逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务和市场需求的不断变化,—个企业可能同时运行着多个不同的业务系统,这些系统可能基于不同的操作系统、不同的数据库、异构的网络环境。现在的问题是,如何把这些信息系统结合成一个有机地协同工作的整体,真正实 阅读全文
posted @ 2022-10-18 18:03 Mr.peter 阅读(188) 评论(0) 推荐(0) 编辑
摘要:分布式系统与架构 阅读全文
posted @ 2022-10-18 17:55 Mr.peter 阅读(11) 评论(0) 推荐(0) 编辑
摘要:一、简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有 阅读全文
posted @ 2021-10-02 09:20 Mr.peter 阅读(452) 评论(0) 推荐(0) 编辑
摘要:简单概括: 集群:多个人在一起做同样的事 。 分布式 :多个人在一起做不同的事 。 负载均衡:决定将任务以某种规则分给谁做。 详细分析 (1)分布式是指多个系统协同合作完成一个特定任务的系统。 分布式是解决中心化管理的问题,把所有的任务叠加到一个节点处理,太慢了。 所以把一个大的问题拆分为多个小的问 阅读全文
posted @ 2021-01-07 18:01 Mr.peter 阅读(688) 评论(0) 推荐(0) 编辑
摘要:微服务模块划分原则: 原则1:传统的一个大业务系统划分微服务模块的时候,尽量是划分到6到8个模块比较合适,当你本身的IT成熟度达到一定水平后你可以划分的更加细点。同时在微服务模块划分的时候一定要考虑数据库本身的划分,即底层的数据库也是划分开的。 原则2:要分析单个业务系统内部的流程,然后分解到具体的 阅读全文
posted @ 2020-11-17 17:00 Mr.peter 阅读(2563) 评论(0) 推荐(0) 编辑
摘要:序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序 阅读全文
posted @ 2020-11-16 23:16 Mr.peter 阅读(141) 评论(0) 推荐(0) 编辑
摘要:2 容器管理 docker容器技术指Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs) containers的中文解释是集装箱。 Docker则实现了一种应用程序级别的隔离,它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换 到操作程序运 阅读全文
posted @ 2020-11-08 23:16 Mr.peter 阅读(463) 评论(0) 推荐(0) 编辑
摘要:docker是什么 docker是什么? docker的中文解释是码头工人。 官方解释: Docker是一个开源的容器引擎,它基于LCX容器技术,使用Go语言开发。 源代码托管在Github上,并遵从Apache2.0协议。 Docker采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植 阅读全文
posted @ 2020-11-08 22:30 Mr.peter 阅读(244) 评论(0) 推荐(0) 编辑
摘要:1.Golang 2.golang适合做什么 3.golang的缺点有哪些? 4.golang的优势有哪些? 5.Golang Gin(上) 6.Golang Gin(中) 7.Golang Gin(下) 8.golang中channel的用法 9.golang cpu性能分析 10.golang 阅读全文
posted @ 2020-11-08 16:31 Mr.peter 阅读(504) 评论(0) 推荐(0) 编辑
摘要:当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。 介绍 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决:一个对象状态 阅读全文
posted @ 2020-11-05 17:24 Mr.peter 阅读(148) 评论(0) 推荐(0) 编辑
摘要:代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 组成 抽象角色:通过接口或抽象类声明真实角色实现的业务方法。 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方 阅读全文
posted @ 2020-11-05 16:39 Mr.peter 阅读(101) 评论(0) 推荐(0) 编辑
摘要:设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 工厂模式(Factory Pattern)是 Java 中 阅读全文
posted @ 2020-11-03 17:03 Mr.peter 阅读(213) 评论(0) 推荐(0) 编辑
摘要:RPC 远程过程调用 两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。 首先,要解决通讯的问题,主要是通过在客户端和服务器之间建立TCP连接,远程过程调用的所有交换的数据都在这个连接 阅读全文
posted @ 2020-08-25 19:17 Mr.peter 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-08-25 19:12 Mr.peter 阅读(737) 评论(0) 推荐(0) 编辑
摘要:什么是消息队列 消息队列(Message Queue)是一种进程间通信或同一进程的不同线程间的通信方式。 什么时候需要消息队列 异步处理:例如短信通知、终端状态推送、App推送、用户注册等 有些业务不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想 阅读全文
posted @ 2020-07-03 16:06 Mr.peter 阅读(1933) 评论(0) 推荐(0) 编辑
摘要:微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnost 阅读全文
posted @ 2019-07-19 09:30 Mr.peter 阅读(376) 评论(0) 推荐(0) 编辑
摘要:1:观察者模式(Observer),当一个对象状态发生变化时,依赖它的对象全部会收到通知,并自动更新。 2:场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理的逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事 阅读全文
posted @ 2019-02-27 11:51 Mr.peter 阅读(162) 评论(0) 推荐(0) 编辑
摘要:复习要点 本文主要围绕如下几点进行阐述: 为什么使用消息队列? 使用消息队列有什么缺点? 消息队列如何选型? 如何保证消息队列是高可用的? 如何保证消息不被重复消费? 如何保证消费的可靠性传输? 如何保证消息的顺序性? 下面围绕以上七点进行阐述。需要说明一下,本文不是《消息队列从入门到精通》这种教程 阅读全文
posted @ 2019-01-15 17:19 Mr.peter 阅读(31656) 评论(1) 推荐(8) 编辑