自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 领域驱动实践具体应用设计分析

领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。

2020-03-27 19:04:30 1655090 17

原创 领域驱动实践架构分析与代码设计

领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。

2020-03-26 18:34:46 1723927 20

原创 领域驱动实践基本理论总结与分析

领域驱动实践基本理论总结与分析

2020-03-24 19:03:13 1652607 13

原创 深入解析Spring Cloud Config:多样配置中心的实现与高可用策略

微服务架构Spring Cloud Config原理与注意事项分享讲解在分布式系统中,配置管理是一项关键任务。随着应用规模和复杂度的增加,传统的配置管理方式已无法满足需求。Spring Cloud Config应运而生,为分布式系统提供了一套集中化的配置管理解决方案。本文将深入探讨配置中心的由来与选择,并详细介绍如何利用Spring Cloud Config结合Git、MySQL和MongoDB等多种数据源实现配置中心。通过实际案例,我们将展示如何扩展其功能,确保高可用性

2019-02-14 14:36:20 1637251 2

原创 全面解读Spring Cloud Zuul:从配置到优化的实战指南

在微服务架构中,API网关作为核心组件之一,承担着请求路由、负载均衡、安全认证等重要功能。Spring Cloud Zuul作为一款功能强大的API网关解决方案,得到了广泛应用。本文将深入探讨Spring Cloud Zuul的各项功能,从基础配置到工作原理,再到多层负载和应用优化,全面解析其在实际应用中的最佳实践与实用技巧,为开发者提供一站式指导,助力其打造高性能、高可用的微服务架构。

2019-02-14 14:35:42 1641290 2

原创 深入理解Spring Cloud Feign与Ribbon:优雅的微服务调用解决方案

在现代的分布式系统中,微服务架构已经成为了构建大型应用的主流方式。而在微服务架构中,服务间的通信尤为重要,直接影响到系统的稳定性和性能。Spring Cloud作为领先的微服务解决方案,提供了Feign和Ribbon这两个强大的工具,用于简化和优化服务间的调用和负载均衡。本文将探讨Spring Cloud Feign和Ribbon的工作原理及其在实际应用中的最佳实践,帮助开发者更好地理解和利用这些工具来构建可靠的微服务系统。

2019-02-14 14:32:18 1640800 4

原创 深入理解服务发现与注册:从单体架构到微服务时代的演进

本文首先回顾了服务发现与注册技术在不同系统架构时代的应用演进,分析了单体架构、SOA架构和现代微服务架构下的实现方式和挑战。随后,文章详细介绍了服务发现与注册的技术选型,并深入探讨了Eureka作为一种基于AP原则的服务注册中心的设计理念,包括其如何解决服务实例注册、剔除和信息一致性问题。接着,本文分析了Eureka的基本架构和细化结构,包括注册中心服务器、服务提供者和消费者的角色和功能。最后,文章讨论了Eureka的高可用方案、区域亲和性以及参数调优与监控策略,帮助读者更好地理解和应用这一关键技术组件来构

2019-02-14 14:28:33 1642244 1

原创 探索CompletableFuture:高效异步编程的利器

随着现代软件系统的复杂性和用户需求的多样化,异步编程成为了提升系统性能和响应速度的重要手段。在Java领域,CompletableFuture作为Java 8引入的新特性,提供了强大的异步编程能力,极大地简化了多线程和并发任务的处理。本文将深入探讨CompletableFuture的基本功能和使用方法,介绍如何利用其提升程序的并发性能和代码的可维护性。

2019-01-22 15:54:29 1657803 2

原创 简单走近ChatGPT

主要涵盖了ChatGPT的背景、NLP学习范式的演进、预训练方法的详细介绍以及OpenAI的GPT系列模型的概述。旨在提供一个全面的认知和理解,以帮助读者更好地了解ChatGPT以及与之相关的NLP领域的发展。

2024-07-22 00:09:27 14188 9

