文章 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....

随记springboot个ldap 实现CRUD

随记springboot个ldap 实现CRUD

背景 这几天接到公司的一个需求,需要研发一个多租户系统,其中涉及到操作系统角色管理模块,用户在租户平台创建自定义角色(系统初始化的时候会自动创建一些角色,hdfs 组件管理员,admin,yarn 等等),当用户在平台创建角色的时候会同步到 ldap,ldap 接入 Linux 之后被其他用户关联了,就会在 Linux 拥有这些权限,基于此,所以学习下 ldap 接入 SpringBoot 用法,简单写个 CRUD 安装 LDAP 还不知道怎么安装和了解 LDAP 的可用看看https://www.xiaohugg.top/articles/2023/07/11/1689057905882.html 开发 1.spring yam 文件配置 spring: ldap: urls: ldap://xxxxx:389 base: dc=xxx,dc=com username: cn=example,dc=xxx,dc=xx password: xxxxx 2.pom 依赖 <dependency> <groupId>org.springframework....

工作流调度和任务执行的主要逻辑以及容错恢复的流程

工作流调度和任务执行的主要逻辑以及容错恢复的流程

该文章已经加密。

superset高效率的数据源图表展示工具使用

superset高效率的数据源图表展示工具使用

superset 介绍 Apache Superset 是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义仪表盘。 官网 https://superset.apache.org/ Superset 安装 安装 Python 环境 superset 是由 Python 语言编写的 Web 应用,要求 Python3.7 的环境。 安装 Miniconda conda 是一个开源的包、环境管理器,可以用于在同一个机器上安装不同 Python 版本的软件包及其依赖,并能够在不同的 Python 环境之间切换,Anaconda 包括 Conda、Python 以及一大堆安装好的工具包,比如:numpy、pandas 等,Miniconda 包括 Conda、Python。此处,我们不需要如此多的工具包,故选择 MiniConda。 下载 Miniconda(Python3 版本) 下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Lin....

正则表达式实践

正则表达式实践

正则表达式 正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。 正则表达式可以在文本中查找、替换、提取和验证特定的模式。 正则表达式的模式 字面值字符:例如字母、数字、空格等,可以直接匹配它们自身。 特殊字符:例如点号 .、星号 *、加号 +、问号 ? 等,它们具有特殊的含义和功能。 字符类:用方括号 [ ] 包围的字符集合,用于匹配方括号内的任意一个字符。 元字符:例如 \d、\w、\s 等,用于匹配特定类型的字符,如数字、字母、空白字符等。 量词:例如 {n}、{n,}、{n,m} 等,用于指定匹配的次数或范围。 边界符号:例如 ^、$、\b、\B 等,用于匹配字符串的开头、结尾或单词边界位置。 特殊字符 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 也匹配 '\n' 或 '\r'。要匹配 字符本身,请使用 $。 ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用( 和 )。 * 匹配前面的子表达式零次或多次。要匹配 * 字符,请....

自己搭建jrebel插件服务器 学习

自己搭建jrebel插件服务器 学习

自己搭建 jrebel 插件服务器 学习– 支持全部版本 IDEA 本文主要用来自己学习,请有能力的同学,支持正版,正版不易,如有侵权,请私信联系,我将删除 准备工作 Linux 服务器/本地服务器 jdk1.8 测试 idea 版本 下载源码 https://gitee.com/gsls200808 感谢大神提供的源码 需要下载已编译好的源码: 点击下载 点击弹出下载源码地址 编译源码 用 idea 编译完成后 target 目录下有个 jar 包 -- JrebelBrainsLicenseServerforJava-1.0-SNAPSHOT-jar-with-dependencies.jar 将编译好的 jar 上传到服务器 执行启动命令 java -jar JrebelBrainsLicenseServerforJava-1.0-SNAPSHOT-jar-with-dependencies.jar 腾讯云、阿里云放开 8081 端口 浏览器访问 ip:8081 idea 换成自己的 license idea 激活 jrebel 邮箱随便填写 url: 自己搭建的 ip://p....

zookeeper初体验

zookeeper初体验

前言 ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能 zk 数据结构 zookeeper 提供的名称空间非常类似于标准文件系统,key-value 的形式存储。名称 key 由斜线 / 分割的一系列路径元素,zookeeper 名称空间中的每个节点都是由一个路径标识。 相关 CAP 理论 CAP 理论指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性 :在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性,等同于所有节点访问同一份最新的数据副本。在一致性的需求下,当一个系统在数据一致的状态下执行更新操....

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