一、序言
dubbo作為一款最流行的服務治理框架之一,在底層做了很多的優化,比如消費端在啟動的時候做了很多性能提升的設計,接下來從連接的層面、序列化功能的層面進行介紹下。
二、優化點
1、消費端在服務啟動的時候會調用DubboProtocol類的protocolBindingRefer方法來創建執行器Invoker,其中這個方法的optimizeSerialization方法做了序列化方面的優化;
2、消費端在服務啟動的時候會調用DubboProtocol類的protocolBindingRefer方法來創建執行器Invoker,其中這個方法的getClients(url)方面做了連接方面的優化;
接下來從源碼層面介紹下做了具體的什么優化。
三、源碼
1、序列化優化
private void optimizeSerialization(URL url) throws RpcException {String className = url.getParameter(OPTIMIZER_KEY, "");if (StringUtils.isEmpty(className) || optimizers.contains(className)) {return;}logger.info("Optimizing the serialization process for Kryo, FST, etc...");try {Class clazz = Thread.currentThread().getContextClassLoader().loadClass(className);if (!SerializationOptimizer.class.isAssignableFrom(clazz)) {throw new RpcException("The seri