自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 JVM内存架构和GC算法基础

JVM内存管理(堆、栈和元空间)和不同垃圾收集算法概述本文讨论了JDK8的基本概念以及使用堆和堆栈内存的向上内存管理。GC及其算法的基础知识。内存管理的重要性Java垃圾收集器不能确保堆内存完全空闲,而且对于开发人员来说,也不可能强制垃圾收集器在特定的时间运行。所以了解Java中的内存管理是如何工作的是很有帮助的。了解内存管理有助于编写优化的内存高效代码,并有助于避免程序中任何与内存相关的问题,这些问题会导致应用程序变慢,并有助于避免以下错误StackOverFlowError和OutOfM

2022-03-21 19:19:41 365

转载 每个Java开发人员应该知道的关于线程、可运行线程和线程池的知识

关于Java中线程、Runnable和线程池概念的最重要的信息,带有清晰的例子、信息图表和解释。多线程是Java中最复杂也是最大的部分多线程章节是Java中最难理解和使用的。不幸的是,没有那么多的来源可以让你得到所有的答案。同时,并发知识非常重要。在本文中,我解释了每个Java开发人员都必须知道的多线程的核心方面。在这一部分,我们从线程和Runnable主题开始。为什么并发知识如此关键?没有好的多线程知识,你不可能得到高级Java工作多线程知识几乎肯定是高级Java职位面试的主题。无论有

2022-03-21 19:18:15 244

原创 Java中的多态和动态绑定

了解Java中的多态性和两种类型:编译时和运行时。另外,我们看看如何实现静态和动态绑定的演示。多态是一个面向对象的编程概念。无论您是Java编程新手,还是使用Java多年的人,您都应该知道Java中的多态性是什么,以及它是如何工作的。大多数开发人员声称他们非常了解这个主题,但是当涉及到静态和动态绑定等其他复杂特性时,他们似乎不够自信。对多态性的良好理解允许我们构建高效的面向对象程序。Java中的多态性是什么?多态性由两个词组成:Poly:意思是“很多” 态射:意为“形式”因此,多态性意味

2022-03-20 20:02:17 688

原创 使用Lombok @Builder的方法生成器

