![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 80
xgc_java
这个作者很懒,什么都没留下…
展开
-
构建简易Java虚拟机执行器
我们将深模拟构建一个简易的Java虚拟机(JVM)执行器。这个过程不仅能够帮助我们理解JVM的工作原理,也是对我们编程能力的一次实质性提升。原创 2024-05-21 14:05:05 · 397 阅读 · 0 评论 -
MilvusPlus向量数据库增强操作库
🔥🔥🔥MilvusPlus(简称 MP)是一个Milvus的操作工具,旨在简化与 Milvus 向量数据库的交互,为开发者提供类似 MyBatis-Plus 注解和方法调用风格的直观 API,提高效率而生。简化开发流程:通过注解直接在代码中声明数据库结构,不用手动创建集合、属性、索引、分区,项目启动即自动构建,减少手动编写Milvus API调用的需要。提高开发效率:注解驱动的方式使得数据库结构的创建和管理更加快捷,加快开发速度。增强代码可读性。原创 2024-05-21 14:02:10 · 1242 阅读 · 0 评论 -
Error-NioEndpoint-打开文件过多
1. 场景:使用javacv将rtsp流转为flv,服务跑几天后报错。2022-01-20 09:32:41.214 [http-nio-9145-Acceptor-0] ERROR org.apache.tomcat.util.net.NioEndpoint - Socket accept failedjava.io.IOException: 打开的文件过多 at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) ~原创 2022-01-25 15:44:32 · 1141 阅读 · 0 评论 -
JVM内存结构
组成部分jvm内存结构包含程序计数器、java虚拟机栈、本地方法栈、堆、元数据区、直接内存,其中堆、元数据区、直接内存线程共享,程序计数器、java虚拟机栈、本地方法栈线程私有。(java1.7没有元数据区,在jvm虚拟机数据区内使用永久代)程序计数器程序计数器是一块较小的内存空间,是当前线程正在执行的那条字节码指令的地址。若当前线程正在执行的是一个本地方法,那么此时程序计数器为Undefined。程序计数器的作用字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制。在多原创 2021-10-22 17:32:51 · 89 阅读 · 0 评论 -
SpringCloud-Ali
概述Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件。方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置。就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。版本介绍组件关系依赖关系Nacos概述什么是NacosNacos 致力于帮助您发现原创 2021-06-24 11:17:49 · 553 阅读 · 0 评论 -
简单的web项目环境搭建及部署(单机)
文章目录一、配置JDK二、安装Docker三、搭建Mysql四、搭建Redis五、启动web服务一、配置JDK1、选择版本安装yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel#或者如下命令,安装jdk1.8.0的所有文件yum install -y java-1.8.0-openjdk*2、查看JDK是否安装成功java -version3、配置环境变量JDK默认安装路径/usr/lib/jvm在/etc/profi原创 2020-08-25 14:43:57 · 1338 阅读 · 0 评论 -
网络原理图
原创 2020-08-08 16:42:38 · 316 阅读 · 0 评论 -
RabbitMq介绍及实战
为什么使用消息队列优点比较核心的有 3 个:解耦、异步、削峰。缺点有以下几个:系统可用性降低系统引入的外部依赖越多,越容易挂掉。系统复杂度提高硬生生加个 MQ 进来,如何保证消息的传递及消费成功一致性问题A 系统处理完了直接返回成功了,人都以为你这个请求就成功了;但是问题是,要是 BCD 三个系统那里,BD 两个系统写库成功了,结果 C 系统写库失败了,这数据就不一致了。所以...原创 2020-04-21 14:12:05 · 247 阅读 · 1 评论 -
Docker搭建Rabbitmq集群(可用)
本文基于镜像队列实现RabbitMQ的高可用性(HA)具体的实现策略如下所示: ha-mode ha-params 功能 all 空 镜像队列将会在整个集群中复制。当一个新的节点加入后,也会在这个节点上复制一份。exactly count 镜像队列将会在集群上复制count份。如果集群数量少于count时候,队列会复制到所有节点上。如果大于Count集群,有一个节点crash后,新进入节点...原创 2020-04-21 13:00:32 · 613 阅读 · 0 评论 -
SpringCloud之五大组件
springcloud微服务微服务:拆分、单一、独立、组件化。将一个复杂的庞大的项目拆分成一个一个的小项目独立的运行,通过接口的方式组装成一个大项目。springcloud是基于springboot的一套实现微服务的框架。提供了微服务开发所需要的配置管理,服务管理,断路器,智能路由,微代理,控制总线,全局锁,策略竞选,分布式会话和集群状态管理等组件。五大组件1)Eureka:注册中心:服...原创 2020-04-15 16:55:49 · 1146 阅读 · 0 评论 -
Dubbo原理及实战
dubbo是什么Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo框架,是基于容器运行的,容器是Spring。Dubbo系统分为五个部分:远程服务运行容器(Container),远程服务提供方(Provider)、注册中心(Register)、远程服务调用者(Consumer)、监控中心(...原创 2020-04-15 15:27:12 · 150 阅读 · 0 评论 -
Zookeeper集群搭建
zookeeper是什么Zookeeper: 是一个分布式的、开源的程序协调服务zookeeper有什么用他提供的主要功 能包括:配置管理、名字服务、分布式锁、集群管理。如何搭建zookeeper本文基于docker搭建单机版及集群版单机版首先拉取zookeeper镜像docker pull zookeeper查看镜像创建目录cd /opt/zookeeperm...原创 2020-04-15 14:33:25 · 151 阅读 · 0 评论 -
Mysql体系结构介绍
MySql Server层:连接层和SQL层:连接层:通信协议,线程处理,用户名密码认证SQL层:权限判断,查询缓存,解析器,预处理,查询优化器,缓存和执行计划。存储引擎层InnoDB:支持事务;行锁;高并发;数据和索引文件都存储在.Ibd文件里,并且都缓存在内存里;统计行数需要全表扫描。MyISAM:不支持事务;表级锁;低并发;数据文件的扩展名为.MYD(mydata),索引文...原创 2020-04-09 10:57:56 · 206 阅读 · 0 评论 -
重试机制用法与实现
在RPC外部调用,如果网络不稳定的情况下,重试功能是比较重要的必备项。解决方案例如:根据失败重试时间,创建延迟队列,如果请求失败,入队列,消费,spring retry,guava retrying,sisyphus本文使用最简单的方式springboot+spring retry,其他的阔以自己去看看spring retry实现首先导入相关pom依赖 <dep...原创 2020-04-09 10:06:00 · 1377 阅读 · 0 评论 -
多数据源快速开发实战
什么时候需要多数据源切换①、项目中存储的数据量很大,一个服务器扛不住,需要将一部分数据存储在另外一个服务器里,然而我们还要每天去访问这些存储的数据。②、项目与其他项目对接,需要连接另外一个项目的数据库(这里可能有人会提议使用API,但这是相对于第三方公司,人家不会把数据库信息暴露给你的,所以才提供的api。)实现多数据源切换实现(springboot+aop)添加相关pom &l...原创 2020-03-31 15:16:23 · 205 阅读 · 0 评论 -
分布式限流实战
为何要限流由于API接口无法控制调用方的行为,因此当遇到瞬时请求量激增时,会导致接口占用过多服务器资源,使得其他请求响应速度降低或是超时,更有甚者可能导致服务器宕机。限流(Rate limiting)指对应用服务的请求进行限制,例如某一接口的请求限制为100个每秒,对超过限制的请求则进行快速失败或丢弃。限流可以应对:热点业务带来的突发请求;调用方bug导致的突发请求;恶意攻击请求。...原创 2020-03-27 10:05:26 · 137 阅读 · 0 评论 -
分布式事务解决方案介绍与实现
分布式事务为何存在随着架构的演变,分布式、微服务变得流行起来,各个拆分的项目之间存在调用问题,每个服务对应的数据库也可能不一致,这时候数据安全就存在隐患,也就是CAP问题,所以分布式事务就出来了。如何实现分布式事务演变过程2PC3PCTCCLCD本文基于LCD Manager 实现分布式事务...原创 2020-03-26 09:27:52 · 134 阅读 · 0 评论 -
Mysql实用总结第一篇
什么是MYSQLmysql是一种开源的使用广泛的关系型数据库,支持多种存储引擎。原理MYSQL逻辑分层 :连接层 服务层 引擎层 存储层存储引擎:InnoDB(默认) :事务优先 (适合高并发操作;行锁)MyISAM :性能优先 (表锁)详情:InnoDB是 MySQL 默认的事务型存储引擎,只有在需要它不支持的特性时,才考虑使用其它存储引擎。实现了四个标准的隔离级别,默认级...原创 2020-03-25 15:12:43 · 151 阅读 · 0 评论 -
Redis主从哨兵与集群介绍及实现
什么是Redisredis是非关系型、开源,支持水平扩展的NoSQL数据库,基于key-value存储,提供海量的数据访问,支持数据持久化(RDB、AOF模式),可用来做分布式缓存中间件。采用单线程模型使的线程安全且性能瓶颈不束于cpu,避免了不必要的上下文切换和竞争条件,同时它是非阻塞的,采用epoll作为I/O多路复用技术的实现。RDB模式:就是每隔一段时间,定时保存,有点像MySQL中...原创 2020-03-24 16:48:00 · 158 阅读 · 0 评论 -
分布式锁-快速实战
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题就存在问题,解决方案分布式锁。下面介绍两种首先分布式锁的方案:基于Spring Integration实现分布式锁基于redisson实现分布式锁优缺点:第一种引入简单,使用方便,但只支持重入锁。第二种较第一种麻烦一点点,但支持重入锁、公平锁、读锁、写锁等多种类型。第一种方案:提供的全局锁目前为以下存储提供了实现...原创 2019-10-29 16:35:58 · 943 阅读 · 1 评论 -
简单的EXCEL导入实战(错误数据记录原因,正确数据入库)
以导入招生信息为例首先在项目pom文件中引入 <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-web</artifactId> <version>3.0.3<...原创 2019-03-01 13:34:30 · 5105 阅读 · 0 评论 -
Java 8 Lambda
lambda表达式是一个可以传递执行的代码块。这是一些编程语言的常见功能,例如Lisp,Python,Scala等。但在Java 8之前,我们不能在Java中做同样的事情。如果我们想要执行一个代码块,我们需要创建一个对象并传递对象,例如使用策略设计模式。从Java 8开始,lambda表达式使我们能够将功能视为方法参数并传递一段代码。Java 8中的Lambda表达式非常强大,因此非常引人注目。...翻译 2018-12-04 14:24:44 · 105 阅读 · 0 评论