- 博客(22)
- 收藏
- 关注
转载 Spring Cloud与Docker高并发微服务架构设计实施免费领取
本书的读者对像为广大的Java开发者、系统架构师和系统运维人员。使用过Spring开源框架或具有Spring框架基础知识的广大用户群体。本书由三部分组成:第一部分 架构篇第二部分 开发篇喜欢这篇文章的 帮忙三连,收藏转发关注一下 可私聊小编【微服务架构】免费获得...
2022-02-25 20:51:20
213
原创 掌握JVM面试专题20道题和答案Offer拿到手软
前言:巴拉巴拉,阿巴阿巴巴的开始1. 内存模型以及分区,需要详细到每个区放什么。JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class 类信息常量池(static 常量和 static 变量)等放在方法区new:· 方法区:主要是存储类信息,常量池(static 常量和 static 变量),编译后的代码(字节码)等数据· 堆:初始化的对象,成员变量 (那种非 static 的变量),所有的对象实例和数组都要在堆上分配· 栈:栈的结构是栈帧组成的
2022-02-25 17:27:57
202
原创 Java最前沿技术——ZGC,一个超乎想象的垃圾收集器
ZGC介绍ZGC(The Z Garbage Collector)是JDK 11中推出的一款追求极致低延迟的实验性质的垃圾收集器,它曾经设计目标包括:停顿时间不超过10ms; 停顿时间不会随着堆的大小,或者活跃对象的大小而增加; 支持8MB~4TB级别的堆(未来支持16TB)。当初,提出这个目标的时候,有很多人都觉得设计者在吹牛逼。但今天看来,这些“吹下的牛逼”都在一个个被实现。基于最新的JDK15来看,“停顿时间不超过10ms”和“支持16TB的堆”这两个目标已经实现,并且官方明确指
2022-02-24 19:25:01
1451
1
原创 从MVC架构角度来讲解如何演进到DDD架构
DDD这几年越来越火,资料也很多,大部分的资料都偏向于理论介绍,有给出的代码与传统MVC的三层架构差异较大,再加上大量的新概念很容易让初学者望而却步。本文从MVC架构角度来讲解如何演进到DDD架构。从DDD的角度看MVC架构的问题代码角度:瘦实体模型:只起到数据类的作用,业务逻辑散落到service,可维护性越来越差; 面向数据库表编程,而非模型编程; 实体类之间的关系是复杂的网状结构,成为大泥球,牵一发而动全身,导致不敢轻易改代码; service类承接的所有的业务逻辑,越来越臃肿,很容
2022-02-24 15:09:18
420
原创 涨薪神作,阿里内部火爆的实战文档和搭建项目笔记,你还怕没有项目可做吗
前言认识一个事物最好的方式就是首先去了解它的历史。随着Spring功能的不断丰富,版本的不断迭代发展,Spring 框架渐渐暴露出了一些问题和弊端。例如太多样板化的配置、繁琐复杂的使用过程等,我们不仅需要维护程序代码,还需要额外去维护相关的配置文件。Spring 项目的配置越来越复杂,让人难以承受。大量的XML配置以及复杂的依赖管理使得人们不得不去解决这个问题一Spring Boot由此应运而生。Java的Spring Boot框架技术就像搭积木一样简单、愉悦。并且,各大企业都在广泛应用它,Ja
2022-02-23 20:37:06
674
原创 测试开发大厂面试精选40题
1)什么是性能测试?答案:系统在一定的压力情况下,查看cpu,内存,磁盘,网络带宽,TPS、响应时间、并发用户数、等各项指标,通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求,就是在特定的运行条件下验证系统的能力状况。2)什么是负载测试?答案:负载测试主要是考察软件系统在既定负载下的性能表现。就是站在用户的角度去观察一定条件下软件系统的性能表现。期望结果是用户的性能指标需求得到满足。性能指标一般体现为响应时间、并发量等。3)性能测试包含的方法有哪...
2022-02-23 19:46:52
3116
原创 线上接口经常超时,我用线程池+ FutureTask解决了
解决方案用线程池+ FutureTask将1个查询拆分成多个小查询 选择FutureTask是因为它具有仅执行1次run()方法的特性(即使有多次调用也只执行1次),避免了重复查询的可能。而且多任务异步执行也能提高接口响应速度。本文主要讲的是线程池搭配FutureTask异步执行的例子一、线程池+FutureTask执行多任务计算public class Test { //线程池最好作为全局变量, 若作为局部变量记得用完后shutdown() ThreadFactory namedTh
2022-02-23 16:13:34
440
原创 Java提供了哪些IO方式? NIO如何实现多路复用? -
简述同步阻塞IO库:传统的java.io包下面一些熟知的IO功能,比如File抽象,输入输出流等,交互方式是同步阻塞。java.net下面提供的部分网络API,比如Socket、ServerSocket、HttpURLConnection; 1.4引入的NIO,提供了Channel、Selector、Buffer等新的抽象,可以用于构建多路复用的、同步非阻塞IO,同时提供了更接近OS底层的高性能数据操作方式; java7引入的异步非阻塞AIO,基于事件和回调机制。知识点扩展相关知识...
2022-02-23 16:06:00
267
原创 控制你的DTO数据结构
文中的想法最适用于实现(复杂)业务规则、状态转换并将其数据保存到某个数据库的后端应用程序。复杂的逻辑应该在您可以完全控制内部域模型的数据结构上实现,您可以根据问题对其进行定制以简化代码。这是本文中使用的术语定义的(自以为是的)列表:领域= 要保留应用程序逻辑中最复杂部分的代码区域。任何架构的目标都是清理实现系统基本复杂性的环境。 数据传输对象 (DTO)= 跨系统边界移动的对象,例如,编组为 JSON、XML 或二进制格式。 API= 系统的入口点(REST 端点或消息队列)以及所...
2022-02-23 15:55:14
209
原创 PYTHON的数据结构和算法介绍
当你听到数据结构时,你会想到什么?数据结构是根据类型组织和分组数据的容器。它们基于可变性和顺序而不同。可变性是指创建后改变对象的能力。我们有两种类型的数据结构,内置数据结构和用户定义的数据结构。什么是数据算法-是由计算机执行的一系列步骤,接受输入并将其转换为目标输出。内置数据结构列表列表是用方括号定义的,包含用逗号分隔的数据。该列表是可变的和有序的。它可以包含不同数据类型的混合。months=['january','february','march','april','may','
2022-02-23 15:50:49
513
原创 深度好文 图解 RocketMQ 的系统架构
今天给大家分享一篇学习 RocketMQ 系统架构核心知识点的梳理和总结,在讲解时力求精简、通俗易懂,通过图解来给正在学习 RocketMQ 的小伙伴带来帮助。RocketMQ 是阿里巴巴的分布式消息中间件,在 2012 年开源,在 2017 年成为 Apache 顶级项目。1 集群架构RocketMQ 的集群架构如下图:从上图可以看到,整个集群中有四个角色:Name Server集群、Broker主从集群、Producer、Consumer。1.1 Name Server 集群.
2022-02-23 15:37:39
5806
原创 排查CPU使用过高问题操作详解,三招助你找出问题
背景对于系统运行越来卡顿,响应越来越慢的问题,绝大多数情况是程序本身问题造成的,掌握相关问题的排查和定位尤其重要。现象使用top命名查看目前服务所占cpu情况:通过信息,可以看到有个进程占用CPU过高,接下来排查系统代码中哪些逻辑导致CPU过高。步骤第一步:通过ps命令查看这个程序的线程信息。执行命令:ps -mp 27291-o THREAD,tid,time属性介绍:tid代码线程ID,time代表这个线程的已运行时间,27291为对应pid的值。
2022-02-23 15:34:20
6487
原创 布隆过滤器的原理和使用场景详解
什么是布隆过滤器?布隆过滤器是一种数据结构,特点是高效的插入和查询,而且非常节省空间。通过对位(bit)的操作,可以用来告诉你”某个值一定不存在或者可能存在“。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是 hash 碰撞造成的误判。场景一般使用较多的场景就是避免缓存穿透,具体场景就是:在使用 Reids 做数据缓存的时候,很有可能会遇到一个问题:用户想要查询一个数据,发现 redis 缓存没有命中,于是向数据库查询。发现也没有,于是本次查询失败。当用户很
2022-02-23 14:53:58
6320
原创 来年,你想凭Java技术,多赚几万小钱么?就这……
Java 程序员有多少种凭技术变现的方式?各种加班,累得像个牲口,拿工资? 能力提升,晋级百万年薪架构师岗? 外包接单? 写技术公众号、博客、知识星球等卖教程? 做企业内训,分享技术&管理解决方案? ……圈内,不少开发的朋友,都凭过硬的技术在做各种各样的变现,有想赚点儿钱买房买车的、想结婚的、给娃赚奶粉钱的……天经地义的事儿,生活嘛,总是要美滋滋的。有个问题,很多干了3年开发的朋友,居然很轻易就转行了,可能是干不下去了!都明白,说到底,就是遇到能力瓶颈了,连在公司内部的晋
2022-02-22 22:47:26
257
原创 Redis热点Key发现及常见解决方案总结
一、热点Key问题产生的原因1、用户消费的数据远大于生产的数据(热卖商品、热点新闻、热点评论、明星直播)。在日常工作生活中一些突发的的事件,例如:双十一期间某些热门商品的降价促销,当这其中的某一件商品被数万次点击浏览或者购买时,会形成一个较大的需求量,这种情况下就会造成热点问题。同理,被大量刊发、浏览的热点新闻、热点评论、明星直播等,这些典型的读多写少的场景也会产生热点问题。2、请求分片集中,超过单 Server 的性能极限。在服务端读数据进行访问时,往往会对数据进行分片切分,此过程中会
2022-02-22 22:37:02
2787
原创 Java环境变量配置详解
Java环境变量配置文章目录Java环境变量配置 1.下载jdk 2.安装jdk 2.1 单击exe文件安装(一路下一步) 2.2安装成功 3.配置环境变量 3.1找到环境变量配置页面 3.2点击环境变量进行如下设置(所有的设置都在系统变量中设置) 新建环境变量 2.配置JAVA_HOME 4.检查是否成功 5.jdk配置成功
2022-02-22 22:05:51
1583
原创 SpringBoot中的内容协商,颠覆你的认知
本文将介绍 SpringMVC 中内容协商,可能有朋友听过,没听过的估计觉得很陌生,不管怎么样,先告诉你一点,这篇是非常重要的一个知识点,一定不要错误,坚持看完,一定会有大量收获,目录1、预备知识 2、先来做一个测试 2.1、测试场景 1 2.2、结论 1:返回值受服务器端的影响 2.3、测试场景 2 2.4、结论 2:返回值受客户端 Accept 头的影响 2.5、小结 3、为什么会这样? 3.1、这是由内容协商决定的 3.2、带来了 2 个问题 4、客户端如
2022-02-22 21:57:13
1350
原创 疯狂Java讲义笔记整理
目录一、基础类型 二、流程控制与数组 三、面向对象 四、基础类库 五、集合 六、泛型 七、异常 八、数据库 九、注释 十、输入输出 十一、网络 十二、类加载机制 十三、多线程面向对象三大特性:封装、继承、多态一、基础类型char, int, short, long, byte, float, double, boolean 基本类型的类型转换(自动与强制、补码,反码与原码) 逻辑运算符(不短路与&,和&&; | 和|| 两个的只执行最少比较,
2022-02-22 21:53:52
739
原创 大型互联网公司Nginx通关秘籍
1. Nginx简介1.1 Nginx 概述NGINX是一个免费、开源、高性能、轻量级的HTTP和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。 Nginx 因为它的稳定性、丰富的模块库、灵活的配置和较低的资源消耗而闻名 。目前应该是几乎所有项目建设必备。 Nginx由内核和一系列模块组成,内核提供web服务的基本功能,如启用网络协议,创建运行环境,接收和分配客户端请求,处理模块之间的交互。Nginx的各种功能和操作都由模块来实现。Ngi...
2022-02-22 21:46:17
367
原创 面试必备,MySQL InnoDB MVCC机制
MySQL InnoDB MVCC机制吐血总结谈到MySQL事务,必然离不开InnoDB和MVCC机制,同时,MVCC也是数据库面试中的杀手问题,写这篇总结的目的,就是为了让自己加深映像,这样面试就不会忘记了。在搜索时发现关于MVCC的文章真的是参差不齐(老子真的是零零散散看了三个月都迷迷糊糊),所以这里集合了各家所言之后进行了自我总结,苦苦研究了许久,才得到的比较清晰的认知,这可能也是我目前最有深度的一篇博客了把,希望对我和看到的人都有所帮助,哈哈。MVCC: Multiversion C...
2022-02-22 21:30:07
359
原创 从Java开源框架中学习设计模式
前言设计模式是软件设计中常见问题的典型解决方案,你可以通过对其进行定制来解决代码中的特定设计问题。关于设计模式,网上有很多讲解。但大部分都是Demo示例,看完有可能还是不知道怎么用。本文笔者将从设计模式入手,看一看在优秀的Java框架/中间件产品中,不同的设计模式应用场景在哪里。一,单例模式单例模式是Java中最简单的设计模式之一,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对...
2022-02-22 21:23:28
210
转载 你真的知道什么是多线程吗?为什么要学习多线程?
1、多线程的含义2、原理3、优势4、线程与进程的区别5、线程与多线程的区别6、线程调度 的分类7、同步与异步8、并发与并行9、为什么要使用线程池10、线程池的好处11、线程池的分类12、意义1、多线程的含义多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包阔对称处理机、多核心处理器以及芯片级多处...
2022-02-22 21:18:20
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人