在本教程中,我们将探索使用Lombok的@Builder注释生成方法构建器的各种可能性,以提高可用性。概观在本教程中,我们将探索用Lombok生成方法构建器的可能性@Builder注释。目的是通过提供一种灵活的方式来调用一个给定的方法来提高可用性,即使它有很多参数。@基于简单方法的构建器如何为方法提供灵活的用法是一个普遍的话题可能接受多个输入。看一下下面的例子:void method(@NotNull String firstParam, @NotNull String secondP

2022-03-20 17:13:34 1244

原创 《对线面试官》多线程基础

面试官:首先你来讲讲进程和线程的区别吧?候选者:进程是系统进行资源分配和调度的独立单位,每一个进程都有它自己的内存空间和系统资源候选者:进程实现多处理机环境下的进程调度,分派,切换时,都需要花费较大的时间和空间开销候选者:为了提高系统的执行效率,减少处理机的空转时间和调度切换的时间,以及便于系统管理,所以有了线程,线程取代了进程了调度的基本功能候选者:简单来说,进程作为资源分配的基本单位,线程作为资源调度的基本单位面试官:那我们为什么要用多线程呢?你平时工作中用得多吗?候选.

2022-03-20 16:58:00 288

原创 java程序员找工作前需要做什么准备?

找工作前需要准备的杀手锏高考前,我们要练兵考试和集训。”临阵磨枪不快也光 ”,找工作前,我们也必须要花很多精力去完成一些必要的准备。 “不打无准备之仗”, 精心准备和训练会对你有相当正面的作用。有人认为“找工作要靠能力”。这话没错,我要说的是,“临阵磨枪准备的内容也是能力的一部分”。 找工作其实是结果导向的一个事情,而不是过程导向。小A和小B技术实力差不多, 小A经过精心的准备和策划,获得的机会显然要远远多于小B。也许一个机会,就能完全将小A的命运改变了。1.职场的十大基本素..

2022-03-20 16:38:08 412

原创 招聘程序员的内情你了解吗?

1.面试和相亲面试其实本质上是一个交流的过程,它跟你去相亲本质完全一样。那么,把握面试官的心理状态,从面试官的角度出发思考问题,将是你可以顺利收到offer的关键。如果你知道面试官的动机,就可以建立共通点,很容易就能恰当地回应问题。从而为你的面试加分、添彩。相亲时,你期望碰到美女的渴望和美女期望碰到白马王子的渴望,二者的“渴望程度”完全是一样的。 那么,你如果是男方,你需要做的事情就是“包装”自己,让自己显得比实际上“更高,更富,更帅”,接近女方的心中白马王子的高度,越接近越容易成功。这个过程也

2022-03-20 16:35:38 161

原创 学习Java对网络安全的重要性

Java是应用程序(包括网络安全)最常用的编程语言之一。在这篇文章中,学习为什么Java对于保护网页设计很重要。随着新一代威胁的出现,Java已经成为包括网络安全在内的应用程序最常用的编程语言之一。如果您对应用程序开发感兴趣,您会知道Java在日常生活中无处不在。了解这种语言对从事网络安全工作很有帮助。也就是说,不仅要学习如何阅读和编程Java,还要学习它在网络安全领域的价值,这一点至关重要。这将使您比黑客和其他恶意方领先一步。这就是为什么学习Java是网络安全至关重要的一步。Java对于网络安

2022-03-20 16:33:20 1079

原创 Java Optional是如何随时间演变的

如果你对特定特性何时被引入可选API感兴趣。在这里你可以找到它从Java 8到现在的演变的描述。Why Does OJava中甚至有选项?这里,原因很简单。在许多现代编程语言中,有一个特性(或者一个bug,取决于你怎么想)叫做“十亿美元的错误或者空指针引用。对于Java,它允许NullPointerException发生。NPE是最常见的运行时异常之一。它往往会出现在我们代码库中最意想不到和最不想要的地方,给我们和我们的客户带来很多麻烦。在Java 8之前,处理它们的唯一方法是使用“if lad

2022-03-20 16:28:59 87

转载 不同格式的高性能Java序列化

​如何以比Java标准序列化更高的性能将对象序列化和反序列化为二进制格式Java序列化是一种流行的机制,可以序列化和反序列化复杂的对象图;例如,对象A可以包含对对象B的引用,而对象B又包含对对象A的引用。问题是这种丰富的功能是以性能为代价的。但是,如果您不需要序列化这些类型的递归图,您可以使用一个名为Chronicle Wire的开源解决方案。它降低了复杂性,并使用树状结构,这使得它非常有效。此外,它可以支持许多不同的格式,而无需更改您的代码。本文涵盖了序列化的基础知识,并讨论了Chronicle Wi

2022-03-20 16:18:16 305

转载 Java:奄奄一息还是比以往更有活力?

许多人说Java的辉煌时代即将结束。那么,这是否意味着改变个人资料是值得的,还是所有这些言论都只是无风不起浪?介绍经常可以听到“Java正在消亡”的说法,所有现代人都应该尽快改用Go这样的现代语言。他们说这对他们来说会很好,但对每个人都要放弃的旧语言来说会很糟糕。但这是真的吗?你可以在“死前”陈述中看到两种不同的变体。有些人毫不夸张地说“Java正在消亡”:这种语言流行的时代已经过去,需要它的人越来越少,剩下的人也即将放弃它。也有人认为,Java在普及性上可能还行,但技术上它还停留在上个世纪,.

2022-03-20 16:01:17 82

原创 《对线面试官》JavaNIO

面试官:这次咱们就来聊聊Java 的NIO呗?你对NIO有多少了解?候选者:嗯,我对Java NIO还是有一定的了解的,NIO是JDK 1.4 开始有的,其目的是为了提高速度。NIO翻译成 no-blocking io 或者 new io 都无所谓啦,反正都说得通面试官:你先来讲讲NIO和传统IO有什么区别吧候选者:传统IO是一次一个字节地处理数据,NIO是以块(缓冲区)的形式处理数据。最主要的是,NIO可以实现非阻塞,而传统IO只能是阻塞的。候选者:IO的实际场景是文件IO和网络IO,NI

2022-03-18 17:38:23 174

原创 《对线面试官》泛型

面试官:这次咱们就来聊聊泛型呗?你对泛型有多少了解?候选者:在Java中的泛型简单来说就是:在创建对象或调用方法的时候才明确下具体的类型候选者:使用泛型的好处就是代码更加简洁(不再需要强制转换),程序更加健壮(在编译期间没有警告,在运行期就不会出现ClassCastException异常)面试官:平时在工作中用得多吗?候选者:在操作集合的时候,还是很多的,毕竟方便啊。List<String> lists = new ArrayList<>();lists.ad

2022-03-18 17:28:47 205

原创 《对线面试官》注解

面试官:来讲讲什么是注解吧候选者:注解在我的理解下,就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相对应的处理。面试官:你这讲得有点抽象,你先说说你在开发中有没有用到注解吧。候选者:注解其实在开发中是非常常见的,比如我们在使用各种框架时(像我们Java程序员接触最多的还是Spring框架一套),就会用到非常多的注解,@Controller / @Param / @Select 等等。一些项目也用到lombok的注解,@Slf4j / @Data 等等候选者:除了框架实

2022-03-18 17:17:07 273

转载 在Spring中使用GraphQL Java

这篇博客文章将介绍如何在Spring应用程序中使用GraphQLJava,该应用程序公开了供客户端发送查询的端点。GraphQL Java是我发现的最流行的用于Java的GraphQL服务器端实现之一(在编写本文时有超过5k的星星)。如果您计划从Java或JVM应用程序公开GraphQLAPI,那么这是一个很好的开始使用的库。这篇博客文章将介绍如何在Spring应用程序中使用GraphQLJava,该应用程序公开了供客户端发送查询的端点。GraphQL Java确实有自己涉及这一主题的正式文

2022-03-18 16:45:37 733

原创 Java中的多重继承

自从Java 8引入默认接口方法以来,我就觉得必须有一种方法来使用它来进行多重继承。所以决定尝试以下想法:创建一个非公共类。XData要保存接口需要处理的字段,以及一个公共接口X同X.java源文件 接口有一个虚拟方法。getXData()返回XData实例 其余的接口方法是默认的方法,这些方法调用getXData()根据需要读写字段,以执行一些有用的操作。 创建另一个接口Y和阶级YData以同样的模式 创建一个类XY实现这两个接口的X和Y 全班XY有XData和YData字段,这些字段由g.

2022-03-18 14:34:04 1804

原创 如何从Log4j漏洞检测和保护Java应用程序

ApacheLog4j是Java开发人员流行的开源日志库,最近遇到了一个与安全相关的大规模漏洞。由于它的普及,许多组织都受到了这一漏洞的影响。有关最新消息,请参阅网站关于特定的问题和补丁。这里是另一篇详细解释核心问题的文章。Log4j版本2.x中发现的安全问题列表:CVE-2017-5645ApacheLog4j套接字接收器反序列化漏洞(严重性-中度) CVE-2020-9488:Apache Log4j SMTP Appder中存在主机不匹配的证书验证不当(严重性-低) CVE-2021-..

2022-03-18 14:07:05 404

原创 java并发与多线程

Java平台旨在支持并发编程中的基本并发支持Java编程语言和Java类库。在编写新代码或与团队进行代码评审时,我们经常考虑并发性吗?一个小bug可能会导致对生产问题进行没完没了的调试应用程序,而这个问题并不容易在本地复制。为什么我们需要并发编程?我们所处的时代是用配备多核CPU的机器工作的.您交付的代码应该优化以在这样的机器上运行,充分利用硬件。在设计并发系统时,不应干扰在CPU上运行的其他进程。我们希望我们的应用程序在不影响其他进程的情况下在它自己的黑匣子中运行。现在我们有了多核CPU,可以很容易地

2022-03-18 13:46:17 238

原创 JPA实体中客户端生成ID的最终指南2

在客户端生成ID并不像看起来那么简单。在JPA和Hibernate中,我们可以使用UUID、自定义策略和专用ID生成服务器。在客户端而不是数据库中生成ID是分布式应用程序的唯一选择。但是在这样的应用程序中生成唯一的ID是很困难的。正确地生成它们非常重要,因为JPA将使用ID来定义实体状态。最安全的选择是使用UUID和Hibernate的生成器,但是从自定义生成器到专用ID生成服务器有更多的选项。在前一篇文章我们讨论了JPA实体的服务器生成ID。本文中描述的所有ID生成策略都基于一个基本原则:只有一.

2022-03-18 13:37:09 551

原创 JPA实体中数据库生成ID的最终指南1

只需用@ID注释JPA实体的ID字段,并允许DB关心其余的!在某些情况下,缺省值应该改变。在本文中,我们将看到更改ID生成策略会如何影响应用程序的性能。根据JPA规范,Entity是满足以下要求的Java类:带注释@Entity注记 没有args构造函数。 不是最终的 具有带注释的ID字段(或多个字段)@Id如您所见,需要ID。那是为什么?我们为什么要在JPA实体中使用ID呢?JDBC和关系数据库不需要表的主键或唯一键。在使用JDBC时,我们使用自己的语言--原生SQL查询与数据库.

2022-03-18 13:33:23 1323

原创 写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

环境准备首选说在前面的是,编译前的软件版本关系极其重要,自己在踩坑时,所出现的各种奇奇怪怪的问题几乎都和这个有关,后来版本匹配之后,就非常顺利了。我们来盘点和梳理一下编译一个JDK需要哪些环境和工具:1、boot JDK我们要想编译JDK,首先自己本机必须提前已经安装有一个JDK,官方称之为bootstrap JDK(或者称为boot JDK)。比如想编译JDK 8,那本机必须最起码得有一个JDK 7或者更新一点的版本;你想编译JDK 11,那就要求本机必须装有JDK 10或者11。

2022-03-14 22:21:28 495

原创 不理解 Java Steam?一步步梳理其工作方式

Java Stream 已经出现很长时间了,但很多Java程序员还是不理解它的工作方式。不会 Stream 不要紧,我们开发的时候可以不用 Stream,但理解 Stream 是咋回事还是非常必要的,至少得能看懂别人代码中的 Steam 是吧。下面就通过一段代码,逐条说明每行代码的含义,然后再对照一下不使用 Stream 的用法,之后就可以轻松理解 Stream 的用法了。1. Stream 示例代码解析这段 Stream 代码共有 5 行,下面看每一行都是什么意思。第1行第

2022-03-14 22:11:14 177

原创 关于 Java 类加载器的这一点,市面上没有任何一本图书讲到

一、一个程序员的思考大家都知道,Tomcat 处理业务,靠什么?最终是靠我们自己编写的 Servlet。你可能说你不写 servlet,你用 spring MVC,那也是人家帮你写好了,你只需要配置就行。在这里,有一个边界,Tomcat 算容器,容器的相关 jar 包都放在它自己的 安装目录的 lib 下面; 我们呢,算是业务,算是webapp,我们的 servlet ,不管是自定义的,还是 spring mvc 的DispatcherServlet,都是放在我们的 war 包里面 WEB-INF/li

2022-03-14 21:56:12 109

原创 HashMap实现原理

HashMap是数组+链表实现的,既然用到hash散列,那么肯定不可避免的会出现冲突问题,HashMap解决冲突的方法是拉链法,因为这里有用到数组,那么当容量不足的时候就需要进行扩容操作了,在HashMap中有个术语叫冲突,当冲突几率越来越高的时候就需要进行扩容操作了,那什么情况就叫冲突几率高呢?就是当我们的数组元素个数超过了数组原先大小*装填因子,默认情况下的装填因子是0.75,扩容有个坏处就是每次扩容之后都必须重新计算原先数组中的元素在新数组中的存储位置,这点比较消耗性能,所以一般情况下如果你已经能..

2022-03-12 21:22:17 302

原创 史上最全的 Spring面试题大全含答案共79题

1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们 面向切面的编程(

2022-03-12 21:12:15 738

原创 [javase高级] 15个Java线程并发面试题和答案

1. 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?这个线程面试题通常在第一轮面试或电话面试时被问到,这道多线程问题为了测试面试者是否熟悉 join 方法的概念。答案也非常简单——可以用 Thread 类的 join 方法实现这一效果。2. Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。多线程和并发编程中使用

2022-03-12 21:02:00 67

原创 “卧槽”用好组合索引,性能提升10倍不止

相信各位在面试时,通常会被问到“什么是索引?” 而你肯定可以脱口而出:索引是提升查询速度的一种数据结构。而索引之所以能提升查询速度,在于它在插入时对数据进行了排序。在实际业务中,我们会遇到很多复杂的场景,比如对多个列进行查询。这时,可能会要求用户创建多个列组成的索引,如列 a 和 b 创建的组合索引,但究竟是创建(a,b)的索引,还是(b,a)的索引,结果却是完全不同的。今天,我们就来聊聊更贴近业务实战的组合索引,一起来感受一下组合索引的威力。(当然咯,文章中讲的索引指的是B+树索引,就是那个矮胖子

2022-03-11 21:24:09 1233

原创 Restful API 如何进行版本控制 ? 这4种方法你要掌握

通过此文您将学到 为什么我们需要对RESTful API 进行版本控制? 可用的版本控制有哪些? 如何实现基于 Restful 的版本控制? 为什么我们需要对RESTful API进行版本化最好的版本控制方法是不进行版本控制。只要不需要版本控制,就不要版本控制。“构建向后兼容的服务,以便尽可能避免版本控制!”然而,在许多情况下我们都需要进行版本控制,然我们看看下面具体的例子:最初,你有个这个版本的Student服务,返回数据如下:{"name"..

2022-03-11 20:51:36 762

原创 使用Java执行mTLS调用

在本教程中,我们将学习如何通过使用不同的客户端使我们的Java应用程序能够使用mTLS。我们将使用将mTLS添加到Nginx实例的现有示例。假设我们有一个Nginx实例,使用SSL还有。如果使用Java与使用mTLS保护的服务进行交互,则需要对代码库进行一些更改。在本教程中,我们将使Java应用程序能够使用不同客户端的mTLS。要快速入门,我们可以使用现有的示例添加MTLS一个Nginx实例。我们的java mTLS配置将使用用于将mTLS添加到Nginx的证书和密钥。为了为我们的Java客户端

2022-03-04 20:16:04 1112

原创 用Java流进行分组和聚集

学习使用JavaStreams解决问题的简单方法,这是一个允许我们快速有效地处理大量数据的框架。当我们从列表中对元素进行分组时,我们可以随后聚合分组元素的字段,以执行有意义的操作,帮助我们分析数据。一些例子是加法、平均值或最大值/分钟值。这些单个字段的聚合可以很容易地使用Java流和收集器来完成。文档提供了如何进行这些类型计算的简单示例。然而,还有更复杂的集合,如加权平均数、几何平均值。此外,可能需要同时对几个字段进行聚合。在本文中,我们将展示使用Java流解决这类问题的简单途径。使用该框架,我们可

2022-03-02 15:54:54 1698

原创 不寻常的 Java:StackTrace 扩展了 Throwable

在 Java 中你可以做一些你很少看到的事情,通常是因为它没有用处。但是,Java 中有一些不寻常的东西可能会非常有用。Chronicle Software在其低级库中使用了许多不同的常用模式,大多数开发人员通常不会遇到。其中之一是扩展 Throwable 但不是错误或异常的类。StackTrace 扩展了 Throwablepackage net.openhft.chronicle.core;/*** Throwable created purely for the purposes

2022-03-02 15:15:16 304

原创 Java高性能本地缓存框架Caffeine

一、序言Caffeine是一个进程内部缓存框架,使用了Java 8最新的[StampedLock]乐观锁技术,极大提高缓存并发吞吐量,一个高性能的 Java 缓存库,被称为最快缓存。二、缓存简介(一)缓存对比从横向对常用的缓存进行对比,有助于加深对缓存的理解,有助于提高技术选型的合理性。下面对比三种常用缓存:Redis、EhCache、Caffeine。1、序列化缓存 序列化 原因 Redis 必须实现序列化 进程间数据传输,因此必须实现序列化。大多数情况

2022-03-02 13:53:59 552

转载 缓存淘汰算法FIFO、LRU、LFU及Java实现

缓存淘汰算法在高并发、高性能的质量要求不断提高时,我们首先会想到的就是利用缓存予以应对。第一次请求时把计算好的结果存放在缓存中,下次遇到同样的请求时,把之前保存在缓存中的数据直接拿来使用。但是,缓存的空间一般都是有限,不可能把所有的结果全部保存下来。那么,当缓存空间全部被占满再有新的数据需要被保存,就要决定删除原来的哪些数据。如何做这样决定需要使用缓存淘汰算法。常用的缓存淘汰算法有:FIFO、LRU、LFU,下面我们就逐一介绍一下。FIFOFIFO,First In First Ou

2022-03-02 13:18:22 952

原创 盘点 35 个 Java 代码优化细节

代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。代码优化的目标是:1、减小代码的

2022-03-01 14:47:30 110

原创 程序员要掌握的21个Java核心技术

经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。1. JVM相关对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。当

2022-03-01 13:27:54 119

原创 java基础面试题二

1.日期转换的问题下面的代码在运行时,由于 SimpleDateFormat 不是线程安全的SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for (int i = 0; i < 10; i++) {new Thread(() -> {try {log.debug("{}", sdf.parse("1951-04-21"));} catch (Exception e) {log.error("{}", e);

2022-02-28 20:00:41 310

原创 Java基础面试题

1.你知道java8的新特性吗,请简单介绍一下考察点:java8参考回答:Lambda 表达式 − Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。方法引用− 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。默认方法− 默认方法就是一个在接口里面有了一个实现的方法。Stream API −新添加的Stream API(java.util.stream) 把真

2022-02-28 19:34:36 44

原创 Spring Boot 太重,Vert.x 真香

前言Spring Boot总体来说,搭建还是比较容易的,特别是Spring Cloud全家桶,简称亲民微服务,但在发展趋势中,容器化技术已经成熟,面对巨耗内存的Spring Boot,小公司表示用不起。如今,很多刚诞生的JAVA微服务框架大多主打“轻量级”,主要还是因为Spring Boot太重。JAVA系微服务框架No1-Spring Cloud介绍有Spring大靠山在,更新、稳定性、成熟度的问题根本不需要考虑。在JAVA系混的技术人员大约都听说过Spring的大名吧,所以不缺程序员

2022-02-28 13:33:13 519

原创 分布式系统中的一些问题

一.CAP理论,BASE理论?CAP:C:强一致性,保证每一节点(微服务)统一时间点数据的完全一致 A:可用性,整个系统是一直可用的,而且是正常响应时间。不允许出现用户访问失败的情况 P:分区容错性,某一个节点或者网络分区发生故障时,整个系统还是可用的,对于用户来说没有影响注意:CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。P一定要实现,所以就是CP和AP的权衡。BASE:BA:基本可用,系统出现问题,用户的响应时间增加了,或者非核心功能不可用了。都是可以的。 S:软.

2022-02-26 13:17:54 219

原创 Spring Boot 太重,Vert.x 真香

前言Spring Boot总体来说,搭建还是比较容易的,特别是Spring Cloud全家桶,简称亲民微服务,但在发展趋势中,容器化技术已经成熟,面对巨耗内存的Spring Boot,小公司表示用不起。如今,很多刚诞生的JAVA微服务框架大多主打“轻量级”,主要还是因为Spring Boot太重。JAVA系微服务框架No1-Spring Cloud介绍有Spring大靠山在,更新、稳定性、成熟度的问题根本不需要考虑。在JAVA系混的技术人员大约都听说过Spring的大名吧,所以不缺程序员

2022-02-25 14:27:50 101

空空如也

空空如也

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

TA关注的人

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