原创 聚焦IOC容器刷新环节prepareBeanFactory专项

在很早之前我们单独写过一篇文章《分析SpringBoot启动配置原理》,其中IOC容器的刷新环节可当重点分析,值得在读源码时进行深入分析,我们会从多个方向上再次进行分析回顾和学习。本次讲聚焦其中的prepareBeanFactory专项展开分析。

2024-07-22 00:05:25 3350

原创 解读InnoDB数据库索引页与数据行的紧密关联

首先介绍了索引页结构的重要组成部分,包括文件头部、页面头部、最小和最大记录等。接着详细解释了数据页的双向链表结构和记录行的单向链表结构,揭示了它们在数据库中的作用和关系。特别关注了User Records在页面空间管理中的应用,包括页满前和页满后的处理策略。

2024-07-15 22:56:07 5913

原创 互联网数字化商品管理浪潮思考:从信息化到精准运营

从技术角度来看,从运营百万商家到管理数十亿商品,平台必须依靠数据化手段进行商品管理。通过数据化重构人、货、场的关系,优化流量分配和精准营销,使数据成为连接商业环节的最佳语言,最终提升平台的整体流量价值和用户体验。通过这些策略的实施,电商平台能够实现从“商”到“品”的成功转型,更好地满足市场需求,提升竞争力。从过去以“运营商家”为核心的策略,逐步转变为以“运营商品”为导向的模式。这种转变要求我们重新定义运营重点,针对不同品类的特性,制定相应的优化策略。一、商品数字化转型面临的现状分析。

2024-07-08 00:17:52 7104

原创 投资策略规划最优决策分析

本文深入探讨了投资策略规划问题,从理论到实践,全面分析了如何在既定规则下最大化投资回报。我们首先通过状态转移方程和初始条件证明了最优投资策略,即每年将所有资金投入到单一投资产品中。接着,证明了规划最优投资策略问题具有最优子结构性质,并设计了最优投资策略规划算法,详细分析了其时间复杂度。最后,我们引入了新的投资限制条件,证明了在这种情况下,最大化10年回报问题不再具有最优子结构性质。通过这些分析,我们展示了理论优化策略与实际约束条件下的投资决策之间的差异,为投资者提供了宝贵的实践参考。

2024-07-08 00:15:45 5695 1

原创 如何在面试中找到最优秀的候选人:雇佣问题的随机化算法探索

本文探讨了雇佣问题及其解决方案中的随机化算法应用。雇佣问题要求在一系列不可回溯的面试中找到最优秀的候选人,传统贪心策略存在局限性。随机化算法通过随机排列和预面试期的引入,有效地提高了找到最佳候选人的概率。通过数学推导和实际模拟,我们验证了随机化算法在这一问题中的有效性,为面试和招聘过程中决策的优化提供了新的思路和方法。

2024-07-01 01:38:33 6553

原创 高并发场景下的热点key问题探析与应对策略

当今高并发场景下,热点key问题成为影响系统性能和稳定性的关键挑战。本文探讨了热点key问题的定义及其在分布式系统中的常见表现,如流量集中、缓存分片打垮等。针对这些问题,本文提出了多级缓存策略、多副本策略和热点key拆分与动态分散策略作为有效应对措施。这些策略不仅能显著减轻单点负载压力,还能提升系统的并发处理能力和整体稳定性,从而保障系统在高负载和复杂业务场景下的可靠性。

2024-07-01 00:03:49 8374

原创 探究InnoDB Compact行格式背后

本次我们聚焦 InnoDB 行格式,理解它们是如何在幕后悄悄发挥作用的。行格式的设计反映了数据库设计者在权衡性能、存储和兼容性时的决策。到现在为止一共设计了4种不同类型的行格式 ,分别是 Compact 、 Redundant 、Dynamic 和 Compressed 行格式,随着时间的推移,他们可能会设计出更多的行格式,但是不管怎么变,在原理上大体都是相同的。我们本次主要针对Compact InnoDB 行格式进行分析理解。

