自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java后端lombok的@Builder注解的解析与简单使用

Lombok中@Builder用法1、建造者模式简介:Builder 使用创建者模式又叫建造者模式。简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程。2、注解类Builder.java注释:* The builder annotation creates a so-called 'builder' aspect to the class that is annotated or the class * that contains a member wh

2021-01-04 11:49:38 1681 9

原创 大数据之AVRO转ORC

这算是最通用的使用这两种文件API进行ORC与AVRO转换的code了,值得注意的是,在window读写ORC文件,需要使用这个插件,需要自行下载。

2022-10-26 21:13:15 819

原创 Quartz-1:Quartz-configuration(LTS:2.3.0)

任务调度框架“Quartz”是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。

2022-09-05 21:29:57 254

原创 数据结构与算法之二分查找(Java实现)

二分查找又叫折半查找,时间复杂度与散列表或者二叉查找树一样同为logn。虽然凡是用二分查找能解决的,绝大部分我们更倾向于用散列表或者二叉查找树,但是对于“近似”查找问题,二分查找的优势很明显。以下是一些基于Java语言实现的二分查找相关算法:/** * @author lv_ry * @version 1.0 * @date 2021/12/21 9:03 */public class BinerySearchTest { /** * 二分查找 */ publ

2021-12-21 10:49:23 442

原创 五种排序算法-Java实现

排序算法在学习和面试扮演者十分重要的角色。对于排序算法,针对小规模的排序,熟练掌握插入排序算法,有余力的同学也可以看看插入排序的优化-希尔排序;针对大规模数据的排序,重点掌握快排算法。以下是五种算法的具体实现:/** * @author lv_ry * @version 1.0 * @date 2021/12/16 15:32 */public class SortTest { public static void main(String[] args) { int[]

2021-12-16 17:16:46 476

原创 DDD从小白到入门

DDD终结篇总结一:微服务设计和拆分的原则微服务的演进策略:1、绞杀者策略:绞杀者策略是一种逐步剥离业务能力,用微服务逐步代替原有单体系统的策略,它对单体系统进行领域建模,根据领域边界,在单体系统之外,将新功能和部分业务能力独立出来,建设独立的微服务。新微服务与单体系统保持松耦合关系。随着时间的推移,大部分单体系统的功能将被独立为微服务,这样就慢慢绞杀掉了原来的单体系统。绞杀者策略类似建筑拆迁,完成部分新建筑物后,然后拆除部分旧建筑物。2、修缮者策略:修缮者策略是一种维持原有系统整体能力不变,逐步优

2021-01-20 09:27:03 499 2

原创 DDD从小白到入门

DDD实战篇四:基于DDD的微服务设计实例项目的基本信息:项目的目标是实现在线请假和考勤管理,功能描述如下:1、请假人填写请假单提交审批,根据请假人身份、请假类型和请假天数进行校验,根据审批规则逐级递交上级审批,逐级核批通过则完成审批,否则审批不通过退回申请人。2、根据考勤规则,核销请假数据后,对考勤数据进行校验,输出考勤统计战略设计:战略设计是根据用户旅程分析,找出领域对象和聚合根,对实体和值对象进行聚类组成聚合,划分限界上下文,建立领域模型的过程。战略设计主要包括:产品愿景、场景分析、领域建

2021-01-19 09:08:53 611 1

原创 DDD从小白到入门

DDD实战篇四:从后端到前端:微服务后端,前端如何设计?从单体前端到为前端:为了解决单体前端的问题,我们可以借鉴微服务的设计思想,引入微前端概念。将为服务理念扩展到前端,解决中台微服务化后,前端由于仍为单体而存在的的逻辑复杂和臃肿的问题。微前端:在前端设计时遵守单一职责和复用原则,按照领域模型和微服务边界,将前端页面进行拆分,同时构建多个可以独立部署、完全自治、松耦合的页面组合,其中每个组合只负责特定业务单元的UI元素和功能,这些页面组合就是微前端。微前端与微服务一样,都是将单体应用,按照规则拆分,

2021-01-18 09:37:36 417 1

原创 DDD从小白到入门

DDD实战篇三边界:微服务的各种边界在架构演进中的作用微服务设计的重点就是看微服务设计是否能够支持架构长期、轻松的演进。MartinFowler在提出微服务时,提到了微服务的一个重要特征–演进式架构。演进式架构就是以支持增量的、非破坏的变更作为第一原则,同时支持在应用程序结构层面的多维度变化.如何判断微服务设计是否合理?只需要看它是否满足这样的情形:随着业务的发展和需求的变更,在不断重新拆分或者组合成新的微服务的过程中,不会大幅度增加软件开发和维护的成本,并且这个架构演进的过程是非常轻松、简单的。使

2021-01-15 09:29:21 330

原创 DDD从小白到入门

DDD实战篇二代码模型(上):如何使用DDD设计微服务代码模型DDD分层架构模型: 1、用户接口层:面向前端提供服务适配,面向资源层提供资源适配。这一层接口适配相关的功能。 2、应用层职责:实现服务组合和编排,适应业务流程快速变化的需求。这一层聚集了应用服务和事件相关的功能。 3、领域层:实现领域的核心业务逻辑,这一层聚集了领域模型的聚合、聚合根、实体、值对象、领域服务和事件等 领域对象,以及它们组合所形成的业务能力 4、基础层:贯穿所有层,为各层提供基础资源服务。这一层聚

2021-01-13 09:49:08 1558 1

原创 单例:从小白到入门

1、饿汉式面试的时候,常常会被问到这样一个问题:请您写出一个单例模式(Singleton Pattern)吧。好吧,写就写,这还不容易。顺手写一个:`public class SingletonHungry { private SingletonHungry(){}//私有化构造器 private static final SingletonHungry INSTANCE = new SingletonHungry(); //饿汉式 public

2021-01-12 18:22:18 123

原创 DDD从小白到入门

DDD实战篇一1、如何用DDD重构中台业务模型传统核心应用与互联网电商两者在业务功能上的差异性主要体现在以下四个方面: 1、核心能力的重复建设。由于先手同质保险产品,两者在核心业务流程和功能上必然相似,因此在核心业务能力上存在功能重叠不可避免。 2、通用能力的重复建设。传统核心应用的通用平台大而全,通常会比较重。而互联网电商平台离不开这些通用能力的支撑,但为了保持敏捷开发, 一般会自己建设缩小版的通用功能,比如用户、客户等。这是通用能力的重复建设。 3、业务职能的分离建设。有一类

2021-01-12 09:10:59 548

原创 DDD从小白到入门

DDD进阶篇三1、 中台:将通用的公共能力独立为共享平台,是企业级能力复用平台阿里对中台的定义:中台是一个基础的理念架构,我们要把所有的基础服务用中台的思路建设,进行联通,共同支持上端业务。业务中台更多的是支持在线业务,数据中台提供了数据处理能力和很多的数据产品给所有业务方去用。业务中台、数据中台、算法中台等等一起提供对上层业务的支撑。前台:主要面向客户以及终端销售者,实现营销推广以及交易转化。中台后的前台建设要有一套综合考虑业务边界、流程和平台的整体解决方案,以实现各不同中台前端操作、流程和界面的联

2021-01-11 09:29:36 844

原创 DDD从小白到入门

DDD进阶篇二1、 DDD分层架构:有效降低层与层之间的依赖DDD四层架构: 1、用户接口层(用户界面、Web服务和其他)API、DTO(数据传输对象):用户接口层负责向用户显示信息和解释用户指令。 这里的用户可能是:用户、程序、自动化测试和批处理脚本 2、应用层(应用服务)Application Service:应用层是很薄的一层。主要面向用例和流程相关的操作,可以协调多个聚合的服务和领域对象完成服务编排和组合, 协作完成业务操作。应用层也是微服务之间交互的

2021-01-08 09:13:35 484

原创 DDD从小白到入门

DDD进阶篇一领域事件:解耦微服务的关键1、领域事件可以是业务流程的一个步骤,比如投保业务缴费完成后,触发投保单转保单的动作也可能是定时批处理过程中发生的事件,比如批处理生成季缴保费通知单或是一个事件发生后触发的后续动作,比如密码连续输错三次,触发锁定账户的动作。在领域模型映射到微服务系统架构时,领域事件可以解耦微服务,微服务之间的数据不必要求强一致性,而是基于事件的最终一致性。2、微服务内的领域事件:微服务内大部分事件的集成,都发生在同一个进程内,进程自身可以很好地控制事务,但一个事件如果同时更新多

2021-01-07 09:17:01 207

原创 DDD从小白到入门

领域驱动设计基础篇1、DDD简介DDD(Domain-Driven Design 领域驱动设计),DDD是一种设计思想,他可以同时指导中台业务建模和微服务设计。DDD强调的是领域模型和微服务设计的一致性。DDD 核心思想是通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。2、微服务设计采用领域驱动设计软件架构模式的演变大体来说经历了三个阶段:单机-两层架构(C\S架构): 采用面向过程的设计方法,系统包括客户端 UI 层和数据库两层,采用 C/S 架构模式

2021-01-05 18:53:37 906 1

空空如也

空空如也

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

TA关注的人

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