自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(222)
  • 收藏
  • 关注

原创 java应用提速(速度与激情)

速度与效率与激情什么是速度?速度就是快,快有很多种。有小李飞刀的快,也有闪电侠的快,当然还有周星星的快:(船家)"我是出了名够快"。(周星星)“这船好像在下沉?” (船家)“是呀!沉得快嘛”。并不是任何事情越快越好,而是那些有价值有意义的事才越快越好。对于这些越快越好的事来说,快的表现是速度,而实质上是提效。今天我们要讲的java应用的研发效率,即如何加快我们的java研发速度,提高我们的研发效率。提效的方式也有很多种。但可以分成二大类。我们使用一些工具与平台进行应用研发与交付。

2022-09-02 16:17:14 476 1

原创 腾讯技术官编写的594页MySQL优化手册,竟意外冲上GitHub调优热榜

当下互联网时代,MySQL受热捧的程度不容置疑,位列全球最流行的开源数据库也当之无愧,它广泛应用的因由不仅是产品本身的优势,更重要的是有无数社区技术爱好者为其默默耕耘。近几年 MySQL发展迅速,各分支在性能与架构方面优化都有所突破与发展;与此同时,互联网应用业务也更加复杂,更具有挑战性。如何在应用中发挥MySQL的优势,深入理解MySQL新特性,做好数据库的容灾与数据保护,结合业务做好高可用架构等等,以应对更加复杂业务和更具挑战性的 DBA工作。

2022-09-02 16:12:36 344

原创 面试~jvm(JVM内存结构、类加载、双亲委派机制、对象分配,了解垃圾回收)

(1) 什么是垃圾?垃圾:运行程序中没有任何指针指向的对象。(2) 为什么需要GC?不GC,导致内存可能会消耗完;没有GC,不能保证应用程序的正常执行。通过gc,jvm会将整理出来的内存分配给新的对象。

2022-09-02 16:07:33 385

原创 哈佛图书馆宣布永久收藏的程序员神书:793页Linux实战手记,GitHub点击量已超千万

我们知道Linux这玩意儿是在计算机上面运行的,所以说Linux就是一组软件。问题是这个软件是操作系统还是应用程序?Linux可以在哪些种类的计算机硬件上面运行?而Linux源自哪里?为什么使用Linux还不用花钱?这些我们都得先来谈—谈!免得下次人家问你,为什么复制软件不会违法时,你会答不出来!这本书是颇具知名度的 Linux书籍最新版,全面且详细地介绍了Linux操作系统。内容丰富全面,基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析。

2022-09-02 16:05:37 219

原创 飞书 Android 升级 JDK 11 引发的 CI 构建性能问题

本文从飞书 Android 升级 JDK 11 意外引发的 CI 构建性能劣化谈起,结合高版本 JDK 在 Docker 容器和 GC 方面的新特性,深挖 JVM 和 Gradle 的源码实现,抽丝剥茧地介绍了分析过程和修复方法,供其他升级 JDK 的团队参考。虽然最后解决了构建性能劣化的问题,但在整个引入问题-->发现问题-->分析问题的流程中还是有不少点可以改进。

2022-09-02 16:01:37 1290

原创 JAVA轻量级错误码设计最佳实践

目前公司团队项目中返回异常都没有错误码,如果遇到错误提示只会返回一个错误信息。随着微服务组件越来越多,这样给不同团队之间沟通交流、排查错误带来了极大的困难。于是在网上搜索了一番以后,决心要重新设计下错误码机制。本文主要讲解了错误码设计的方案,希望对大家有帮助,如果有更好的方案设计,也可以留言,一起成长提高。

2022-09-02 15:56:09 410

原创 吹爆,阿里P8MySQL优化笔记有多强?才在GitHub被BATJ联手封杀

对于想补习下自己调优内功,想跳槽进大厂的伙伴,希望大家抓住机会,抓紧时间提升!

2022-09-02 15:38:51 134

原创 这12款Idea插件,能让你代码飞起来

基本上每个程序员都会写代码,但写代码的速度不尽相同。为什么有些人,一天只能写几百行代码?而有些人,一天可以写几千行代码?有没有办法,可以提升开发效率,在相同的时间内,写出更多的代码呢?今天我跟大家一起聊聊在idea中,能提升编码效率的12种插件,希望对大家有所帮助。

2022-09-02 14:50:34 2967

