12 2018 档案
摘要:主从同步(HA 高可用) 主从同步原理: 为了保证系统的高可用,消息到达主服务器后,需要将消息同步到从服务器。如果主服务器宕机,消费者可用从从服务器拉取消息。 大体步骤: 1、主服务器启动,监听从服务器的链接。 2、从服务器主动链接主服务器,建立TCP相关链接。 3、从服务器主动向主服务器发送待拉取
阅读全文
摘要:消息消费 难点:如何保证消息只消费一次? 顺序消费? 消费模式: 1、单一消费模式:一条消息,仅被一个消费者进行消费。 如何进行负载?负载算法有 a、平均分配。b、平均轮询分配。c、一致性hash(不推荐)。d、根据配置,为消费者指定消息队列。e、根据broker进行分配,消费者固定消费指定的Bro
阅读全文
摘要:消息存储 主要的存储文件: 1、消息文件(commitLog) 2、消息消费队列文件(consumeQueue) 3、Hash索引文件(IndexFile) 4、检测点文件(checkpoint) 5、关闭异常文件(abort) 文件刷盘机制 RocketMQ的存储与读写是基于JDK NIO的内存映
阅读全文
摘要:消息发送基本流程: 1、消息验证 验证主题(topic),消息体不能为空和大小不能超过4M。 2、路由查找 a、查看缓存,是否有topic的路由信息。 b、如果没有则到NameServer中获取路由信息,如果缓存内能找到则获取相应路由信息。 c、从缓存中获取上一次异常的Broker节点信息,跟获取到
阅读全文
摘要:NameServer 路由管理,服务注册,服务发现。(类比为soa框架中的zookeeper) 一、路由管理 1、路由注册,由 Broker 向 NameServer 发送心跳,NameServer 记录Broker服务。 2、路由删除, a、NameServer 定时检测 Broker 状态,将判
阅读全文
摘要:Rocket 火箭 MQ的作用:同步转异步(异步解耦)。 难点:如何确保消息一定被消费,而且仅消费一次。 1、消息架构:生产者、服务器、消费者、路由发现。 2、消息顺序:严格按照消息到达服务器的顺序进行消费。 3、消息过滤: a、服务端过滤 b、消费端过滤。 缺点:无用的消息也传输到消费端。优点:可
阅读全文
摘要:JVM参数格式(三种): -XX:+<option> 开启option选项,+ 开启 -XX:-<option> 关闭option选项,- 关闭 -XX:<option>=<value> 表示将option选项赋值为value 打印加载的类信息: -XX:+TraceClassLoading 当发生
阅读全文
摘要:SpringBoot 异常处理 一、自定义错误页面 创建 error.html 页面,当发生错误时,将自动跳转到该页面。内部实现类为:BasicErrorController 适用范围:所有的异常都指向 error.html 页面,不能根据对应的异常跳转到对应的页面。 二、@ExceptionHan
阅读全文
摘要:Maven 配置文件 provider 生产者代码 Consumer 消费者 Constants 常量类
阅读全文
摘要:JMS Java Message Service (Java 消息服务), 类似于JDBC的作用。 1、Destination 目的地 2、Provider 生产者 3、Comsumer 消费者 4、消息类型 A、Queue 队列,只消费一次。(P2P 点对点模型) 消息确认机制(自动确认,手动确认
阅读全文
摘要:选举概述: 1、启动时期的选举 所有的服务器状态为 LOOKING。 1.1、每个Server 会投出一票(投票规则为:SID、ZXID ,即 服务器ID 和 最大事务ID)。 1.2、处理选票 (A、优先选ZXID最大的。B、再优先SID最大的),根据处理结果再投一次。 1.3、统计投票。 1.4
阅读全文
摘要:ZNode zk 中的每一个数据节点称为 ZNode ,所有的 ZNode 按层次化结构进行组织,形成一棵树(与Linux文件系统相似)。节点可以写入数据,也可以在节点下面创建子节点。 节点类型: 1、持久节点 (需要主动清除) 2、持久有序节点 3、临时节点(与会话绑定) 临时节点只能作为叶子节点
阅读全文
摘要:ZooKeeper 的 watcher 机制主要包括客户端线程、客户端 WatchManager 和 ZooKeeper 服务器三部分。 工作方式:客户端在向 zk 服务器注册 Watcher 的同时,会将 Watcher 对象存储在客户端的 WatchManager 中,当 zk 服务器端触发 W
阅读全文
摘要:一、发布/订阅 配置文件的集中管理。 问题:当分布式系统变多后,每个系统保存相应的配置文件,会造成同个文件有多份,修改起来非常麻烦。 解决方法:使用zk的发布/订阅功能,配合Watcher机制,在应用启动的时候,从注册中心获取配置文件,并监听配置文件的改动。当配置文件修改时,相应的系统接收到watc
阅读全文
摘要:ZAB (Zookeeper Atomic Broadcast ) zookeeper原子消息广播协议 保证:分布式数据一致性 所有事务请求必须由一个全局唯一的服务器来协调处理,这样的服务器被称为Leader服务器,而余下的其它服务器则称为Follower服务器。Leader 服务器负责将一个客户端
阅读全文
摘要:现在通过一则故事来学习paxos的算法的流程(2阶段提交),有2个Client(老板,老板之间是竞争关系)和3个Acceptor(政府官员): 这个过程保证了在某一时刻,某一个proposer的议题会形成一个多数派进行初步支持; 华丽的分割线,第一阶段结束 5. 现在进入第二阶段提交,现在propo
阅读全文
摘要:Zuul 通过服务网关,进行路由,权限控制等过滤操作。 待补充 ……
阅读全文
摘要:Netflix Hystrix what 为了保证服务高可用,单个服务通常会集群部署。由于网络原因或者自身原因(机器性能不佳)。服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源就会被消耗完,导致服务瘫痪。由于服务与服
阅读全文
摘要:Eureka 当注册中心使用。 注: 1、当仅有一台Eureka时,不需要向别的节点注册。 2、集群的时候,需要相互注册。 工作方式: 前提: Eureka //注册中心 provide1 //服务提供者1 provide2 //服务提供者2 consumer //消费者 由Ribbon组件进行负载
阅读全文
摘要:用途: 配置文件的集中处理。 为什么需要配置文件的集中处理? 每个微服务都对应相应的配置文件,如果将配置文件与服务绑定,那么就不利于修改。同一个服务可能部署了N个,如果修改的话要改N遍,收工量大额且容易错。 进行了集中管理后,就可以避免上述的问题。 由于配置文件读多写少,因此需要保证 config
阅读全文
摘要:组件及其作用 1、spring cloud config 集中式管理配置文件 2、consul / eureka 服务发现 3、Hystrix 、Ribbon Hysitrix 提供客户端弹性服务,如断路器模式和舱壁模式。 Ribbon 负载均衡 4、Zuul 提供路由功能,如安全授权验证、内容过滤
阅读全文
摘要:spring boot 的功能: 1、自动配置 2、起步依赖 3、Actuator 自定义配置: 1、覆盖配置:直接覆盖,springboot会自动选择覆盖后的实例。 2、通过属性文件配置 优先级:1、命令行参数 2、JVM系统属性 3、操作系统环境变量 4、application.properti
阅读全文
摘要:锁类型 可重入锁:在执行对象中所有同步方法不用再次获得锁 可中断锁:在等待获取锁过程中可中断 公平锁: 按等待获取锁的线程的等待时间进行获取,等待时间长的具有优先获取锁权利 读写锁:对资源读取和写入的时候拆分为2部分处理,读的时候可以多线程一起读,写的时候必须同步地写 可重入锁:在执行对象中所有同步
阅读全文
摘要:工作中支付系统的架构与实现 支付系统的核心流程:支付流程、对账流程、结算流程 支付图 每个第三方支付公司,与多个银行对接,并在每个银行中开通相应的备付金号。 商户在第三方支付公司注册商户号。 用户与第三方支付公司的交易: 付款:将用户卡中的钱,增加到第三方支付公司对应银行的备付金账号中。 退款:扣除
阅读全文

浙公网安备 33010602011771号