sofia

2020年02月08日注册2024年10月27日最后登录

没有个人说明

  • 发表了 552 篇文章

使用Byte Buddy轻松实现Java Agent

 sofia
 2021年08月19日
 1323
 0
 0 

Java agent是在另一个Java应用程序(“目标”应用程序)启动之前执行的Java程序,为该agent提供修改目标应用程序或其运行环境的机会。在本文中,我们将从基础知识开始,使用字节码操作工具Byte Buddy实现高级代理。 在最基本的用例中,Java agent设置应用程序属性或配置特定的环境状态,从而使代理能够充当可重用和可插入的组件。下面的示例描述了这样一个代理agent,它设置了可

使用Byte Buddy轻松实现Java Agent

字节码修改工具Javasisst简介

 sofia
 2021年08月18日
 864
 0
 0 

在本文中,我们将研究Javasisst(http://www.javassist.org/)库。 简单地说,这个库通过使用高级API比JDK中的API更简单地操作Java字节码。 Maven依赖 要将Javassist库添加到我们的项目中,我们需要将Javassist添加到pom中: <dependency> <groupId>org.javassist</group

字节码修改工具Javasisst简介

Java Instrumentation API使用指南

 sofia
 2021年08月17日
 1332
 0
 0 

在本文中,我们将讨论Java Instrumentation API。它提供了向现有编译的Java类添加字节码的能力。 我们还将讨论java代理以及如何使用它们为代码提供工具。 我们将使用工具构建一个应用程序。 我们的应用程序将包括两个模块: 1. 允许我们取款的ATM应用程序 2. 还有一个Java代理,它允许我们通过测量投入的时间和花费的金钱来测量ATM的性能 Java agent将修改ATM

Java Instrumentation API使用指南

JDK新垃圾收集器-Shenandoah GC

 sofia
 2021年08月16日
 1483
 jvm
 0
 0 

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

JDK新垃圾收集器-Shenandoah GC

Quarkus|云原生时代的Java框架

 sofia
 2021年08月15日
 1716
 0
 0 

在这个数字第一的时代,技术发展更快。它帮助技术人员开发和部署更快、更面向性能、更高效和更低内存消耗的应用程序。Quarkus是RedHat的一项此类计划。它是由RedHat设计和开发的,考虑到cloud-native、serverless和容器化应用程序的未来。 根据RedHat的定义:“Quarkus是一个完整的堆栈,Kubernetes原生Java框架,用于Java虚拟机(JVM)和本机编译,

Quarkus|云原生时代的Java框架

JAR和WAR文件之间有什么区别?

 sofia
 2021年08月14日
 808
 0
 0 

JAR和WAR文件之间的主要区别在于,JAR文件是包含Java类文件、相关元数据和资源的文件,这些文件聚合到一个文件中以执行Java应用程序,而WAR文件是包含Servlet、JSP、HTML、JavaScript和开发web应用程序所需的其他文件的文件。 Java是一种高级通用编程语言,用于开发各种领域的应用程序。Java之所以流行是因为多种原因。Java源代码编译成称为字节码的中间代码。任何具

JAR和WAR文件之间有什么区别?

基于Kafka和Quarkus的Knative Eventing应用

 sofia
 2021年08月13日
 590
 0
 0 

在本文中,您将学习如何使用Kafka和Quarkus在Knative上运行事件应用程序。之前,我描述了Kafka和Spring Cloud的相同方法。我们将部署完全相同的体系结构。然而,我们将使用Quarkus Funqy代替SpringCloud函数。此外,Spring Cloud流可能会被Quarkus Kafka所取代。在我们开始之前,让我们澄清一些事情。 Knative 和 Quarkus

基于Kafka和Quarkus的Knative Eventing应用

警惕无代码和低代码

 sofia
 2021年08月12日
 560
 0
 0 

我们最近都听到了关于低代码和无代码平台的炒作。无代码平台的承诺是,它们将使软件开发与使用Word或PowerPoint一样简单,从而使普通业务用户能够在不需要工程团队额外成本(金钱和时间)的情况下推进项目。与无代码平台不同,低代码平台仍然需要编码技能,但通过让开发人员使用预先编写的代码组件,有望加速软件开发。 根据Gartner的数据,到2024年,65%的应用程序开发将是低代码的。 低代码/无代

警惕无代码和低代码

Apache Pulsar——下一代消息发布订阅平台

 sofia
 2021年08月11日
 1028
 0
 0 

Apache Pulsar是一个开源发布-订阅消息平台,由持久存储(Apache Bookkeeper)支持,具有以下特性: Geo-Replication 多租户 零数据丢失 Zero Rebalancing Time 统一排队和流模型 高度可扩展 高通量 Pulsar代理 功能 Pulsar文档详细解释了每个特征;这个博客是从Pulsar用户的角度写的,涵盖了在开始使用Pulsar之前需要了解

Apache Pulsar——下一代消息发布订阅平台

基于微软的Dapr构建微服务系统

 sofia
 2021年08月10日
 815
 0
 0 

当你第一次读到微软本周发布的最新开源项目Dapr时,你可能会觉得它是另一个服务网格。相反,Dapr在一篇博客文章中被描述为“一个开源、可移植、事件驱动的运行时,使开发人员能够轻松构建在云和边缘上运行的弹性、微服务无状态和有状态的应用程序。” 虽然该项目在其Istio服务网格实现中使用了特使代理使用的熟悉的侧车架构,但Azure项目管理总监Gabe Monroy在一次电子邮件采访中解释说,Dapr作

基于微软的Dapr构建微服务系统

GraalVM系列之五-将Scala对象传递给JavaScript

 sofia
 2021年08月9日
 474
 0
 0 

GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始

GraalVM系列之五-将Scala对象传递给JavaScript

GraalVM系列之四-跨语言传递对象

 sofia
 2021年08月8日
 609
 0
 0 

GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始

GraalVM系列之四-跨语言传递对象

GraalVM系列之三-从JVM调用JS函数

 sofia
 2021年08月7日
 2095
 0
 0 

GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始

GraalVM系列之三-从JVM调用JS函数

GraalVM系列之二-Polyglot技术

 sofia
 2021年08月6日
 795
 0
 0 

在上一篇中介绍了GraalVM的基本功能,GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014

GraalVM系列之二-Polyglot技术

GraalVM系列之一-概述

 sofia
 2021年08月5日
 392
 0
 0 

GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始

GraalVM系列之一-概述

DDD领域驱动设计系列二

 sofia
 2021年08月4日
 520
 0
 0 

在这一部分中,我将讨论我最喜欢的一种架构,称为“洋葱架构”。尽管如此,请允许我首先回顾一下,到目前为止,我们对DDD的了解如下: DDD是关于我们如何从业务角度设计软件,而不是从技术角度。为此,我们必须在设计过程中与领域专家(又称业务专家)一起工作,这样我们才能与业务需求保持一致。这个过程总是从我们称之为无处不在的语言开始(即,我们需要在设计和实现过程中使用标准术语)。随后,将复杂域分解为更小的子

DDD领域驱动设计系列二

DDD领域驱动设计系列一

 sofia
 2021年08月3日
 442
 0
 0 

当我第一次听说DDD(领域驱动设计,当然不是期限驱动设计)时,我还是惠普(Hewlett-Packard)位于马来西亚Cyberjaya的开发中心的高级Java开发人员。我对这个话题不太感兴趣,因为在那段时间里很难找到好的资源。有人让我找到埃里克·埃文的书(“蓝皮书”),我得到了这本书,并将它添加到我的PDF收藏中。 在这段时间里,DDD是一项全新的技术(尤其是在印度尼西亚),因此只有少数公司成功

DDD领域驱动设计系列一

使用Micronaut框架构建微服务

 sofia
 2021年08月2日
 949
 0
 0 

与使用传统JVM框架构建的应用程序不同,Micronaut具有100%的编译时间、无反射、依赖注入和AOP。因此,Micronaut应用程序体积小,内存占用小。使用Micronaut,您可以开发一个大的整体或一个可以部署到AWS Lambda的小功能。您不受框架的约束。 Micronaut还将云技术集成到框架中,并将服务发现、分布式跟踪、断路器等微服务模式烘焙到框架中。 Micronaut于201

使用Micronaut框架构建微服务

Apache Ignite原理介绍

 sofia
 2021年08月1日
 2955
 0
 0 

Apache Ignite是一个开源的分布式数据库、缓存和处理平台,它以内存速度处理数PB的数据。 它提供容错、集群范围内的发布/订阅消息传递、在出现故障时动态重新平衡集群、内存文件系统、数据网格、数据库、流分析。它可以用来解决可伸缩性和性能问题。 在Cazton,我们通过Apache Ignite最佳实践、开发、性能调整、咨询、招聘服务和实践培训服务,帮助财富500强的大中型公司。 内存计算平台

Apache Ignite原理介绍

Spring Boot配置Caffeine缓存示例

 sofia
 2021年07月31日
 1185
 0
 0 

昂贵的(CPU或I/O)绑定操作会降低系统的速度。缓存是提高系统性能的一种方法。在本文中,我们将演示如何使用Spring-Boot进行缓存。您可以使用caffeine作为spring框架缓存抽象之上的缓存提供者。 Maven依赖项 我们使用Maven来管理我们的项目依赖关系。首先,将以下依赖项添加到项目中。在本例中,我们使用com.github.ben-manes.caffee-caffee作为缓

Spring Boot配置Caffeine缓存示例

登录

忘记密码 ?

切换登录

注册