分布式
文章平均质量分 76
silk_bar
这个作者很懒,什么都没留下…
展开
-
发奖控制数量的几种方式(锁,数据库锁,分布式锁,无锁)
在我们日常编码过程中,做营销类系统时,一定会遇到发奖、秒杀等业务,在这些业务中,奖品数量的控制尤为重要,如果没控制好,多发了奖品,会对运营成本造成超支,或者影响用户体验。本篇就介绍几种数量控制方案,供大家讨论。一:通过锁控制数量最简单直白的方式就是通过java自带的锁来控制数量的发放,伪代码如下: synchronized(this) { int coun...原创 2018-04-19 22:37:16 · 898 阅读 · 0 评论 -
【RPC】一步一步实现基于netty+zookeeper的RPC框架(一)
随着分布式架构运用的越来越多,RPC框架成为了我们不得不掌握的知识,这里一步一步来手写一个简单的RPC框架,以博文作为记录及自我监督。首先是技术选型,这边我选用的是当前比较流行的Netty+Zookeeper来实现,通过zookeeper的特性来实现服务注册与发现,通信则使用netty框架。这里贴出github代码地址,想直接看代码的可以直接下载运行:https://github.com/...原创 2019-09-03 20:46:30 · 525 阅读 · 0 评论 -
【RPC】一步一步实现基于netty+zookeeper的RPC框架(二)
上一篇实现了服务注册发现和基本的字符串通信功能,这一篇则是实现我们平常使用RPC框架的使用类来调用的功能。实现consumer端通过接口类来调用远程服务,主要核心在于使用动态代理和反射,这里就一步一步来实现。这里贴出github代码地址,想直接看代码的可以直接下载运行:https://github.com/whiteBX/wrpc首先来看consumer端代码,RPCConsumer完整...原创 2019-09-03 20:47:51 · 307 阅读 · 0 评论 -
【RPC】一步一步实现基于netty+zookeeper的RPC框架(三)
上一篇写完咱们已经具备服务注册发现/通信/通过接口调用功能了,本篇带来负载均衡策略。RPC框架中,负载均衡策略提供,其实就是根据配置,选择不同的负载策略,常见的有随机/轮询/权重几种负载策略,本篇就带大家来实现它。这里还是贴出github代码地址,想直接看代码的可以直接下载运行:https://github.com/whiteBX/wrpc首先这里主要用到了设计模式中的策略模式,定义一个...原创 2019-09-03 20:48:39 · 300 阅读 · 0 评论 -
【RPC】一步一步实现基于netty+zookeeper的RPC框架(四)
上一篇实现了服务的负载均衡,本篇带来链路追踪。关于链路追踪,大部分都是参考了谷歌的dapper论文:https://bigbully.github.io/Dapper-translation/。 通过论文总结,其中span的核心元素为:traceId,name,spanId,parentSpanId,其他则根据自身业务需要来定义即可。&nbs...原创 2019-09-03 20:49:31 · 322 阅读 · 0 评论 -
【RPC】一步一步实现基于netty+zookeeper的RPC框架(五)
上一篇实现了服务的链路追踪,本篇带来限流。关于服务限流,比较流行的是1:令牌桶算法:桶算法的升级版,实现简单,应对热点请求效果更理想。2:动态限流:根据实时的统计当前时间段请求响应时间来动态调整限流数量,实现复杂,但应对各种情况效果更好。这里还是贴出github代码地址,想直接看代码的可以直接下载运行:https://github.com/whiteBX/wrpc本篇带来令牌桶实现限...原创 2019-09-03 20:50:08 · 330 阅读 · 0 评论 -
【RPC】一步一步实现基于netty+zookeeper的RPC框架(六)
上一篇实现了服务的限流,本篇来实现服务的熔断。 首先还是贴出github代码地址,想直接看代码的可以直接下载运行:https://github.com/whiteBX/wrpc 在现在的微服务架构下,由于服务众多,调用链路长,很可能其中某个服务有时会出现异常导致服务不可用,例如发布导致bug、机房网...原创 2019-09-03 20:50:47 · 329 阅读 · 0 评论 -
生成支持分布式部署的唯一id代码实现
在我们工作中,很多场景下都需要生成唯一id,比如订单号、优惠券码等,本篇文章就给大家带来如何用java实现生成唯一id。首先还是按惯例贴出github地址,可直接从github下载源码运行:https://github.com/whiteBX/IDGenerator唯一ID的核心点效率高。id生成器一般作为基础服务,需要有很良好的性能保证,不能让业务感知到明显的延时。支持分布式部署。...原创 2019-09-03 20:51:37 · 361 阅读 · 0 评论