MVP的最佳架构:单体结构、SOA、微服务还是Serverless?

MVP的最佳架构:单体结构、SOA、微服务还是Serverless?

微服务 3年前 (2021-09-22) 浏览: 1335 评论: 0

创造一个新产品就是风险。选择正确的体系结构是迈向成功的关键一步。如果您正在考虑单体、service-oriented、微服务和serverless无服务器体系结构,这篇博文将帮助您做出正确的选择。 单体结构 巨石是一个古老的词,指的是一块巨大的石头。尽管这个术语在今天被广泛使用,但图像在各个领域都保持不变。在软件工程中,单片模式是指单个不可分割的单元。单片软件的概念在于将应用程序的不同组件组合到单

内存泄露检测工具

内存泄露检测工具

jvm 3年前 (2020-12-04) 浏览: 1330 评论: 0

如果应用程序的执行时间越来越长,或者操作系统的执行速度越来越慢,这可能是内存泄漏的迹象。换句话说,正在分配虚拟内存,但在不再需要时不会返回。最终应用程序或系统内存不足,应用程序异常终止。 使用Java飞行记录器调试内存泄漏 Java飞行记录器(JFR)是一个商业特性。您可以在开发人员台式机或笔记本电脑上免费使用它,也可以在测试、开发和生产环境中用于评估目的。 但是,要在生产服务器上启用JFR,必须

RSocket入门:服务器调用客户端

RSocket入门:服务器调用客户端

相关技术 3年前 (2021-06-30) 浏览: 1327 评论: 0

使用RSocket,客户机和服务器之间的界限是模糊的。使用Rsocket,服务器可以向客户端发送消息,客户端可以像服务器一样响应这些请求。 实际上,RSocket文档不使用术语“client”或“server”,而是使用术语“requester”和“responder”。在RSocket中,任何组件都可以充当请求者,任何组件都可以充当响应者,甚至可以同时充当两者。在RSocket中,请求者和响应者

GraalVm和Polyglot

GraalVm和Polyglot

jvm 3年前 (2021-09-15) 浏览: 1319 评论: 0

