
系统架构
文章平均质量分 92
闻道☞
学习是最好的修行
展开
-
Redisson分布式锁源码解读
加锁 & 解锁流程串起来上面结合 Lua 脚本和源码,分别分析了加锁流程和解锁流程。下面升级下挑战难度,模拟下多个线程争抢锁会是怎样的流程。示意图如下,比较关键的三处已用红色字体标注。概括下整个流程1、线程 A 和线程 B 两个线程同时争抢锁。线程 A 很幸运,最先抢到了锁。线程 B 在获取锁失败后,并未放弃希望,而是主动订阅了解锁消息,然后再尝试获取锁,顺便看看没有抢到的这把锁还有多久就过期,线程 B 就按需阻塞等锁释放。原创 2023-07-20 18:41:00 · 673 阅读 · 0 评论 -
互联网大厂高并发抢购系统架构设计
背景大家好,这篇文章给大家介绍一个非常经典的去大厂面试经常被问的一个问题,就是瞬时高并发抢购问题,通常来说,大厂开发的系统经常会遇到一些类似电商秒杀抢购、景点门票高并发抢购、特殊商品(比如口罩)高并发抢购、类似12306的高并发抢票类的系统。所以经常会问这一类高并发抢购类的问题,这个时候,小伙伴们如果不能有理有据的给出一整套高并发场景下系统可能遇到的各种问题,以及你对应的架构设计和解决方案,那基本面试可能就会凉掉。所以今天就手把手带着大家来分析一下,假设在特殊物品库存紧缺的场景下,1分钟内要抢购10转载 2022-03-27 11:27:13 · 324 阅读 · 0 评论 -
API 接口应该如何设计?如何保证安全?如何签名?如何防重?
说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享.token 简介Token:访问令牌access token, 用于接口中,用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请一个转载 2020-06-16 17:17:39 · 500 阅读 · 1 评论 -
客户端负载均衡与服务端负载均衡
原文:https://segmentfault.com/a/1190000011081111通过Nginx负载均衡服务器发送到不同的上游服务器去处理,这种负载均衡就是一种典型的服务端负载均衡,那么客户端负载均衡是什么?它和服务端负载均衡有什么区别?服务端负载均衡负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,但是一般情况下我们所说的负载均衡通常都是指服务端转载 2017-11-30 15:01:22 · 6702 阅读 · 0 评论 -
Elastic-Job——分布式定时任务框架
原文:https://www.cnblogs.com/wyb628/p/7682580.html摘要: Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架。去掉了和dd-job中的监控和ddframe接入规范部分。该项目基于成熟的开源产品Quartz和Zookeeper及其客户端Curator进行二次开发。 ddframe其他模块也有可独立原创 2017-11-30 14:56:07 · 8281 阅读 · 0 评论 -
Netty基础入门(二)
原文:http://blog.youkuaiyun.com/haoyuyang/article/details/53243785参考:http://wiki.jikexueyuan.com/project/netty-4-user-guide/1.为什么选择Netty上一篇文章我们已经了解了Socket通信(IO/NIO/AIO)编程,对于通信模型已经有了一个基本的认识。其实上一篇文章中,我们学习的仅仅是一个...转载 2017-01-13 10:50:08 · 1516 阅读 · 0 评论 -
分布式唯一ID极简教程
原文:http://mp.weixin.qq.com/s/cqIK5Bv1U0mT97C7EOxmnA分布式唯一ID极简教程一,题记所有的业务系统,都有生成ID的需求,如订单id,商品id,文章ID等。这个ID会是数据库中的唯一主键,在它上面会建立聚集索引!ID生成的核心需求有两点:全局唯一趋势有序二,为什么要全局唯一?著名的例子就是身份证号码,身份证号码确实是对人唯一的,然而一个人是可以办理多个...转载 2018-03-04 20:30:07 · 349 阅读 · 0 评论 -
Java日志终极指南
Java主流日志工具库:https://www.cnblogs.com/mingyue1818/p/5978424.htmlJava日志终极指南:http://www.importnew.com/16331.html转载 2018-08-27 15:03:32 · 279 阅读 · 0 评论 -
ZooKeeper集群的安装、配置、高可用测试 (六)
ZooKeeper集群的安装、配置、高可用测试Dubbo注册中心集群Zookeeper-3.4.6 Dubbo建议使用Zookeeper作为服务的注册中心。Zookeeper集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的。正是基于这个特性,要将ZK集群的节点数量要为奇数(2n+1:如3、5、7个节点)较为合适。 ZooKeeper与Dubbo服务集群架构图...原创 2017-05-07 11:26:30 · 617 阅读 · 0 评论 -
负载均衡(五)
官网用户指南:http://dubbo.io/User+Guide-zh.htm负载均衡(+) (#)在集群负载均衡时,Dubbo提供了多种均衡策略,缺省为random随机调用。可以自行扩展负载均衡策略,参见:负载均衡扩展Random LoadBalance随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越原创 2017-05-07 10:21:13 · 662 阅读 · 0 评论 -
Dubbo服务集群容错配置(四)
1.Dubbo服务集群部署以简易版支付系统中的部分服务为例:用户服务:pay-service-user 交易服务:pay-service-trade2.Dubbo服务集群容错配置--集群容错模式:标签:、、 、属性:cluster 类型:string是否必填:可选缺省值:failover作用:性能调优集群方式:可选:failover/failfast/failsaf原创 2017-05-07 09:21:13 · 7079 阅读 · 0 评论 -
spring + ehcache + redis两级缓存实战篇(2)
原文 http://blog.youkuaiyun.com/liaoyulin0609/article/details/51919789在上篇《spring + ehcache + redis两级缓存实战篇(1)》中,最后遗留了两个问题给大家思考:第一个是访问10次本地EhCache 强制访问一次Redis使得激活数据或更新数据,这样会不会更好一些呢?第二个是使用spring@Cac...转载 2017-01-05 09:53:01 · 1011 阅读 · 0 评论 -
分布式与集群的区别
分布式:一个业务分拆多个子业务,部署在不同的服务器上,每台服务器做的是不同的事。集群:同一个业务,部署在多个服务器上,每台做相同的事。集群是个物理形态,分布式是个工作方式。集群一般是物理集中、统一管理的,而分布式系统则不强调这一点。所以,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统;分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器...转载 2018-07-15 09:45:35 · 350 阅读 · 0 评论 -
RPC
http://user.qzone.qq.com/2223597272/blog/1470490674原创 2016-08-06 21:49:09 · 287 阅读 · 0 评论 -
企业级应用架构解析
企业应用的特点多环境多系统的交互海量数据、高并发、高TPS安全等级高自动化集群管理企业级应用架构解析— 架构架构的原则CAP原则(一致性、可用性、分区容错性)复杂的事情简单化架构的目标高速缓存并行计算负载均衡数据备份异地容灾业务分离原创 2016-07-03 22:42:37 · 972 阅读 · 0 评论 -
Dubbo入门
http://user.qzone.qq.com/2223597272/blog/1456372126转载 2016-06-29 16:21:45 · 299 阅读 · 0 评论 -
分布式与集群的区别
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Re原创 2016-06-29 10:39:21 · 291 阅读 · 0 评论 -
dubbo服务划分和接口设计原则(五)
1.服务划分服务化的目标:将系统中独立的业务模块抽取出来,按业务的独立性进行垂直划分,抽象出基础服务层。服务化的目标:服务化的目标:基础服务为上游业务的功能实现提供支撑,基础服务应用本身无状态,可随着系统的负荷灵活伸缩来提供服务能力。服务子系统的数量把控过多:可能划分过细,破坏业务子系统的独立性(如:支付订单、退款订单,用户、账户)部署维护工作量大,原创 2017-05-07 09:45:46 · 9156 阅读 · 0 评论 -
Spring+ehcache+redis两级缓存--缓存实战篇(1)
本文主要介绍为什么要构建ehcache+Redis两级缓存?以及在实战中如何实现?思考如何配置缓存策略更合适?这样的方案可能遗留什么问题?JUST DO IT!Go!问题描述场景:我们的应用系统是分布式集群的,可横向扩展的。应用中某个接口操作满足以下一个或多个条件:1. 接口运行复杂代价大,2. 接口返回数据量大,3. 接口的数据基本不会更改,4. 接口数据一致性要求不高...转载 2017-01-05 09:49:22 · 1805 阅读 · 0 评论