developS

2023年8月14日

模板设计模式

摘要: 一.意图 模板方法模式 (Template Method) 是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。,没有关联关系。 因此,在模板方法模式的类结构图中,只 阅读全文

posted @ 2023-08-14 16:19 四十四次日落95 阅读(58) 评论(0) 推荐(0)
责任链设计模式

摘要: 一.意图 职责链模式(Chain Of Responsibility) 是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这个对象连成一条 阅读全文

posted @ 2023-08-14 15:48 四十四次日落95 阅读(31) 评论(0) 推荐(0)

2023年8月13日

基本类型和包装类的区别

摘要: Java提供了基本数据类型,并且提供了包装类型。(拆箱和装箱机制) Byte(对应 byte) Short(对应 short) Integer(对应 int) Long(对应 long) Float(对应 float) Double(对应 double) Character(对应 char) Boo 阅读全文

posted @ 2023-08-13 21:41 四十四次日落95 阅读(76) 评论(0) 推荐(0)

2023年8月9日

浅谈项目架构设计

摘要: 整理自b站up主 主要一点是最合适的是最好的,不必为了过于追求某项技术而冗余! 一.功能性需求 1.跟实际的业务需求是对应的! 2.所使用的技术框架是不是够先进,文档是否完善,使用过程中容易排查到问题 3.技术是否为开源的,够不够活跃,更新频率等 4.成本:学习成本,使用成本,迁移成本,维护成本,要 阅读全文

posted @ 2023-08-09 20:30 四十四次日落95 阅读(178) 评论(0) 推荐(0)

2023年8月4日

分布式锁的一些理解

摘要: 分布式锁,属于分布式系统,是一种跨进程的跨机器节点的互斥锁,它可以用来保证多机器节点对于共享资源访问的排他性。 分布式锁的锁定为多进程多机器节点 满足特性: 1.排他性:同一时刻只能有一个节点去访问资源 2.可重入性:允许获得锁的进程,可以在没有释放锁之前再次重新获得锁 3.超时释放:防止程序执行异 阅读全文

posted @ 2023-08-04 14:31 四十四次日落95 阅读(65) 评论(0) 推荐(0)

2023年8月3日

乐观锁和悲观锁的理解

摘要: 乐观锁:乐观的预计,认为冲突的概率很低!过程为:1.修改共享资源 2.验证是否发生冲突 3.若无其他线程修改,完成 4.若存在其他线程修改,放弃本次操作 悲观锁:悲观的预计,认为冲突的频率很高,很容易出现冲突,访问之前需要先上锁,每一时间内只有一个线程访问到共享资源 常见的乐观锁: CAS(comp 阅读全文

posted @ 2023-08-03 00:39 四十四次日落95 阅读(37) 评论(0) 推荐(0)

2023年7月31日

观察者模式在项目中的实际应用

摘要: 观察者模式观察者模式的定义:在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知! 发布订阅模式是什么? 观察者模式和发布订阅模式是有一点点区别的,区别有以下几点: 前者:观察者订阅主题,主题也维护观察者的记录,而后者:发布者和订阅者不需要彼此了解,而是在消息队列 阅读全文

posted @ 2023-07-31 22:28 四十四次日落95 阅读(92) 评论(0) 推荐(0)
uuid的设计与使用

摘要: UUID全称Universal Unique Identifier是一串128位数字码,用于唯一识别网络对象或者事件。 核心思想是结合机器的网卡、当地时间、时间戳,随机数,机器号来生成GUID 项目背景: 项目中存在公司基础信息,不同产线的资质信息,合同,银行账号等信息 新增场景,需要有一个sid标 阅读全文

posted @ 2023-07-31 21:04 四十四次日落95 阅读(84) 评论(0) 推荐(0)

2023年7月30日

记一次线上DB负载上升问题

摘要: 一.背景 因账目核对,目前要求是每月8日开始推送当月数据,因此需要8日推送整个1周数据(例:7月8日开始推送7月的数据) 二.问题 dba告知当前数据库所在集群负载增加30%以上,通过查询得知当前数据库与其他财务库两个库同属于一个集群, 集群负载过大会影响其他财务结算,支付等数据部分,产生很大的影响 阅读全文

posted @ 2023-07-30 23:19 四十四次日落95 阅读(48) 评论(0) 推荐(0)
线程池的应用

摘要: 业务场景中存在需要推送数据的情况,步骤如下: 1.通过获取当前日期的最小id和最大id 2.分段获取数据,每次取4000条数据 3.使用消息队列推送数据 目前单线程直接推送数据,频率在15000条/分钟。考虑到业务高峰期的情况,数据量在500万以上,推送时间可能达到6h,效率较低, 因此引入多线程加 阅读全文

posted @ 2023-07-30 22:50 四十四次日落95 阅读(41) 评论(0) 推荐(0)