一文讲清多线程和多线程同步 一个进程内多个线程并发执行的情况就叫多线程,每个线程是一个独立的执行流,多线程是一种编程模型,它与处理器无关、跟设计有关。并行计算:充分利用多核,提升整体吞吐,加快执行速度。后台任务处理:将后台线程和主线程分离,在特定场景它是不可或缺的,如:响应式用户界面、实时系统等。我们用2个例子作说明。
Java Web服务运行一段时间后出现cpu升高导致的性能下降问题排查 有个web服务,运行一段时间后,出现cpu逐渐占用高,服务处理请求整体性能下降问题。异常情况时,同时jvm的cpu上涨最终表现为,处理内部逻辑执行耗时变高。
SpringBoot 处理 @KafkaListener 消息 spring为了将kafka融入其生态,方便在spring大环境下使用kafka,开发了spring-kafa这一模块,本质上是为了帮助开发者更好的以spring的方式使用kafka@KafkaListener就是这么一个工具,在同一个项目中既可以有单条的消息处理,也可以配置多条的消息处理,稍微改变下配置即可实现,很是方便当然,@KafkaListener单条或者多条消息处理仍然是spring自行封装处理,与kafka-client客户端的拉取机制无关;
Proxyless Service Mesh:下一代微服务架构体系 在当今的中,应用程序通常被拆分成多个独立的服务,这些服务通过网络进行通信。最初,开发者使用SDK来解决这些问题,通过在代码中集成各种库和工具来实现服务治理。为了解决这些问题,(Service Mesh)应运而生。服务网格通过在服务间引入一个代理层(通常称为Sidecar),将服务治理的逻辑从应用代码中分离出来,实现了更好的治理和管理。然而,服务网格的引入也带来了额外的复杂性和性能开销。在这样的背景下,我们通过Java,在服务治理领域提供了一种创新的解决方案。
Mybatis TypeHandler 介绍及使用 TypeHandler类型转换器是负责Java类和jdbc类型之间的转换。主要涉及到下面这几个类:TypeHandler 类型转换器的顶层接口BaseTypeHandler 抽象类继承自TypeHandler,Mybatis中所有的类型转换器实现均继承他。TypeHandlerRegistry 类型转换器注册器,负责存储类型转换器。TypeAliasRegistry 类型别名转换器,用来存储类型与别名的对应关系。
mybatisplus实现公共字段自动填充功能 这些字段通常会容易被大家忽视,每个 Entity 都去处理一遍比较麻烦耗时;如果忽略又会造成记录本身属性不完整,直到用到的时候才后悔莫及。类中,所以在这个类中,我们把所有更新和插入时需要做改动的字段都加上。(创建时间) 等字段,与业务基本无关且属于记录本身的属性字段。中的 MetaObjectHandler。一般来说,这些公共字段我们都会封装在一个。就是针对这一问题的良好解决方案。)中经常会有一些公共字段如。在日常的开发过程中,
Maven:一个下载jar依赖失败的问题解决方案 如果写了parent的话,那在deploy的时候也要将parent上传到私服上去,在下载的时候会先下载parent依赖的模块,然后再下载依赖的jar包。解决方案:在将我们的jar包发布到私服的时候,如果jar包有parent或者其他依赖的时候,要从root上deploy,避免缺少依赖,导致下载失败。从该错误信息中可以看到,找不到服务名是xxl-job这个的,我们要找的jar包服务名是xxl-job-core,甚是疑惑。经过排查,发现我们的jar包其实是多模块项目,里面的pom文件的parent属性写了。
SpringBoot 基于jedis实现Codis高可用访问 codis作为开源产品,可以很直观的展示出codis运维成本低,扩容平滑最核心的优势.其中,开源的codisproxy的服务的注册发现是通过zk来实现。Codis集群的整体架构和关键组件如下所示,其中心思想是。基于多个redis实例做了一层路由层来进行数据的路由。codis与redis之间关系就是codis是。,每个redis实例承担一定的数据分片。
整合 Prometheus & Grafana 监控 Prometheus 通过指标名称(metrics name)以及对应的一组标签(labelset)唯一定义一条时间序列。指标名称反映了监控样本的基本标识,而 label 则在这个基本特征上为采集到的数据提供了多种特征维度。用户可以基于这些特征维度过滤,聚合,统计从而产生新的计算后的一条时间序列。PromQL 是 Prometheus 内置的数据查询语言,其提供对时间序列数据丰富的查询,聚合以及逻辑运算能力的支持。并且被广泛应用在Prometheus的日常应用当中,包括对数据查询、可视化、告警处理当中。
Jackson 配置与扩展 为什么会说 Jackson 在 Spring Boot 生态中很重要?Jackson 是 Spring Boot 生态中核心的 JSON 处理组件,贯穿于 Spring Boot 生态包括 Spring Cloud 的各个组件中。 正因为日常可见,往往就越不重视。而实际开发中,初次使用 Spring Boot 生态组件,遇到的很多问题往往就出自 Jackson。 Spring Boot 生态中 Jackson 的使用和设计,采用了 Spring Boot 生态中非常常用的一种我称之为 Cust