原创 Kafka监控与指标解析-UnderReplicatedPartitions

1 Kafka监控2 指标采集和统计机制3 常见指标分析1 Kafka监控Kafka 使用 Yammer Metrics 在服务器中报告指标,Java 客户端使用 Kafka Metrics,这是一个内置的指标注册表. 两者都通过 JMX 公开指标启用JMX并上报指标Kafka 默认禁用远程 JMX,Kafka启动JMX方式在这里插入图片描述方式二:在启动脚本里面 对JMX_PORT 赋值,在增加一句在这里插入图片描述然后再启动脚本,JMX就会自动开启了方式三:在IDEA中启用JMX。...

2022-08-31 16:42:53 1963

原创 Spring Boot + Netty + WebSocket 实现消息推送

System.out.println(NettyServer.class + " 启动正在监听:" + cf.channel().localAddress());System.out.println(NettyServer.class + " 启动正在监听:" + cf.channel().localAddress());System.out.println("接收到的参数是:"+JSON.toJSONString(paramMap));ta.value = "Netty-WebSocket服务器。...

2022-08-31 16:26:11 175

原创 5000页?一份字节跳动Java面试全解手册发布,瞬间登顶各大搜索栏

返回成功结果对象。

2022-08-31 16:23:51 621

原创 代码简洁之道:统一返回格式

目前很多项目都是前后端分离,前后端会事先约定好返回格式。那么后端如何做,才能优雅的返回统一格式呢,接下来,请大家跟着我,一步步来实现。场景1:返回成功时code为200如果个别接口的返回格式与默认格式相同,但是要求code等于200时才代表成功,那么修改下successCode参数即可:TestVo testVo = new TestVo("张三", 30);}返回成功时,结果中的code和msg都变为设置的值:{"name": "张三",}}场景2:自定义返回格式。...

2022-08-31 16:20:13 524

原创 阿里新产MySQL性能优化实践笔记,GitHub已获千万推荐

数据库的性能优化首先是计算机系统的优化、其次是SQL语句的优化、最有效的是架构的优化。以上三种优化思路贯穿本书。

2022-08-31 16:18:05 373

原创 全面了解Java中的15种锁概念及机制。

CAS是英文单词(比较并交换),是一种有名的无锁算法。无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步()。CAS算法涉及到三个操作数1.需要读写的内存值 V2.进行比较的值 A3.拟写入的新值 B更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B,否则不会执行任何操作。一般情况下是一个自旋操作,即不断的重试。...

2022-08-31 16:04:49 200

原创 还在手写SQL实现?试试MyBatis-Plus同款IDEA插件吧,提示太全了,还能一键生成代码。

MybatisX是一款基于IDEA的快速开发插件,由MyBatis-Plus团队开发维护,为效率而生。支持mapper.xml和Mapper接口之间方法的互相导航跳转;内置代码生成器,通过使用GUI的形式,能根据数据库来生成Domain、mapper.xml、Mapper、Service和Service实现类代码;可以自定义代码生成器模板;可以通过类似JPA的方式,直接根据方法名称在mapper.xml中生成查询实现,同时支持提示。...

2022-08-31 15:51:51 349

原创 网络协议、并发、JVM、数据结构、算法、MySQL、Redis、SpringBoot、Dubbo、这些你都不会怎么进BAT

除此之外还有SpringCloud(31道)、Nginx(28道)、MQ(45道)、Dubbo(38道)、Kafka(12道)、ES(47道)、Linux(38道)等内容。但是从内容上来讲,涉及到的技术栈并不全面,内容上也不细致。索性结合今年20余家大厂“金三银四”的最新面试资料重新整合了一份。最后整理完,统计出来有24W个词,获取资料的方式放在文章最后了 等不及的小伙伴可以直接划下去获取!,毕竟结合今年最新的BATJ“金三银四”面试题,整理了一个月。...

2022-08-31 15:50:02 129

原创 SpringMVC 01: SpringMVC + 第一个SpringMVC项目

将前端请求的路径和web.xml中注册的可以给予处理的请求路径比对,如果请求路径满足请求的通配条件(先具有被处理的资格),请求被底层DispatcherServlet拦截处理。index.jsp DispatcherServlet SpringMVC的控制器是一个普通方法。one.jsp DispatcherServlet SpringMVC的控制器是一个普通方法。...

2022-08-31 15:28:23 159

原创 Springboot 是这样提高创建 docker 容器的效率的

