排序:
默认
按更新时间
按访问量

怎么实现所有线程在等待某个事件的发生才会去执行

方案一:读写锁   刚开始主线程先获取写锁,然后所有子线程获取读锁,然后等事件发生时主线程释放写锁; 方案二:CountDownLatch   CountDownLatch初始值设为1,所有子线程调用await方法等待,等事件发生时调用countDown方法计数减为0; 方案三:Semap...

2018-08-12 20:42:59

阅读数:8

评论数:0

dubbo源码分析 -- 远程通信 netty

dubbo 底层通信选择了 netty 这个 nio 框架做为默认的网络通信框架并且通过自定义协议进行通信。dubbo 支持以下网络通信框架: Netty(默认) Mina Grizz ly  Netty是什么? ①本质:由JBOSS提供的一个java开源框架(一个jar包) ②目的:快...

2018-08-05 19:49:12

阅读数:172

评论数:0

dubbo源码分析 -- 网络编解码

           我们在上篇文章中讲述了序列化反序列化组成有意义的信息,然后这些信息需要经过网络进行传送,数据转成网络格式,再由网络格式转成应用程序的数据用的组件分别叫做编码器和解码器。 1.什么是粘包、拆包?   粘包 客户端发送多个请求给服务器,多个请求包粘成一个 发送方为了...

2018-07-28 20:43:08

阅读数:120

评论数:8

dubbo源码分析 - 序列化与反序列化

  概念: 序列化:把对象转换为字节序列的过程称为对象的序列化。  反序列化:把字节序列恢复为对象的过程称为对象的反序列化。   在Dubbo RPC中,同时支持多种序列化方式: (1)dubbo序列化,阿里尚不成熟的java序列化实现。 (2)hessian2序列化:hessian是...

2018-07-28 20:42:35

阅读数:125

评论数:6

dubbo源码分析 - provider 接收与发送原理

provider 接收 consumer 请求 provider 的扩展点调用 provider 响应 consumer 调用 dubbo 服务调用总结 1、provider 接收 consumer 请求 同 consumer 一样 provider 默认也是通过 netty 进行网络通信...

2018-07-28 20:42:17

阅读数:118

评论数:7

dubbo源码分析-consumer 发送与接收原理

1、consumer 发送扩展 我们先来看一下 dubbo 中 consumer 端的请求发送原理,也就是从 InvokerWrapper#invoke 开始,在 consumer 服务引用分析的时候,我们知道根据 Invoke 调用的时候, dubbo 会创建 ProtocolListener...

2018-07-28 20:42:03

阅读数:145

评论数:6

dubbo集群容错之directory目录

directory接口的实现类有两个:StaticDirectory,RegistryDirectory。其中StaticDirectory中的Static关键词来看,就知道,这个其实是不会动态变化的,从下图知道,他的Invoker是通过构造函数传入,StaticDirectory用得比较少,主要...

2018-07-28 20:40:34

阅读数:32

评论数:6

dubbo集群容错之loadbalance负载均衡

LoadBalance 首先查看 LoadBalance 接口 Invoker select(List> invokers, URL url, Invocation invocation) throws RpcException; LoadBalance 定义了...

2018-07-22 21:33:53

阅读数:56

评论数:5

dubbo集群容错之cluster集群

 官网是这么说Cluster的: Cluster 将 Directory 中的多个 Invoker 伪装成一个 Invoker,对上层透明,伪装过程包含了容错逻辑,调用失败后,重试另一个 一句话就是:应对出错情况采取的策略。...

2018-07-22 21:33:24

阅读数:22

评论数:3

dubbo集群容错之router路由规则

  Router服务路由, 根据路由规则从多个Invoker中选出一个子集AbstractDirectory是所有目录服务实现的上层抽象, 它在list列举出所有invokers后,会在通过Router服务进行路由过滤。    Router在应用隔离,读写分离,灰度发布中都发挥作用。    ...

2018-07-22 21:32:45

