软件工程应用与实践
文章平均质量分 75
鱼杨
这个作者很懒,什么都没留下…
展开
-
13. dubbo分析
RoundRobinLoadBalance 的最终形态 前文我们介绍了RoundRobinLoadBalance的多次重构,接下来即RoundRobinLoadBalance 先版本的最终形态 public class RoundRobinLoadBalance extends AbstractLoadBalance { public static final String NAME = "roundrobin"; private static int RECYCLE_PERIOD原创 2021-12-27 13:05:09 · 76 阅读 · 0 评论 -
11.dubbo分析
2021SC@SDUSC RoundRobinLoadBalance 先来了解一下什么是加权轮询。所谓轮询是指将请求轮流分配给每台服务器。举个例子,三台服务器 A、B、C。s将第一个请求分配给服务器 A,第二个请求分配给服务器 B,第三个请求分配给服务器 C,第四个请求再次分配给服务器 A。这个过程就叫做轮询。轮询是一种无状态负载均衡算法,实现简单,适用于每台服务器性能相近的场景下。但现实情况下,我们并不能保证每台服务器性能均相近。如果我们将等量的请求分配给性能较差的服务器,这显然是不合理的。因此,这个时候原创 2021-12-19 21:50:25 · 119 阅读 · 0 评论 -
10.dubbo分析
2021SC@SDUSC ConsistentHashLoadBalance 一致性 hash 算法的工作过程是这样的,首先根据 ip 或者其他的信息为缓存节点生成一个 hash,并将这个 hash 投射到 [0, 232 - 1] 的圆环上。当有查询或写入请求时,则为缓存项的 key 生成一个 hash 值。然后查找第一个大于或等于该 hash 值的缓存节点,并到这个节点中查询或写入缓存项。如果当前节点挂了,则在下一次查询或写入缓存时,为缓存项查找另一个大于其 hash 值的缓存节点即可。大致效果如下图所原创 2021-12-06 11:20:28 · 168 阅读 · 0 评论 -
9.dubbo分析
2021SC@SDUSC原创 2021-11-28 23:41:29 · 63 阅读 · 0 评论 -
8.dubbo分析
2021SC@SDUSC原创 2021-11-28 23:40:43 · 169 阅读 · 0 评论 -
7.dubbo分析
2021SC@SDUSC FailsafeClusterInvoker FailsafeClusterInvoker 是一种失败安全的 Cluster Invoker。所谓的失败安全是指,当调用过程中出现异常时,FailsafeClusterInvoker 仅会打印异常,而不会抛出异常。适用于写入审计日志等操作 public class FailsafeClusterInvoker<T> extends AbstractClusterInvoker<T> { @Overr原创 2021-11-10 11:35:27 · 217 阅读 · 0 评论 -
6.dubbo分析
2021SC@SDUSC reselect private Invoker<T> reselect(LoadBalance loadbalance, Invocation invocation, List<Invoker<T>> invokers, List<Invoker<T>> selected, boolean availablecheck) throws RpcException { List<Invoker<原创 2021-11-10 11:30:10 · 65 阅读 · 0 评论 -
5.dubbo分析
2021SC@SDUSC原创 2021-10-31 22:42:20 · 77 阅读 · 0 评论 -
4.dubbo分析
2021SC@SDUSC原创 2021-10-24 23:44:52 · 57 阅读 · 0 评论 -
3.dubbo分析
2021SC@SDUSC url 到 Invoker 的转换过程 private Map<String, Invoker<T>> toInvokers(List<URL> urls) { Map<String, Invoker<T>> newUrlInvokerMap = new HashMap<String, Invoker<T>>(); if (urls == null || urls.isEmpty(原创 2021-10-17 23:23:07 · 98 阅读 · 0 评论 -
2.dubbo分析_服务目录
2021SC@SDUSC dubbo容错机制 集群容错源码包含四个部分,分别是服务目录 Directory、服务路由 Router、集群 Cluster 和负载均衡 LoadBalance。 服务目录概念 服务目录中存储了一些和服务提供者有关的信息,通过服务目录,服务消费者可获取到服务提供者的信息,比如 ip、端口、服务协议等。通过这些信息,服务消费者就可通过 Netty 等客户端进行远程调用。在一个服务集群中,服务提供者数量并不是一成不变的,如果集群中新增了一台机器,相应地在服务目录中就要新增一条服务原创 2021-10-10 22:24:22 · 114 阅读 · 0 评论 -
1.Dubbo综述
2021SC@SDUSC dubbo介绍 dubbo是一个微服务的开发框架。 如果服务过多,就尽量不要把所有的服务都部署在同一台机器上,而是把服务拆分成不同的微服务,部署在不同的机器上,提高可用性。 因为不同的服务部署在了不同的机器上,而这些服务有可能需要相互通信,就有了RPC的概念。 RPC(Remote Procedure Call)即远程调用过程,实现像原来调用本机上的服务一样,调用不同机器上的远程服务。RPC有不同的实现方式。 而dubbo的两大核心能力,就是RPC通信和微服务治理。因此可用dubb原创 2021-09-30 19:53:13 · 110 阅读 · 0 评论