- 博客(23)
- 收藏
- 关注
原创 手写SpringBoot核心功能流程
我们通过模拟了springboot的主要启动流程:核心注解、核心启动类、创建spring容器、对内嵌Tomcat的启动和注入spring的容器、使用多servlet服务器的切换、条件注解、自动配置类的解析等关键功能节点完成了一个简单版本的Springboot,使用这样的方式让我们对Springboot项目能有个更加深刻的理解。
2024-05-08 09:00:00 2180
原创 ElasticSearch之集群架构
GTM 是通过DNS将域名解析到多个IP地址,不同用户访问不同的IP地址,来实现应用服务流量的分配。而 SLB 是通过代理用户访问请求的形式将用户访问请求实时分发到不同的服务器,最终用户的访问流量必须要经过SLB。一般来说,相同Region使用SLB进行负载均衡,不同region的多个SLB地址时,则可以使用GTM进行负载均衡。在成本有限的前提下,让客户关注的实时数据和历史数据硬件隔离,最大化解决客户反应的响应时间慢的问题。不同的集群通过不同的名字来区分,默认名字“elasticsearch“
2024-06-03 17:02:49 1229 1
原创 ElasticSearch之聚合操作
Elasticsearch除搜索以外,提供了针对ES 数据进行统计分析的功能。可以让我们极其方便的实现对数据的统计、分析、运算。
2024-05-28 17:39:24 1253
原创 Elasticsearch之文本分析
官网称为文本分析,这是对文本进行一直分析处理的方式,基本处理逻辑是为按照预先制定的分词规则,把原本的文档进行分割成多个小颗粒度的词项,颗粒度的大小取决于分词器的配置规则。
2024-05-27 16:23:06 958
原创 Elasticsearch之深度分页问题
分页方式性能优点缺点适用场景低灵活性好,实现简单,支持随机翻页受制于设置,不能无限制翻页;存在深度分页问题,越往后分页越慢。数据量比较小,能容忍深度分页问题scroll中解决了深度分页问题scroll 查询的相应数据是非实时的,如果遍历过程中插入新的数据,查询不到;保留上下文需要足够的堆内存空间。海量数据的导出,需要查询海量结果集的数据高性能最好,不存在深度分页问题,能够反映数据的实时变更实现复杂。
2024-05-17 09:00:00 1306
原创 ElasticSearch之快速入门
Elasticsearch:官方分布式搜索和分析引擎 | ElasticElasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。
2024-05-16 15:10:28 2405 1
原创 开源监控系统Prometheus和Grafana应用
中文名普罗米修斯,Prometheus是一个开源系统监控和警报工具包最初在SoundCloud构建。自 2012 年成立以来,许多公司和组织都采用了 Prometheus,该项目有一个非常活跃的开发人员和用户社区。它现在是一个独立的开源项目 并独立于任何公司进行维护。强调这一点,并澄清 该项目的治理架构,Prometheus 于 2016 年加入云原生计算基金会作为继Kubernetes之后的第二个托管项目。
2024-05-12 10:58:17 1277
原创 SpringBoot自动配置源码解析+自定义Spring Boot Starter
Spring Boot应用标注 @SpringBootApplication 注解的类说明该类是Spring Boot 的主配置类,需要运行该类的main方法进行启动 Spring Boot 应用。
2024-05-09 17:17:27 766 1
原创 Netty常用组件
BootStrap的意思是引导程序,BootStrap作为Netty框架的启动类和主入口类,主要作用是配置Netty框架中事件循环组、通道类型、处理器以及端口等设置。分为服务端ServerBootstrap和客户端BootStrap。
2024-04-29 22:38:01 983
原创 Harbor私服镜像库安装教程(超详细)
Harbor是一个开源注册表,它使用策略和基于角色的访问控制来确保工件的安全性,确保镜像经过扫描且没有漏洞,并签署镜像作为可信图像。Harbor是CNCF的一个毕业项目,它提供合规性、性能和互操作性,帮助您一致且安全地管理跨和等云原生计算平台的工件。
2024-04-26 09:30:00 2326 1
原创 MySQL迁移OceanBase问题记录
Mysql SQLNonTransientConnectionException 异常处理;数据库针对慢SQL或者未提交的事务,Oracle、MySQL、OceanBase选择了不同的策略去处理。OceanBase是分布式数据库,业务场景并发压力可能非常大,所以OceanBase选择了超时释放资源的策略。应用从Oracle或MySQL迁移到OceanBase时,需要根据业务需求动态调整上面所说的参数配置。
2024-04-25 09:29:44 2630 4
原创 Netty使用与线程模型
Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty是NIO的客户端服务器框架,可以快速轻松地开发网络应用程序,例如协议服务器和客户端。它大大简化和简化了网络编程,例如 TCP 和 UDP 套接字服务器。“快速和简单”并不意味着生成的应用程序会遇到可维护性或性能问题。Netty 经过精心设计,积累了从许多协议(如 FTP、SMTP、HTTP 以及各种二进制和基于文本的遗留协议)的实施中获得的经验。
2024-04-24 09:41:59 1050
原创 BIO、NIO、AIO线程模型理解
NIO调用流程是通过操作系统内核函数来实现的。Java创建Socket后,获取该Socket的文件描述符,然后创建一个Selector对象。该Selector对象对应于操作系统中的Epoll描述符。接着,将Socket的文件描述符与Selector中的Epoll描述符关联,允许系统内核异步通知事件。这样,一条线程就可以高效地处理多个事件,而无需无效遍历。事件处理交由操作系统内核来管理,大大提高了效率。
2024-04-23 09:58:00 967
原创 SpringBoot+Netty+WebSocket实战
从spring容器中获取具体的业务bean,上面的LiveStreamProcessingHandler继承AbstractLiveStreamProcess抽象类,各自的具体业务可以自定义实现。多个ChannelInboundHandler的调度器:目前就一种数据格式的处理Handler,后续可按需添加。application.yml配置文件中配置netty关键信息:如netty服务器端口号、需要连接的设备SN。注册ServerBootstrap中的自定义 ChannelInitializer。
2024-04-22 17:27:39 670
原创 MYSQL SQL语句定义和执行顺序
定义要查询的列,包括是否使用DISTINCT去除重复行。: 定义查询的主表,即数据的主要来源。: 定义与主表的连接操作,包括连接类型和连接条件。: 定义筛选条件,只返回符合条件的行。: 对结果集进行分组。: 对分组结果进行多维数据汇总,产生超立方体或上卷数据。: 对分组后的结果进行过滤。: 对结果集进行排序。: 限制返回的行数。
2024-04-19 22:12:45 258 1
原创 OceanBase 数据库相关配置版本
升级druid和mybatis-plus版本之后导致druid和Localdatetime不兼容。druid 连接池:1.1.21后新版本DbType增加jdbc:oceanbase 类型。在prepareStatement时会将Localdatetime类型的参数丢失。mybatis-plus 分页插件 3.4.0才支持oceanbase。可添加相关依赖或者配置Druid和mybatis对应的版本。
2024-04-16 15:49:40 526
原创 docker-compose从harbor仓库拉取项目镜像进行私有化部署
下载 Docker Compose 至 /usr/local/bin 目录并赋予执行权限。**使用docker version 查看dockers是否启动**# 修改 Docker 配置文件,允许 http 登录。# 重启 Docker 以应用 Docker 配置变更。# 修改 /etc/hosts 文件,添加映射关系。生成私钥,会让你输入一个 4~2048 位的密码。基础代理镜像作为代理到harbor地址。#启动docker-compose。docker-compose启动。# 进入部署的工作目录。
2024-03-22 15:12:17 849
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人