摘要: 记一次Orika使用不当导致的内存溢出 hprof 文件分析 2021-08-24,订单中心的一个项目出现了 OOM 异常,使用 MemoryAnalyzer 打开 dump 出来的 hprof 文件,可以看到 91.27% 的内存被一个超大对象javassist.ClassPool占用了。 那么,ClassPool是一个什么样的对象呢? 阅读全文
posted @ 2021-08-25 14:37 子月生 阅读(492) 评论(0) 推荐(1) 编辑
摘要: 如何使用原生的Feign 什么是Feign Feign 是由 Netflix 团队开发的一款基于 Java 实现的 HTTP client,借鉴了 Retrofit、 JAXRS-2.0、WebSocket 等类库。通过 Feign,我们可以像调用方法一样非常简单地访问 HTTP API。这篇博客将介绍如何使用原生的 Fei 阅读全文
posted @ 2021-07-09 09:49 子月生 阅读(663) 评论(2) 推荐(0) 编辑
摘要: 最近,我改造一个旧接口时发现,这个接口有 30 多个入参,而事实上并不需要那么多,而且,这个接口还存在比较大的安全隐患。所以,关于如何设计接口入参,我想谈谈自己的一些想法。 当然,只是一家之言,不一定就是对的。 阅读全文
posted @ 2021-07-04 10:27 子月生 阅读(692) 评论(4) 推荐(0) 编辑
摘要: 详解apollo的设计与使用 简介 apollo 是一款由携程团队开发的配置中心,可以实现配置的集中管理、分环境管理、即时生效等等。在这篇博客中,我们可以了解到: 为什么使用配置中心 如何设计一个配置中心 apollo 是如何设计的 如何使用 apollo 为什么使用配置中心 这里我回答的是为什么使用配置中心,而不是为什么使用 阅读全文
posted @ 2021-06-22 14:56 子月生 阅读(1035) 评论(1) 推荐(0) 编辑
摘要: 业务系统是千差万别的,例如,保存、更新和删除订单,或者保存订单和保存客户,走的根本不是一个流程。但是,它们还是有共同点,它们的流程大致可以分成下面的几个部分。 拿到增删改等操作所需的基础数据;初始化基础数据; 对基础数据进行校验;利用基础数据,构建出要进行增删改等操作的对象;持久化或其他操作。而entitybuilder就是来规范和简化这个过程的工具。 阅读全文
posted @ 2021-03-03 10:04 子月生 阅读(795) 评论(2) 推荐(0) 编辑
摘要: eureka 是由 Netflix 团队开发的针对中间层服务的负载均衡器,在微服务项目中被广泛使用。相比 SLB、ALB 等负载均衡器,eureka 的服务注册是无状态的,扩展起来非常方便。 在这个系列中,我将深入研究 eureka,包括它的使用、源码等,总计分成五篇博客讲完,后面发现有趣的东西也会继续补充。 阅读全文
posted @ 2021-02-10 10:59 子月生 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 按照原定的计划,我将分三个部分来分析 Eureka 的源码: 1. Eureka 的配置体系; 2. Eureka Client 的交互行为; 3. Eureka Server 的交互行为。 今天,我们来研究第三部分的源码。 分析的思路和第二部分的一样,先明确 Eureka Server 需要具备哪些功能,再从源码层面分析如何实现这些功能,最后补充 Eureka Server 的配置解读。 阅读全文
posted @ 2021-02-10 10:36 子月生 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 按照原定的计划,我将分三个部分来分析 Eureka 的源码: 1. Eureka 的配置体系; 2. Eureka Client 的交互行为; 3. Eureka Server 的交互行为。 今天,我们来研究第二部分的源码。 阅读全文
posted @ 2021-02-06 12:40 子月生 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 通过前面的两篇博客,我们知道了:什么是 Eureka?为什么使用 Eureka?如何适用 Eureka?今天,我们开始来研究 Eureka 的源码,先从配置部分的源码开始看,其他部分后面再补充。 补充一点,我更多地会从设计层面分析源码,而不会顺序地剖析每个过程的代码。一方面是因为篇幅有限,另一方面是因为我认为这样做更有意义一些。 阅读全文
posted @ 2021-02-04 17:39 子月生 阅读(852) 评论(0) 推荐(0) 编辑
摘要: 通过上一篇博客,我们知道了 Eureka 是什么以及为什么要使用它,今天,我们开始研究如何使用 Eureka。 在此之前,先说明一点。网上几乎所有关于 Eureka 的文章都是基于 Spring 的,但**本文的例子不会有任何 Spring 的代码,我尽量使用 Eureka 原生的 API**,后面的源码分析也是如此。因为 Spring 把 Eureka 藏得越好,我们研究起来就会越困难,毕竟我写这个系列不是只为了学会怎么使用 Eureka,我们还要分析它的源码。当然,实际项目中就没必要这么搞了。 阅读全文
posted @ 2021-01-28 09:07 子月生 阅读(1036) 评论(0) 推荐(1) 编辑