文章 62
浏览 15135
Alibaba Nacos注册中心源码剖析

Alibaba Nacos注册中心源码剖析

nacos 简介 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 下载源码(1.4) 从 GitHub 下载 nacos 的 1.4 版本的源代码 流程架构图 架构原理 1、微服务系统在启动时将自己注册到服务注册中心,同时外发布 Http 接口供其它系统调用(一般都是基于 Spring MVC) 2、服务消费者基于 Feign 调用服务提供者对外发布的接口,先对调用的本地接口加上注解 @FeignClient,Feign 会针对加了该注解的接口生成动态代理,服务消费者针对 Feign 生成的动态代理去调用方法时,会在底层生成 Htt....

百万数量级别导入导出,看我这样做

百万数量级别导入导出,看我这样做

背景 相信在业务当中,会有许多数据导入导出,一般涉及到百万数据级别数据导入导出,如果没有一个优良的性能架构,很容易产生 OOM,造成服务器崩盘,所以写下这篇文章,简单写下核心伪代码,起到抛砖引玉 功能设计 技术选型: springboot+mysql+ 线程池 +mybatisplus+aop+juc tools + easyExcel 在于数据导出涉及 IO 操作,不采用线程池的话,串行耗时较长,同时数据量较大,不对数据进行分页处理,可能会产生内存溢出。 线程池线程配置 **涉及到 io 密集和 CPU 循环,这里主要将线程数据设置为 2*n+1,这种配置是理想情况下,具体的线上业务,需要看业务,有兴趣可以看看京东写的一篇博客: **京东讲解 cpu 核心和线程数计算 static { CPU = Runtime.getRuntime().availableProcessors(); N_THREAD = 2 * CPU + 1; EXECUTOR_SERVICE = Executors.newFixedThreadPool(N_THREAD); } 数据生成 建表语句 CREATE....

人民有信仰 民族有希望 国家有力量