小伙伴们好呀,今天来和大家聊聊这个Springboot 在为创建高效容器方面中做的一个改动。当然,写这篇文章也不是因为实际项目真的需要我去研究这东西,而是我在上篇文章《为什么SpringBoot可以直接运行 jar 包?》中留了坑 ,还有错误得纠正:pig2: (原文也稍微改了下,但是只能改20字 )这里应该改为用jarmode的extract参数会自动将jar包中的文件按layers.idx中的分层提取出来。本分就分享到这里了。了解了。...

2022-08-30 13:25:05 144

原创 重温经典,曾经风靡一时的阿里内网Redis开发参考手册

需要面试技巧的朋友可以点。

2022-08-30 13:22:05 386

原创 Springboot之Actuator信息泄露漏洞利用

Spring Boot Actuator 模块提供了健康检查,审计,指标收集,HTTP 跟踪等,是帮助我们监控和管理Spring Boot 应用的模块。这个模块采集应用的内部信息,展现给外部模块,可以查看应用配置的详细信息,例如自动化配置信息、创建的Spring beans信息、系统环境变量的配置信息以及Web请求的详细信息等。如果没有正确使用Actuator,可能造成信息泄露等严重的安全隐患(外部人员非授权访问Actuator端点)。...

2022-08-30 13:14:42 27708 1

原创 程序员必修课:阿里性能优化全解终开源,设计+代码+JVM三飞

性能优化可以说是我们程序员的必修课,如果你想要跳出CRUD的苦海,成为一个更“高级”的程序员的话,性能优化这一关你是无论无何都要去面对的。为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化。除了最常见的代码优化外,在软件架构上、JVM虚拟机层、数据库以及操作系统层面都可以通过各种手段进行调优,从而在整体上提升系统的性能。为了能让大家更好的入手性能优化,今天LZ为大家带来了一份阿里内部强推性能优化全栈小册,内容涵盖设计调优、代码调优、JVM调优。大家看了之后就知道,差距不止一点点!......

2022-08-30 11:55:26 105

原创 聊聊如何利用管道模式来进行业务编排

1、什么是管道模式管道模式不属于我们常说的23种设计模式中的一种,它可以看成是责任链模式的一种变体。所谓的管道模式用技术话来说,就是把数据传递给一个任务队列,由任务队列按次序依次对数据进行加工处理。2、什么样的场景适合用管道模式当业务流程比较复杂时,需要拆分成多个子步骤,且每个子步骤可以自由组合,替换,新增,删除的场景本文主要实现2种不同形式的管道模式,一种基于注解,编排步骤通过注解直接写在了执行器上,通过执行器去定位业务执行方法。另外一种是业务方法里面自己组合调用执行器。...

2022-08-30 11:37:48 163

原创 阿里为了双十一,整理亿级JVM性能优化文档,竟被GitHub“抢开”

我们可利用的 Java 性能分析工具箱更加丰富,譬如 Java 8 中仅作为商业功能提供的 Java Flight Recorder(JFR)和 Java MissionControl(JMC)在 Java 11 中都开放了源代码。与此同时,Java 垃圾回收技术也逐渐成熟,Java 1.3.1 之前仅支持 Serial GC,逐渐发展出了 Parallel GC 和 CMSGC,在 Java 8 中还是实验特性的 G1 也在 Java 11 中正式切换成了缺省的生产特性。五、垃圾回收简介、垃圾回收算法。.

2022-08-30 11:33:01 105

原创 SpringBoot整合minio分布式文件实操

在java web编程中,目前微服务体系的框架越来越流行了,随着服务的拆分,可能我们的项目的细粒度,会变得很细。一般的项目,基本上都会涉及到文件的存储。对于文件的存储,这个在微服务的体系下,我们可以将文件抽取出一个独立的文件微服务。然后提供相应的api(上传,下载,删除)等......对于独立的文件微服务,我们可以根据项目的需求,使用策略模式,整合多个文件服务器,例如:阿里云Oss、fastdfs、minio等。...

2022-08-30 11:21:39 1997

原创 ELK收集多个docker容器日志

现在很多公司都是用docker容器来运行服务,一台机器上会有很多个docker,docker容器里面的日志也需要收集分析,filebeat也有docker容器的日志收集方案。这次收集的docker容器日志不是那么细分的,虽然这个日志也是json格式,但是docker默认他们放在了一个value里。- "*" #如果只想收集一个容器的日志,就写一个容器的id号,如果想收集所有容器的日志则写*path: "/var/lib/docker/containers" #docker容器日志的路径。..