大家好。在本博客中,我们将看到如何使用GraalVm实现多语言。这方面的先决条件是: 对GraalVm的理解。 了解GraalVm提供的功能。 GraalVm的本地设置。 一点java和python(可选)。 让我们开始吧。 什么是GraalVm? GraalVm是Oracle的一个开源项目,其目标是针对JVM,以便多个语言可以共存于同一个应用程序中。GraalVm不是JVM,而是一个UVM(通用

JDK新垃圾收集器-Shenandoah GC

JDK新垃圾收集器-Shenandoah GC

jvm 3年前 (2021-08-16) 浏览: 1318 评论: 0

Shenandoah是低暂停时间垃圾收集器,它通过与运行的Java程序同时执行更多垃圾收集工作来减少GC暂停时间。Shenandoah同时执行大部分GC工作,包括并发压缩,这意味着它的暂停时间不再与堆的大小成正比。垃圾收集200 GB堆或2 GB堆应该具有类似的低暂停行为。 Shenandoah的可用性因供应商和JDK版本而异。OpenJDK 12+版本默认情况下通常包括Shenandoah。Op

Spock注意事项-groovy的maven编译插件版本不兼容问题

Spock注意事项-groovy的maven编译插件版本不兼容问题

Spock系列 2年前 (2022-10-17) 浏览: 1314 评论: 0

有些项目虽然在Idea里执行spock单元测试时一切正常,但通过maven执行或在公司内部一些CICD系统中运行spock的单测时可能会遇到以下异常: Execution default of goal org.codehaus.gmavenplus:gmavenplus-plugin:1.6:compileTests failed 或者是这种异常: Unable to determine Gro

Windows环境下如何进行线程dump分析

Windows环境下如何进行线程dump分析

Java系列 4年前 (2020-02-16) 浏览: 1318 评论: 0

现在大部分公司都有自己完整的一套监控系统,比如美团的CAT,我们公司的监控系统也是基于CAT做的二次开发。一般测试环境或生产环境有问题可以直接使用这些系统查看线程和内存运行情况,分析排查问题。 但对于我们开发人员来说还是有必要了解最原始的排查流程,也就是不借助这些系统,使用最基本的命令解决,毕竟了解了这些底层实现对自身发展也是有帮助的。 网上搜下这样的文章其实很多,比如排查cpu过高,死锁问题的文

Spring Cloud集成Resilience4J熔断器快速指南

Spring Cloud集成Resilience4J熔断器快速指南

微服务 2年前 (2022-11-16) 浏览: 1307 评论: 0

在本文中,我们将介绍Spring Cloud断路器/熔断器,并学习如何利用它。 Spring Cloud断路器 直到最近,Spring Cloud只为我们提供了一种在应用程序中添加断路器的方法。这是通过使用Netflix Hystrix作为Spring Cloud Netflix项目的一部分实现的。 Spring Cloud Netflix项目实际上只是一个围绕Hystrix的基于注释的包装库。因

什么是Structured-Concurrency结构化并发?

什么是Structured-Concurrency结构化并发?

相关技术 2年前 (2022-08-15) 浏览: 1303 评论: 0

本篇文章以直观的方式解释结构化并发,并展示它如何在实践中简化并发程序! 结构化并发是一个强大的概念,了解它对于充分利用协程的强大功能非常重要。 非结构化并发 为了理解某件事并围绕该主题建立良好的直觉,从它试图首先解决的问题开始通常是有帮助的。因此,让我们考虑一个不使用结构化并发的简单示例程序,看看会出现什么问题。 下面的代码创建了三个并发任务,它们在后台单独的线程中运行。每个任务的任务是使用fet

Apache ClickHouse简介

Apache ClickHouse简介

相关技术 3年前 (2021-05-03) 浏览: 1299 评论: 0

ClickHouse是一个开源的面向列的联机分析处理(OLAP)数据库管理系统。 ClickHouse允许使用实时更新的SQL查询生成数据分析报告。该系统以高性能著称。它很简单,而且是开箱即用的。该项目于2016年6月在Apache2许可下作为开源软件发布。 ClickHouse是第一个与Sybase IQ、Vertica和Snowflake等专有数据库的性能和可伸缩性相匹配的开源SQL数据仓库。

Java9 Modules

Java9 Modules

Java系列 3年前 (2021-01-26) 浏览: 1300 评论: 0

Java9模块是Java结构中最大的变化之一。这篇文章将对“Java9模块系统”做一个简要的介绍。 介绍 甲骨文公司将Java9的发布时间从2017年3月推迟到2017年9月。 正如我们所知,Java8带来了三大新特性(再加上一些增强和新特性)。 Lambda表达式 Stream API 日期API 同样,Java9也带来了三大特性(再加上一些增强和新特性): Java模块系统(Jigsaw项目)

Java递归函数recursive算法讲解系列四

Java递归函数recursive算法讲解系列四

Java系列 4年前 (2020-10-17) 浏览: 1305 评论: 0

用递归反转序列 让我们考虑一个数组的n个元素的倒序问题,以便第一个元素成为最后一个元素,第二个元素成为倒数第二个元素,依此类推。我们可以使用线性递归来解决这个问题,通过观察序列的反转可以通过交换第一个和最后一个元素,然后递归地反转剩余的元素来实现。我们在代码中给出了该算法的一个实现,使用的约定是,我们第一次将此算法称为reverseArray(data,0,n−1)。 /∗∗ Reverses t

Java递归方法Recursive详解

Java递归方法Recursive详解

Java系列 4年前 (2020-10-04) 浏览: 1302 评论: 0

我们探索一个方法可以做的最神奇的事情之一:调用自身来解决同一问题的较小版本。调用自身的方法称为递归方法。 递归Void方法 考虑以下示例: public static void countdown(int n) { if (n == 0) { System.out.println("Blastoff!"); } else { System.out.println(n); countdown(n -

Java提示找不到或无法加载主类怎么解决?

Java提示找不到或无法加载主类怎么解决?

Java系列 3年前 (2021-03-28) 浏览: 1294 评论: 0

一旦您编写了一个Java程序,您需要使用javac命令来编译它,这将显示发生的编译时错误(如果有的话)。 一旦解析它们并成功编译程序,将在当前文件夹中生成一个与类名同名的可执行文件,扩展名为.class。 然后需要使用java命令执行它,如: java class_name 在执行时,当JVM找不到具有指定名称的.class文件时,会出现运行时错误,错误为"Could not found or l

定位内存泄露

定位内存泄露

jvm 3年前 (2020-12-07) 浏览: 1287 评论: 0

在上一篇文章中,我们讨论了内存泄漏的最基本方面,内存泄漏的原因,以及如何从程序中消除内存泄漏。 作为前导,当垃圾回收器(GC)无法从工作内存中清除未引用的对象时,就会发生内存泄漏。考虑到Java在很大程度上归功于它的垃圾收集器,这怎么可能呢?事实证明,GC有几个弱点: 未引用的静态字段:除非拥有静态字段的类被卸载,否则GC无法清除静态字段,只有当调用它的类加载器被垃圾回收时才会发生这种情况。 未关

使用Spring和Liberica构建本机镜像

使用Spring和Liberica构建本机镜像

相关技术 3年前 (2021-10-28) 浏览: 1281 评论: 0

Spring“家族”是围绕Spring框架构建的,Spring框架是目前最流行的Java框架之一,Spring Boot是其旗舰产品。18年前首次发布,它不断成长和复兴。虽然出现了新的解决方案,但Spring仍处于领先地位。它仍然是一个轻量级、安全、易于定制和灵活的编程环境,已成为现代Java开发的标准助手。 但今天,我们要关注的是Spring“家庭”的最新成员ー Spring Native,即将

metaspace元空间的前世今生

metaspace元空间的前世今生

爪哇岛 4年前 (2020-09-07) 浏览: 1276 评论: 0

我们都知道在Java8中用元空间取代了PermGen。 但有几个问题: MetaSpace默认是GC收集的吗? 即使PermGen是通过添加-XX:+CMSClassUnloadingEnabled这样的参数进行GC收集的,那么有什么比PermGen更好的MetaSpace呢? MetaSpace基于本机内存,所以它将java对象保存在磁盘上,而不是VM上? 甚至元空间也会耗尽内存?如果是这样的话

排查Elasticsearch本机内存泄漏

排查Elasticsearch本机内存泄漏

jvm 3年前 (2021-01-01) 浏览: 1267 评论: 0

我们最近花了很多时间跟踪弹性云服务中的各种内存问题。特别是其中一个攻击活动相对较少的小集群,需要进行大量挖掘才能找到答案。 每个节点都有一个固定的内存量,我们为堆保留了大约一半的内存。其余的由JVM和文件缓存使用。通常,JVM使用的内存是恒定的,但是我们看到一些实例,Elasticsearch使用的总内存不断无限制地缓慢增加,直到达到总限制。有时需要几天时间,但它一直在不断攀升。当达到限制时,节点

Apache Pulsar终极指南–流处理平台

Apache Pulsar终极指南–流处理平台

相关技术 3年前 (2021-05-28) 浏览: 1266 评论: 0

Apache Pulsar简介 Apache Pulsar是一个多租户、高性能的服务器对服务器消息传递系统。雅虎开发了它。2016年末,这是第一个开源项目。现在它正处于孵化期,在Apache软件基金会(ASF)的领导下。 Pulsar使用pub-sub模式,其中有一个生产者和一个消费者(也称为订阅者),主题是pub-sub模型的核心,生产者发布关于给定Pulsar主题的消息,消费者订阅问题以从该主

Java 8–使用Lambda表达式进行比较

Java 8–使用Lambda表达式进行比较

Java系列 2年前 (2022-01-26) 浏览: 1264 评论: 0

在Java 8之前,对集合进行排序需要为排序中使用的比较器Comparator创建一个匿名内部类: new Comparator<Human>() { @Override public int compare(Human h1, Human h2) { return h1.getName().compareTo(h2.getName()); } } 这仅用于对Human实体列表进行排序

登录

忘记密码 ?

切换登录

注册