2024-06-24 00:07:29 8055 1

原创 解放代码:识别与消除循环依赖的实战指南

本文讨论软件开发中常见的循环依赖问题及其解决方法。首先介绍了循环依赖在代码中的形成原因,并提出了避免循环依赖的基本原则。其次,详细介绍了使用工具如JDepend来识别项目中的循环依赖,并通过具体案例分析了三种消除循环依赖的方法:提取中介者、转移业务逻辑和采用回调接口。每种方法都结合了实际的代码改造示例和测试用例,帮助读者理解和应用这些技术以优化自己的软件架构和设计。主要思想的编排思路来自极客时间《如何有效识别和解决代码中存在的循环依赖问题?》,当然也有其他的参考和自身的一些思考和优化。

2024-06-17 23:05:33 8085

原创 智能化状态管理:自动状态流转处理模块

自动流转一般都是一个很大的处理系统,其中包含的处理内容是很庞大的,就这样一个大型系统的开发思路,我后面会抽空来分享一篇全局的思路,本次仅针对一般如果我们需要对一些业务流程需要进行自动化处理思维的给出一个样例的自动状态流转处理模块的代码示例。如果有写的不对的地方,请留言指正!

2024-06-15 14:27:39 7479 3

原创 业务动态校验框架应用实现

实现一套业务层级的动态校验框架。

2024-06-15 14:25:01 7631 2

原创 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理

探讨如何基于实现一个高效的上下文管理组件,以解决多线程环境下的数据共享和上下文管理这些问题。通过具体的代码示例和实战展示如何为多线程编程提供一种简洁而高效的上下文管理方案。

2024-06-14 00:11:37 7819 8

原创 聚焦IOC容器刷新环节obtainFreshBeanFactory初始化BeanFactory专项

探讨BeanFactory的刷新机制,从最基本的IOC容器刷新环节出发,逐步分析了其具体实现。主要介绍BeanFactory的刷新过程,然后通过源码分析了在注解驱动和XML配置方式下如何创建和初始化BeanFactory。

2024-06-14 00:09:01 7423

原创 DDD领域应用理论实践分析回顾

探讨领域驱动设计(DDD)在现代软件开发中的重要性,以复杂的B端营销系统为例看实际应用。

2024-06-13 00:12:53 7359

原创 从ES的JVM配置起步思考JVM常见参数优化

Java 8目前仍然是许多企业中主要使用的版本之一,尤其是对于比较保守的公司。在过去,CMS (Concurrent Mark-Sweep) 垃圾回收器在Java 8中是一种常见选择,因为它在某些场景下能够提供较好的性能。然而,随着Java版本的不断更新,一些旧的特性和组件被淘汰或替代,比如CMS。Java 14中正式废弃了CMS,而新的垃圾回收器,如ZGC和G1,逐渐成为了主流选择。ZGC和G1在处理大内存堆和低停顿时间方面表现出色,适用于现代应用程序的需求。

2024-06-13 00:07:48 7918

原创 Java锁之舞:性能分析与优化之路

在多线程编程中,锁是保证线程安全的重要手段之一,但如何选择合适的锁并进行优化,一直是我们面临的挑战。本博客探讨Java中同步锁的性能分析与优化之路,从使用同步锁和不使用同步锁的性能对比入手,逐步展开对锁的优化手段和技术原理的解析,帮助读者更好地理解和应用Java中的锁机制。

2024-06-12 00:22:36 7950

原创 缓冲区的奥秘:解析数据交错的魔法

本文探讨了缓冲区的重要性及其在不同领域的应用。首先,从直观角度解释了缓冲区的好处,包括保持操作节奏、减少性能损耗和优化用户体验等。其次,通过经典案例分析了文件读写流和日志缓冲的应用,展示了缓冲区的加速效果。进一步探讨了缓冲区优化方向,以及在Kafka中可能引发的数据丢失和对业务高可用性的影响。本文旨在帮助读者深入理解缓冲区的奥秘,以及在实际应用中的优化思路。

