赞了文章2020-06-21
Java 程序运行时,JVM 会将 .class 字节码转换成机器能够识别的指令,指令转换过程会产生耗时,延缓程序的运行速度,为了解决这种问题出现了「JIT(即时编译)」技术。JIT 主要有两个功能:
发布了文章2019-12-26
将博客搬至CSDN
发布了文章2019-12-15
Dubbo网络调用 背景 我们知道Dubbo远程调用(消费过程)的大致流程如下: 从Dirctory中获取该方法的invoker列表 经过router路由的筛选,得到满足条件的invoker列表 经过Cluster容错调用invoker 经过loadBalance筛选出最终执行的invoker 经过消费端的filter链 网络请...
发布了文章2019-12-14
Dubbo限流 Dubbo的限流作用于提供方。可以在高并发的情况,保证系统的稳定性、安全性。避免让系统被流量压垮,导致整体服务不可用。 实践 提供者添加类似配置 {代码...} 添加filter及dubbo paramter,表示每tps.interval的时间间隔内,能执行tps个请求。 消费方同时...
发布了文章2019-12-09
站在一个框架作者的角度来说,定义一个接口,自己默认给出几个接口的实现类,同时 允许框架的使用者也能够自定义接口的实现。现在一个简单的问题就是:如何优雅的根据一个接口来获取该接口的所有实现类呢?
发布了文章2019-12-09
在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。
发布了文章2019-12-09
接口LoadBalance 的定义说明,LoadBalance 的实现只是在一个服务提供的调用者列表(invokers)中选出一个调用者即可,默认的负载方式是随机负载均衡(@SPI(RandomLoadBalance.NAME)),我们也可以指定使用哪种负载均衡:
发布了文章2019-12-08
JVM的垃圾回收机制,在内存充足的情况下,除非你显式调用System.gc(),否则它不会进行垃圾回收;在内存不足的情况下,垃圾回收将自动运行
发布了文章2019-10-04
latch称为闩锁(shuang suo),其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差。在InnoDB存储引擎中,latch又分为mutex互斥锁 和 rwLock读写锁。其目的是为了保证并发线程操作临界资源的正确性。通常没有死锁的检测机制。
赞了文章2019-08-29
浏览器已经接收指令,之前在一级域名下存储了相关的信息。这里为了简化问题,假设我们有两个应用A和B,域名分别为:a.b.com和c.a.b.com。(显然B是A的一个子域)。
发布了文章2018-12-09
dubbo暴露服务有两种情况,一种是设置了延迟暴露(比如delay=”5000”),另外一种是没有设置延迟暴露或者延迟设置为-1(delay=”-1”):
发布了文章2018-11-18
什么是Cookie? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制。 Cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie。 Cookie的作用就是用于解决"如何记录客户端的用户信息": ①...
发布了文章2018-11-18
1、一个tomcat只启动一个JVM,其中可以有很多个app2、一个tomcat中部署的多个app,虽然同处一个JVM里,但是由于无法相互调用,所以也可以认为是分布式的
发布了文章2018-11-17
ProtoBuf开发者指南 译者: gashero 目录 1 概览1.1 什么是protocol buffer1.2 他们如何工作1.3 为什么不用XML?1.4 听起来像是为我的解决方案,如何开始?1.5 一点历史2 语言指导2.1 定义一个消息类型2.2 值类型2.3 可选字段与缺省值2.4 枚举2.5 使用其他消息类型2.6 ...
发布了文章2018-11-12
我们先来看看Router的继承体系图从图中可以看出,他有三个实现类,分别是ConditionRouter,MockInvokersSelector,ScriptRouter
发布了文章2018-11-10
概述 Java集合类主要有2大分支,Collection及Map。Collection体系如下: [链接] [链接] Map体系如下: [链接] Collection体系如下[链接]1、List接口和Set接口都继承自Collection接口,Collection接口继承Iterable接口(Iterable有一个Iterator方法),即可迭代的;Co...
发布了文章2018-11-10
将 Directory 中的多个 Invoker 伪装成一个 Invoker(伪装过程用到loadBalance),对上层透明,伪装过程包含了容错逻辑,调用失败后,重试另一个。简单来说,就是应对出错情况采取的策略。看看这个接口:该接口有9个实现类,换个角度来说,就是有9中应对策略,本文介绍...
发布了文章2018-11-10
首先来看一下directory接口的实现类,他主要有两个实现类,一个是StaticDirectory,一个是RegistryDirectory,本文主要解析RegistryDirectory。
发布了文章2018-11-10
本文中,将进入消费端源码解析(具体逻辑会放到代码的注释中)。本文先是对消费过程的总体代码逻辑理一遍,个别需要细讲的点,后面会专门的文章进行解析。
发布了文章2018-11-10
这次源码解析借鉴《肥朝》前辈的dubbo源码解析,进行源码学习。总结起来就是先总体,后局部.也就是先把需要注意的概念先抛出来,把整体架构图先画出来.让读者拿着"地图"跟着我的脚步,并且每一步我都提醒,现在我们在哪,我们下一步要做什么,这样才不会迷失方向。