2022-08-27 13:05:20 657

原创 Seatunnel超高性能分布式数据集成平台使用体会

SeaTunnel是一个非常易用的超高性能分布式数据集成平台,在企业中由于开发时间或开发部门不通用往有多个异构的、运行在不同的软硬件平台上的信息系统同时运行;而一个有价值的数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享;SeaTunnel 支持海量数据的实时同步,它每天可以稳定高效地同步数百亿的数据,并已用于近100家公司的生产。最新版本为v2.1.3(作为下一代高性能、分布式、海量数据集成框架)...

2022-08-27 11:59:29 1430

原创 快速搭建 SpringCloud Alibaba Nacos 配置中心

Nacos 致力于帮助开发者发现、配置和管理微服务。它提供了一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。动态配置服务:动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。...

2022-08-27 11:53:39 164

原创 字节跳动3-3力荐,RabbitMQ实战指南:消息队列面试必刷手册

RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解。以熟悉的电商场景为例,如果商品服务和订单服务是两个不同的微服务,在下单的过程中订单服务需要调用商品服务进行扣库存操作。按照传统的方式,下单过程要等到调用完毕之后才能返回下单成功,如果网络产生波动等原因使得商品服务扣库存延迟或者失败,会带来较差的用户体验,如果在高并发的场景下,这样的处理显然是不合适的,那怎么进行优化呢?这就需要消息队列登场了。...

2022-08-27 11:52:25 141

原创 面试官说入职以后要参与重构Kafka内核,我吓的不敢接offer

有人说:他曾在一台配置较好的机子上对 Kafka 进行性能压测,压测结果是 Kafka 单个节点的极限处理能力接近每秒 2000万 条消息,吞吐量达到每秒 600MB。方法时,不会立刻把消息发送出去,而是缓存起来,选择恰当时机把缓存里的消息划分成一批数据,按批次发送给服务端。的“优先清除最近最少使用的页”这种策略,读取的时候,对于这种刚刚写入的。,有一个消费者:这个消费者要处理所有数据,即 3 个分区的数据。在消息写入时追求极致的顺序写,所有的消息不分主题一律顺序写入。...

2022-08-27 11:48:48 73

原创 首次公开,华为顶级团队合编300页Docker进阶手册,理论实战双收

在计算机技术日新月异的今天,Docker 也算是其中异常璀璨的一员了。它的生态圈涉及内核、操作系统、虚拟化、云计算、DevOps 等热门领域,受众群体也在不断扩大。Docker在国内的发展如火如茶,短短一两年时间里就陆续出现了一批关于Docker的创业公司。目前市场已经有一些不错的Docker入门图书,但多侧重于入门和具体的应用,本书会介绍一些Docker关键技术原理和高级使用技巧,适合有一定基础的读者。...

2022-08-27 11:46:19 85

原创 详细解读ThreadLocal的内存泄露

说到内存泄露,阿粉就得说一下,这个可能对于初中级的程序员来说,还是比较陌生的,为什么这么说,是因为,JVM 有自己的内存回收机制,所以对于初中级的程序员来说,很少有接触到这个的,而内存泄露的意思呢,就是为程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。使用最普遍的引用,一个对象具有强引用,不会被垃圾回收器回收。引用的话,其实分为了两类,既然有弱引用,那么必然的,就会有强引用,所以我们得区分开这个强引用和弱引用。...

2022-08-27 11:42:20 164

原创 Spring Cloud Gateway 网关限流

已经通过案例实现了通过。

2022-08-26 14:16:00 405

原创 Spring5源码11-容器刷新refresh方法(注解版)

首先需要明确,这里调用的 refresh() 方法是上下文,获取的实际类型是。首先我们来看整体代码, refresh() 的方法很清晰,因为他将所有的功能封装到了各个方法中。后面我们会来一一介绍这些方法。// 容器刷新的十二大步骤@Override// 容器启动的状态// 1.准备上下文环境,作用就是初始化一些状态和属性,为后面的工作做准备。/** 2. 工厂创建:BeanFactory 第一次开始创建的时候,有xml解析逻辑* 2.1、创建BeanFactory对象。...

2022-08-26 14:13:43 326