2024-06-12 00:09:41 8074

原创 聚焦新版综合编程能力面试考查汇总

业务性编程能力指的是开发人员在理解和实现具体业务需求方面的能力。这不仅包括对编程语言、框架和工具的熟练掌握,还涉及对业务逻辑、流程和领域知识的深入理解和灵活运用。在编程结束后或过程中需要扩展分析考查面试者的知识广度。本文总结常考的几类大题分享来说明具体的内容

2024-06-11 00:07:36 7664

原创 探寻性能优化:如何衡量?如何决策?

性能优化,看似简单,实则复杂。就像选择一辆汽车一样,你想要的不仅仅是动力强劲,还要兼顾燃油经济性、操控稳定性等一系列指标。而在优化系统性能时,我们也需要综合考虑各种衡量指标,才能做出明智的决策。

2024-06-11 00:04:03 7507

原创 探究IOC容器刷新环节初始化前的预处理

本文深入探讨了Spring IOC容器刷新前的关键步骤。我们从快速回顾IOC容器刷新环节开始,引出初始化前的预处理 prepareRefresh 方法的源码分析。随后,我们着重研究了初始化属性源的过程,分别探讨了 GenericWebApplicationContext 和 StaticWebApplicationContext 中的属性源初始化方法。最后,我们深入探讨了初始化早期事件集合的重要性。通过本文的阐述,读者将全面了解IOC容器刷新前的幕后操作,进一步加深对Spring框架核心机制的理解。

2024-06-10 00:08:34 7279

原创 核心社群营销和覆盖区域选型

社群营销是一种通过精细化运营和长期用户关系维护,实现企业营销目标的新型营销模式。通过选择合适的平台,建立并管理高价值的社群,企业可以实现拉新、促活和转化等多个目标,为产品的推广和用户关系的维护提供有力支持。在这个过程中,企业微信因其强大的功能和完善的生态系统,成为企业进行社群营销的理想平台。

2024-06-10 00:06:32 7340

原创 EMall实践DDD模拟电商系统总结

学习如何利用领域驱动设计(DDD)构建电商系统。从事件风暴开始,团队快速梳理业务流程和事件。系统用例和领域上下文分析系统需求和边界。探讨架构设计,融合六边形架构和系统分层。系统实现包括项目结构、订单功能、领域层实现和Repository层实现。重点介绍聚合、CQRS模式、缓存、Unit Of Work模式等概念。最后,讨论领域事件实现,帮助了解电商系统设计和实现,掌握DDD在电商系统中的应用。

2024-05-03 00:28:05 9722

原创 为何数据库推荐将IPv4地址存储为32位整数而非字符串?

探讨在Java开发中存储IPv4地址的最佳方式。通过对比字符串存储和整数存储两种方式的优缺点,我们发现整数存储方式在存储空间效率、查询效率和数学运算方面更具优势。虽然字符串存储方式更直观易读,但在处理大量数据时会浪费存储空间并降低查询效率。通过具体的示例代码演示了如何生成大量的IPv4地址数据,并将其插入到数据库表中。通过查询和索引效率的比较,我们验证了整数存储方式在性能方面的优势。

2024-05-03 00:14:58 9806 1

原创 解救应用启动危机:Spring Boot的FailureAnalyzer机制

探讨Spring Boot中的FailureAnalyzer机制,帮助解决应用启动失败的难题。对FailureAnalyzer的工作原理、生效方式以及自定义的基本步骤进行介绍,包括注册方式说明和实例演示。希望可以帮助更好地理解并利用FailureAnalyzer来诊断和解决应用启动失败的问题。

2024-05-02 22:15:02 9958 2

原创 聚焦Spring后置处理器分析对比