阅读数:39

评论数:2

dubbo源码解析-集群容错架构设计

开始之前先来一波概念:                    上图为官网的架构图,它是从设计的角度而非使用角度画出,但是其中的Directory、Router、LoadBalance这三个关键词标注重点       进入代理类的Invoker方法中 , 边看时序图,边走着代码...

2018-07-19 20:21:24

阅读数:25

评论数:2

dubbo服务引用-原理

描述一下dubbo服务引用的过程,原理   既然你提到了dubbo的服务引用中封装通信细节是用到了动态代理,那请问创建动态代理常用的方式有哪些,他们又有什么区别?dubbo中用的是哪一种?(高频题)   除了JDK动态代理和CGLIB动态代理外,还知不知道其他实现代理的方式?(区分度高) ...

2018-07-19 20:20:24

阅读数:23

评论数:3

dubbo服务引用-如何实现SOA的服务降级

  带着问题进入, 为什么需要服务降级? 当使用某门新技术的时候,需要考虑解决什么问题,通过之前的积累可以知道是将某些业务暂时停掉,避开高峰期。把一些边缘化不再当前高并发时使用的业务关掉。 怎么做服务降级 dubbo中服务降级分成两个:屏蔽(mock=force)、容错(mock=f...

2018-07-19 20:18:18

阅读数:21

评论数:4

dubbo服务暴露-zookeeper订阅信息缓存

1.dubbo如何订阅zookeeper信息,什么时候更新本地的zookeeper信息缓存文件 registry.subscribe(); 结合上图开始走代码:           设置了监听回调地址,即回调给FailbackRegistry中的notify 从代码可以看到创建了...

2018-07-19 20:17:43

阅读数:25

评论数:2

dubbo服务暴露-整体框架设计(总结)

服务暴露的整个过程引入了本地暴露和远程暴露,一句话概括--->Service-->Invoker -->Exporter                

2018-07-19 20:16:46

阅读数:23

评论数:2

dubbo服务引用-zookeeper创建节点

1.服务提供者能实现失效踢出是什么原理(高频题) 上篇文章是以getRegistry贯穿始末,这篇也将是根据一行代码registry.register(registedProviderUrl);来阐述。   创建节点:         2.zookeeper的有...

2018-07-19 20:16:14

阅读数:38

评论数:2

dubbo源码解析-zookeeper连接

1.dubbo一般选择什么注册中心,还有别的选择吗?   zookeeper的java客户端你使用过哪些? 本篇重要的内容 getRegistry(originInvoker); 通过时序图理下思路: 源码中封装的很好的,我们有时很难看到实用的价值,其中在3步骤内隐藏了很...

2018-07-19 20:15:41

阅读数:24

评论数:1

Dubbo源码解析-服务暴露原理

    服务发布和服务的引用到底什么实现的呢?我们追踪这个问题进行下面的学习?         首先我们通过控制台查看服务启动过程中,日志记录了什么?     通过日志看出发布的过程:①暴露本地服务  ② 暴露远程服务  ③启动netty ④ 连接zookeeper ⑤注册到zooke...

2018-07-19 20:11:51

阅读数:17

评论数:1

Dubbo源码解析-本地暴露与远程暴露

本篇讲的是本地暴露,面试主要问得多是远程暴露,因为远程暴露涉及到了zookeeper和netty.比如和zookeeper相关的最常问的两道题是服务提供者能实现失效踢出是根据什么原理?,dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗?.当然如果这两个你...

2018-07-19 20:08:22

阅读数:30

评论数:0

Dubbo内核解析-SPi(二)

前言     本篇是spi的第二篇,紧接上一篇Dubbo内核解析-Spi,主要讲解spi中新增的AOP。首先也是先从Spring的AOP出发。     Spring的AOP理解   Spring的AOP增强方式一共有5种,分别为 增强类型 应用场景 前置增强 权限控制、记...

2018-07-19 20:01:21

阅读数:19

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