it_worker365

   ::  ::  ::  ::  :: 管理

随笔分类 -  大型网站

1

摘要:时钟轮 TimingWheel ~ 延迟队列 ~ 将每个定时任务放到对应的时间槽位上,这样可以减少扫描任务时对其它时间槽位定时任务的额外遍历操作 不好的实践:每个请求对应一个线程sleep or 一个线程定时扫描所有 用在哪儿 ~ 调用端请求超时处理,调用端与服务端超时,定时心跳等 ~ kafka中 阅读全文
posted @ 2021-02-22 17:07 it_worker365 阅读(43) 评论(0) 推荐(0)

摘要:https://github.com/alibaba/Sentinel/wiki/How-it-works 1. 配置各种规则,然后通过aspectj解析注解然后看是否可以通过各种校验 @Aspect public class SentinelResourceAspect extends Abstr 阅读全文
posted @ 2020-02-23 18:03 it_worker365 阅读(416) 评论(0) 推荐(0)

摘要:https://cloud.tencent.com/developer/article/1452017 https://github.com/alibaba/Sentinel/wiki/How-to-Use https://github.com/alibaba/Sentinel/wiki/FAQ 集 阅读全文
posted @ 2020-02-23 15:07 it_worker365 阅读(400) 评论(0) 推荐(0)

摘要:https://segmentfault.com/a/1190000010237714 http://jm.taobao.org/2018/01/22/post20180122/ 对系统的访问速率,资源占用,消费者并发连接数,并行访问数 进行限制,在请求量超过阈值时,通过拒绝等方式,防止服务接口的雪 阅读全文
posted @ 2019-04-22 10:55 it_worker365 阅读(251) 评论(0) 推荐(0)

摘要:分布式系统中生成全局唯一且趋势递增ID UUID - 太长,无序,数据库插入分裂性能不行 利用数据库自增序列,等步长生成 - 依赖数据库 SnowFlake:使用见下图 抄代码 https://www.cnblogs.com/relucent/p/4955340.html /** * Twitter 阅读全文
posted @ 2019-01-31 16:15 it_worker365 阅读(314) 评论(0) 推荐(0)

摘要:Topic有多个message queue,消息可以并行的向各个message queue发送,消费者也可以并行的从多个message queue读取消息并消费 clustering模式消费一个topic里的消息内容是哦,可以启动多个消费者并行消费,每个消费者只消费Topic里消息的一部分,以此提高 阅读全文
posted @ 2018-12-19 09:29 it_worker365 阅读(712) 评论(0) 推荐(0)

摘要:重试定时任务,通过外部调度实现 package org.mengyun.tcctransaction.spring.recover; import org.mengyun.tcctransaction.SystemException; import org.mengyun.tcctransactio 阅读全文
posted @ 2018-12-05 17:29 it_worker365 阅读(212) 评论(0) 推荐(0)

摘要:TCC,基于业务层面的事物定义,粒度完全由业务自己控制,本质上还是补偿的思路,它把事物运行过程分为try-confirm-cancel阶段,每个阶段逻辑由业务代码控制 业务活动管理器控制业务活动的一致性,它登记业务活动中的操作,并在业务活动提交时确认所有的TCC型操作的confirm操作,在业务活动 阅读全文
posted @ 2018-12-05 16:41 it_worker365 阅读(309) 评论(0) 推荐(0)

摘要:http://www.iocoder.cn/categories/TCC-Transaction/ https://github.com/changmingxie/tcc-transaction 细读tcc,理解事物实现的本质 顾名思义,TCC - Try(完成所有业务检查,预留必须业务资源) ,C 阅读全文
posted @ 2018-12-05 11:02 it_worker365 阅读(1141) 评论(0) 推荐(0)

摘要:Netty设计特点: 1. io线程模型 使用reactor模式,同步非阻塞。这决定了可以用最少的资源做更多的事。 2. 内存零拷贝 使用直接缓存 3. 内存池设计 申请的内存可以重用,主要指直接内存。 内部实现是用一颗二叉查找树管理内存分配情况。 4. 串形化处理socket读写,避免锁,即一个指 阅读全文
posted @ 2018-07-31 15:17 it_worker365 阅读(159) 评论(0) 推荐(0)