Spring Framework 中的后置处理器允许在容器实例化 Bean 或者在 Bean 的生命周期中进行操作。从源码上来看的话,其实其扩展机制下的后置处理器其实很多。我们重点放到我们常用的几个上BeanPostProcessor、BeanFactoryPostProcessor来聚焦分析一下。

2024-05-02 14:12:28 9955 1

原创 重看Spring聚焦BeanDefinition分析和构造

BeanDefinition是Spring框架中重要的概念之一,它定义了Spring容器中Bean的元信息,是Spring实现依赖注入和控制反转的基础。我们本次来深入探讨BeanDefinition的概念与结构设计,并分析四种构造BeanDefinition的方式及其优缺点。帮助读者选择适合自己项目的构造方式,并为理解和应用BeanDefinition提供指导。

2024-05-02 12:01:24 9632

原创 JDK 19 协程新特性:Project Loom 项目的延续

探讨了协程的定义、发展史和 JDK 19 中的实现原理。协程是一种轻量级的并发编程工具,通过 Continuation 控制流、Scheduler 调度和阻塞操作的改造,实现了非阻塞、高效的并发编程。历史回顾包括协程在不同编程语言中的应用和 Java 协程的发展。JDK 19 中的协程原理深入分析了创建协程的方法、非阻塞 IO 改造、Continuation 的作用以及协程的唤醒机制。总结了协程的核心原理和重要组件。

2024-04-25 23:48:15 11455 2

原创 用斐波那契数列感受算法的神奇(21亿耗时0.02毫秒)

用斐波那契数列感受算法的神奇(21亿耗时0.2毫秒):在实际应用中,结合快速幂的矩阵解法确实是计算斐波那契数列的最优解之一,尤其是对于大数值的情况。然而,并不是所有情况下都适合使用这种方法。

2024-04-25 01:14:51 11961 3

原创 业务通用校验能力建设

业务通用校验能力建设主要建设目标:将上层重复的校验能力抽取为校验模型,同时为模型提供配置化的管理能力,降低人力成本和研发成本;建立集中化的校验平台,提供多种校验模型的整合能力。标准化接入方式和处理能力,解决业务多场景变化和规则变化所带来的维护成本,同时有利于业务快速迭代;将业务数据校验功能进行解耦,建立校验规则场景化灵活处理,降低业务多场景和规则条件下的业务校验耦合能力,降低业务调用成本;建立校验能力规则化场景化联动功能,规则场景变化后快速提供能力给前后台赋能,提高业务灵活性

2024-04-24 04:03:09 11583

原创 重看Spring聚焦Environment分析

Environment模块在 Spring 中主要负责管理应用程序的配置和环境(定义为一组 profile配置文件)相关的信息,每个 profile 对应一个特定的应用程序部署环境,比如开发、测试、生产等。在这些 profile 中,可以包含各种属性,比如数据库连接信息、服务器端口、日志级别等。而对应的属性在 Spring 中被表示为键值对,其中键是属性的名称,值是属性的取值。属性可以通过不同的方式进行配置,比如在属性文件中、通过系统属性、操作系统环境变量等。

2024-04-24 03:54:06 11935

原创 简易分发器设计和开发(重点看代码设计)

设计分发平台的终极目标是为内容提供者和运营厂商提供全面的解决方案,帮助他们实现内容的高效管理和精准分发。通过灵活的配置和定制化功能,以及强大的数据分析和监控统计功能,平台能够帮助用户优化内容策略,提升内容传播的效果和用户体验,实现业务的持续增长和发展。

2024-04-22 00:44:46 14867 1

原创 检索技术知识全景图分析

学习检索技术(Information Retrieval,IR)具有多种重要的原因,特别是在今天信息爆炸的数字化时代。总的来说,学习检索技术有助于提高信息处理和利用的效率,无论是个人生活还是在职业和学术领域中。这些技能可以增强信息搜索、分析和组织的能力,有助于更好地满足各种需求和目标。

2024-04-22 00:27:29 14197 1

空空如也

空空如也

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

TA关注的人

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