原创 Maven依赖解析之倍增提速,eBay Velocity实践的开源新算法

该算法起源于eBay Build Velocity的大量调优实践,我们通过打造Zeus系统收集数据,识别Maven Build的性能痛点,不断探索去解决用户问题,再到改造算法,不断测试,最后应用到eBay几千个项目并贡献回社区。也就是说, 在广度优先算法里,对于相同GA (GroupId + ArtifactId) 的依赖,第一个解析的肯定是winner,后面遇到的一定是冲突的loser。随着业务逻辑的增长,依赖会声明越来越多,间接依赖也呈几何级增长, 最终项目的依赖图变得非常复杂,并带来大量的冲突。...

2022-08-26 14:11:47 689 1

原创 Java 系语言测试覆盖率的半个解决方案

本文介绍了关于 JVM 语言的 web 应用,集成测试阶段,单一需求的覆盖率统计方法。对分子部分给出了解决方案,分母与除法部分给出了思路和经验、一个完整流程应该是:1.部署 remote-debug-agent 工具到被测系统。2.用虚拟机关闭钩子或 api 接口,保存覆盖率元数据到磁盘。在服务器上的程序版本没有变化的前提下,如果产生了多个覆盖率文件可根据 3 个 Map 的定义进行合并,可以节省不少的磁盘空间。3.需求代码发布集成环境,下发测试任务后,正常开展测试直到测试结束。...

2022-08-26 14:08:24 216

原创 腾讯T14开源的“Oracle与MySQL实战手册”看完被彻底惊艳了

本手册针对运维人员、DBA等相关工作者,不论你目前有没有遇到过此类问题,相信对你以后处理相关问题都会有所借鉴。本手册适合所有希望构建和管理高性能、高可用性的MySQL数据库系统与Oracle的开发者和DBA阅读。...

2022-08-26 14:06:12 158

原创 使用 Java 操作 Redis

RedisTemplate 的默认序列化方式,序列化对象需实现 Serializable 接口,绝大多数情况下,不推荐使用该方式,因为这种方式序列化之后保存的是字节序列,对阅读不友好。,两者都是使用 Jackson 实现 JSON 的序列化方式,不同的是,前者必须在构造序列化对象时传入对象的类型,后者则不需要,并且序列化时将对象类型也保存了。,StringRedisTemplate 的默认序列化方式,这种实现方式比较轻量与高效,但只能对字符串序列化,无法对普通对象序列化。// 修改 key 序列化方案。..

2022-08-26 14:02:29 135

原创 阿里SpringCloudAlibaba实战小抄(第五版)GitHub独家首发开源

很多人认为好的解决方案是设计出来的,的确有很多优秀的解决方案是根据设计稿或优秀论文指导而实现的,但也有很多解决元案并非是最初设计的那个,而是由业务、技术 需求等因素驱动发展而成的需要面试技巧资料的朋友点。...

2022-08-26 14:01:29 111

原创 怒冲GitHub榜首,京东T8幕后打造高并发面试手册,狂虐阿里面试官

近年来在大厂的面试中,高并发不但占比较多,而且已经不局限于并发工具的使用,更多的会深入到底层实现原理,这样能考察候程序员的内功,看其是否能知其所以然。关于市面上关于Java并发编程的资料感觉有些知识点不是很清晰,于是展开了对Java并发编程原理的讨论。在这收集整理了这份Java并发系统设计手册,分享给大家。说明:文章限于篇幅,只做部分展示,完整的《高并发系统设计》文档小编已经整理好了,需要面试技巧的朋友点——【思维导图】——即可免费获取!高并发系统:它的通用设计方法是什么?...

2022-08-26 13:52:56 293

原创 红黑树以及JAVA实现

红黑树是一种特殊的B树是B树种2-3-4树的一种特殊实现,红黑树保证了每个节点只会有两个子节点,通过对每个节点进行染色,然后通过不同颜色的节点组合来分别代表2-3-4的2节点、3节点、4节点树的情况。在学习红黑树之前,我们需要先去了解2-3-4树。红黑树,本质上其实就是将一个B树(我们这里讨论2-3-4树)转化为一个二叉树。那么如何去转化的同时又能继承B树绝对平衡性呢?答案就是通过染色和旋转,到这里打住,让我们先来看红黑树的定义所有的节点不是黑色就是红色根节点是黑色的所有叶子节点是黑色的。...

2022-08-26 13:45:25 1432

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除