摘要:唯一 && 趋势有序 数据库auto_increment,多个写库时,每个写库不同的初始值和相同的步长(A(0,2)B(1,2)) 缺点:非绝对递增,写库压力大 DB只保存序列最大值,由ID生成器批量派发,防止单点,增加一个影子服务,vip + keepalive 缺点:可能出现空洞不连续,无法水平 阅读全文
posted @ 2017-05-31 18:30 it_worker365 阅读(227) 评论(0) 推荐(0)

摘要:读多写少,优化性能 application -> cache(快) -> DB(慢) 缓存命中率 = 命中的 / 总的 写入操作时,更新缓存(写入DB && 写入缓存 计算简单的时候,直接更新,增加一次命中率)/淘汰缓存(写 入DB,只淘汰数据,计算复杂时,比更新操作简单,但会增加一次不命中) 处理 阅读全文
posted @ 2017-05-31 17:57 it_worker365 阅读(493) 评论(0) 推荐(0)

摘要:数据写入方式 1. update-in-place原地更新 2. append-only btree/copy on write tree顺序文件末尾追加 数据被按照特定方式放置,提升读性能,但写性能下降,对b+树和hash更新时需要随机读写: 1. 二分查找,将文件数据有序保存,使用二分查找来完成 阅读全文
posted @ 2017-05-11 13:44 it_worker365 阅读(2658) 评论(0) 推荐(0)

摘要:1. 高并发缓存/共享session: UserInfo getUserInfo (long id) {} 取: userRedisKey = "user:info:" + id; value = redis.get(userRedisKey ); if (value != null) { user 阅读全文
posted @ 2017-05-09 11:03 it_worker365 阅读(3291) 评论(0) 推荐(0)

摘要:A - 1 > B + 1 同一机器,锁 不同机器: 两阶段提交(性能,网络开销,锁--不行) Prepare(对所有映相关数据加锁)(A - 1) at 机器A->prepare (B + 1) at 机器b ->commit(A) ->commit(B) 因为A必须要保证不为负值,但是B只是增加 阅读全文
posted @ 2017-05-05 17:10 it_worker365 阅读(161) 评论(0) 推荐(0)

摘要:持久化存储是发送者发送消息后,消息中心首先将消息存储到本地文件/DB(activemq_msgs(存储消息),activemq_acks(订阅关系)和activemq_lock(集群环境下用)),然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试,消息中心启动后首先检查指定的存 阅读全文
posted @ 2017-05-05 17:07 it_worker365 阅读(300) 评论(0) 推荐(0)

摘要:DB分布式-两种方式 1. JDBC扩展 sharding-jdbc: 直接封装JDBC,代码迁移成本低,适用于任何连接池及ORM框架,JAR包提供服务,未使用中间层,不用额外部署,DBA无需改变原有运维方式,使用DRUID sql解析器,速度快。 分布策略灵活,SQL解析功能完善,能支持分布式生成 阅读全文
posted @ 2017-04-10 15:44 it_worker365 阅读(2160) 评论(0) 推荐(0)

摘要:JDK DelayQueue 内部一个PriorityQueue保存所有的delay对象,堆顶保存了快到期的任务 消息相关网站: 1. 客户端轮询服务器获取消息 2. comet长连接推送消息,实时性,客户端服务器端压力小(如果管理长连接) JS带着用户信息请求长连接,服务器用list/queue保 阅读全文
posted @ 2017-04-10 13:34 it_worker365 阅读(343) 评论(0) 推荐(0)

摘要:Hadoop1 ~ Hadoop2 解决的问题: 1. JobTracker 兼具资源管理和作业控制的任务 2. master 单点问题 3. 资源分配mapslot/reduceslot不可共享,资源划分力度粗 4. 无法支持多种计算框架 为什么需要一个弹性计算框架? 因为为了觉得各种数据密集型计 阅读全文
posted @ 2015-06-22 22:32 it_worker365 阅读(152) 评论(0) 推荐(0)

摘要:PAXOS学习记录 前提: 信息准确无篡改,通信环境可信 目的: 解决多结点间一致性问题(集群中一个修改或者申请成为主结点的提议) 主要角色: Proposer :提出议案(同时存在一个或者多个,他们各自发出提案) Acceptor: 收到议案后选择是否接受 Learner: 酱油 提案: Valu 阅读全文
posted @ 2015-06-16 23:32 it_worker365 阅读(563) 评论(0) 推荐(0)

1