0%

dubbo的连接机制

这里直接上结论了,dubbo默认是使用单一长连接,即消费者与每个服务提供者建立一个单一长连接,即如果有消费者soa-user1,soa-user2,提供者soa-account三台,则每台消费者user都会与3台account建立一个连接,结果是每台消费者user有3个长连接到分别到3台提供者,每台提供者account维持到soa-user1和soa-user2的2个长连接。

阅读全文 »

前言

谈到RPC肯定绕不开TCP通信,而主流的RPC框架都依赖于Netty等通信框架,这时候我们还要考虑是使用长连接还是短连接:

  • 短连接:每次通信结束后关闭连接,下次通信需要重新创建连接;优点就是无需管理连接,无需保活连接;
  • 长连接:每次通信结束不关闭连接,连接可以复用,保证了性能;缺点就是连接需要统一管理,并且需要保活;

主流的RPC框架都会追求性能选择使用长连接,所以如何保活连接就是一个重要的话题,也是本文的主题,下面会重点介绍一些保活策略;

阅读全文 »

示例

从Java 7开始,可以使用一个或多个下划线(_)分隔原始数字文字中的数字组,以提高其可读性。

阅读全文 »

原理

二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。

二分法查找的思路如下

1:首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。

2:如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤1的操作。

3:如果某一步数组为空,则表示找不到目标元素。

阅读全文 »

1、位:

数据存储的最小单位。每个二进制数字0或者1就是1个位

2、字节:

8个位构成一个字节;即:1 byte (字节)= 8 bit(位);

1 KB = 1024 B(字节);

1 MB = 1024 KB; (2^10 B)

1 GB = 1024 MB; (2^20 B)

1 TB = 1024 GB; (2^30 B)

3、字符:

a、A、中、+、*、の……均表示一个字节(不包括数字

注意:
英文半角符号占用1个字节,
中文全角符号等同于汉字,占用2个或3个字节需要根据不同编码集判断

一般 utf-8 编码下,一个汉字 字符 占用 3 个 字节;
一般 gbk 或 ASCII 编码下,一个汉字 字符 占用 2 个 字节;


特殊:数字

byte型:1个字节(二进制8位)
short型:2个字节(二进制16位)
int型:不管数字是几,都占用4个字节(二进制表示32位:00000000 00000000 00000000 00000000)
long型:8个字节(二进制64位)

这里要特殊说明一下“二进制”表示的数字

有符号位:
一字节存的最小数为 11111111(**-128
最大数为 01111111(
127
如果没有符号位,则:
最小数为00000000(十进制
0
最大数为11111111(十进制
255**)