随笔分类 -  分布式

摘要:##Netty 原理 Netty 是一个高性能、异步事件驱动的 NIO 框架,基于 JAVA NIO 提供的 API 实现。它提供了对TCP、UDP 和文件传输的支持,作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-Listener 机制,用户可以方便 阅读全文
posted @ 2020-07-02 17:46 是谁扭曲了时空 阅读(310) 评论(0) 推荐(0) 编辑
摘要:业务场景 公司有个借贷的项目,具体业务类似于阿里的蚂蚁借呗,用户在平台上借款,然后规定一个到期时间,在该时间内用户需将借款还清并收取一定的手续费,如果规定时间逾期未还上,则会产生滞纳金。 用户发起借款因此会产生一笔借款订单,用户可通过支付宝或在系统中绑定银行卡到期自动扣款等方式进行还款。还款流程都走 阅读全文
posted @ 2020-06-30 17:21 是谁扭曲了时空 阅读(372) 评论(0) 推荐(0) 编辑
摘要:业务场景 近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多技术的支持。例如系统访问层的负载均衡,缓存层的多实例主从复制备份,数据层的分库分表等。 我们以负载均衡为例,常见的负 阅读全文
posted @ 2020-06-30 16:43 是谁扭曲了时空 阅读(256) 评论(0) 推荐(0) 编辑
摘要:什么是脑裂 脑裂(split\ brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤”。 脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群,而这些集 阅读全文
posted @ 2020-01-02 17:24 是谁扭曲了时空 阅读(291) 评论(0) 推荐(1) 编辑
摘要:1.1 什么是RPC RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP/IP或UDP,为通信程序之间携带信息数据。RPC将原来的本地调用转 阅读全文
posted @ 2019-10-11 10:02 是谁扭曲了时空 阅读(304) 评论(0) 推荐(0) 编辑
摘要:1. 前言 抽奖是一个典型的高并发场景应用,平时流量不多,但遇到大促活动,流量就会暴增,今年的周年庆期间的日均 UV 就超过百万。在过去的一年里,负责过这个项目的多次重构工作,期间各种踩坑无数,就以此文当做总结,来聊聊我们是如何架构这个高并发系统吧。 2. 整体设计详解 在我看来,能提高服务器应对并 阅读全文
posted @ 2019-07-11 10:16 是谁扭曲了时空 阅读(1351) 评论(1) 推荐(0) 编辑
摘要:1 写在前面 1.1 名词解释 consumer表示服务调用方 provider标示服务提供方,dubbo里面一般就这么讲。 下面的A调用B服务,一般是泛指调用B服务里面的一个接口。 1.2 拓扑图 大写字母表示不同的服务,后面的序号表示同一个服务部署在不同机器的实例。 2 从微观角度思考 2.1 阅读全文
posted @ 2019-07-11 09:50 是谁扭曲了时空 阅读(299) 评论(0) 推荐(0) 编辑
摘要:一、分布式算法 在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法. 典型的 阅读全文
posted @ 2019-07-09 15:35 是谁扭曲了时空 阅读(436) 评论(0) 推荐(0) 编辑
摘要:下面描述使用zookeeper实现分布式锁的算法流程,假设锁空间的根节点为/lock: 步骤1中创建的临时节点能够保证在故障的情况下锁也能被释放,考虑这么个场景:假如客户端a当前创建的子节点为序号最小的节点,获得锁之后客户端所在机器宕机了,客户端没有主动删除子节点;如果创建的是永久的节点,那么这个锁 阅读全文
posted @ 2019-07-01 10:39 是谁扭曲了时空 阅读(362) 评论(0) 推荐(0) 编辑
摘要:普通实现 说道Redis分布式锁大部分人都会想到: 1、setnx+lua, 2、setkey value px milliseconds nx。 这种实现方式有3大要点(也是面试概率非常高的地方): 事实上这类琐最大的缺点就是它加锁时只作用在一个Redis节点上,即使Redis通过sentinel 阅读全文
posted @ 2019-06-26 15:50 是谁扭曲了时空 阅读(867) 评论(0) 推荐(0) 编辑
摘要:关于Nacos已经展开了四篇入门文章: 初探Nacos(一)-- 单机模式启动 初探Nacos(二)-- SpringCloud使用Nacos的服务注册与发现 初探Nacos(三)-- SpringBoot下整合Dubbo和Nacos 初探Nacos(四)-- SpringBoot下使用Nacos作 阅读全文
posted @ 2019-06-17 14:22 是谁扭曲了时空 阅读(2355) 评论(0) 推荐(0) 编辑
摘要:上面已提到消费端感知topic服务器有新消息叫推拉模式 左图采用短连接,server端不能获取clinet连接资源,无法主动推给client。所以要求client定时过来拿数据 右图采用长连接,server端可以获取clinet连接资源,有消息过来就能主动推给client 短连接应用受环境因素限制, 阅读全文
posted @ 2019-06-16 11:42 是谁扭曲了时空 阅读(913) 评论(0) 推荐(0) 编辑
摘要:TCP/IP:网络宽带,传输数据的基础协议,所有得数据要在网络上传输都是基于TCP/IP协议(或UDP),才能送达到指定的目的地(IP,服务器硬件地址)。 SOCKET:SOCKET只是面对编程人员的一个基于TCP/IP协议的编程接口,通过SOCKET,编程人员可以控制如何让数据在客户端和服务端进行 阅读全文
posted @ 2019-06-04 17:51 是谁扭曲了时空 阅读(418) 评论(0) 推荐(0) 编辑
摘要:有这样一个需求,当调用某个方法抛出异常,比如通过 HttpClient 调用远程接口时由于网络原因报 TimeOut 异常;或者所请求的接口返回类似于“处理中”这样的信息,需要重复去查结果时,我们希望当前方法能够在这种特定的情况下,重复执行,如果达到了我们的期望,则不重复执行。而且,我们希望能够控制 阅读全文
posted @ 2019-04-25 23:32 是谁扭曲了时空 阅读(1295) 评论(0) 推荐(0) 编辑
摘要:负载均衡算法可以分为两类:静态负载均衡算法,基于服务器的容量,就是高配置的服务器比低配置的服务器分配更多的请求;动态负载均衡算法根据服务器的状况,比如通过监控可以得到平均响应时间,或者CPU占用率,内存占用率按照某种方式进行计算,作为权重值 静态负载均衡算法 随机(Random):利用随机数生成算法 阅读全文
posted @ 2019-04-22 23:43 是谁扭曲了时空 阅读(797) 评论(0) 推荐(0) 编辑
摘要:RocketMQ为4.3.0版本(我这种写法4.2.0不行) 如果你之前用的其他版本,需要去修改下系统的环境变量 maven工程用到的jar包 <dependencies> <!-- RocketMQ --> <dependency> <groupId>org.apache.rocketmq</gr 阅读全文
posted @ 2019-04-03 11:15 是谁扭曲了时空 阅读(922) 评论(0) 推荐(0) 编辑
摘要:ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的 阅读全文
posted @ 2019-03-28 12:40 是谁扭曲了时空 阅读(316) 评论(0) 推荐(0) 编辑
摘要:前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记 阅读全文
posted @ 2019-03-25 00:59 是谁扭曲了时空 阅读(242) 评论(0) 推荐(0) 编辑
摘要:FastDFS FastDFS的特性 FastDFS架构图 系统架构-上传文件流程图 系统架构-下载文件流程图 Fast同步机制 FastDFS用户请求过程 FastDFS核心组件 FastDFS运行机制 FastDFS配置修改 FastDFS常用命令 FastDFS实现nginx代理 转自:htt 阅读全文
posted @ 2018-10-30 17:37 是谁扭曲了时空 阅读(3734) 评论(0) 推荐(3) 编辑
摘要:什么是事务 事务是指由一系列数据库操作组成的一个完整的逻辑过程,这个过程中的所有操作要么都成功,要么都不成功。比如:常见的例子就是银行转账的例子,一次转账操作会包含多个数据库操作,而这些数据库操作需要放到一个事务当中,保证其要么都成功,要么都不成功。 什么是ACID ACID是事务的四个特性,指的是 阅读全文
posted @ 2018-10-30 10:54 是谁扭曲了时空 阅读(589) 评论(0) 推荐(0) 编辑