- 博客(183)
- 资源 (12)
- 收藏
- 关注
原创 DDD领域驱动设计系列-原理篇-战术设计
controller,service及dao层;缺点:1、所有的业务逻辑都写在service,复用度及可理解性不够;2、service直接依赖于Dao,当dao层实现有变化导致service变化;;
2023-12-24 11:49:13 1151
原创 DDD领域驱动设计系列-原理篇-战略设计
DDD领域驱动设计是架构方法论,适用于业务逻辑较复杂系统。DDD核心目的能输出领域如何划分,以及架构分层如何构建。本文章系列会分2部分讲述DDD:1、DDD原理;2、DDD实践。DDD原理分为战略及战术设计2篇来讲述;上就是通过定义不同组件及组件间的关系实现;最终通过架构来实现;比如一个支付渠道的接入是否能来而DDD通过战略设计来划分出业务域以及定义不同域间的关系;这样相同域的业务需求能在一个业务域完成而不会影响到其它域,无论从开发&测试&部署维度都能影响最小。
2023-12-10 20:02:07 625
原创 电商结算设计
分销电商中涉及支付与结算;支付职责是收钱,;结算核心围绕业务模式涉及哪些,以及这些费用通过什么由给到;;整体设计也是围绕这4大要素进行设计;
2023-12-10 14:03:12 1082
原创 【刷新:重新发现商业与未来】书笔记
文化,使命,愿景价值观:对公司来讲特别重要,这个是企业的原点;使命是有挑战性的,激奋人心的,如阿里:让天下没有难做的生意;定义客户是谁:这点个人感悟公司核心市场决定客户;客户是谁意味着整体企业原则重心都会在客户身上,出现冲突时往往以客户利益为中心进行抉择;关于未来技术三个方向:1、混合现实;在看到技术方向,还需要考虑避免技术对于人类社会的负面影响,如安全,隐私;如微软与苹果早期是竞争对手从不合作,在纳德拉上任后微软与苹果合作:将office在苹果手机上可以使用;对于员工来讲核心四件事:1、薪水;
2023-11-25 21:46:31 598
原创 限流及实际业务应用
当系统流量达到系统或下游承受能力的阈值时对系统进行限流控制以防止系统或下游挂掉,减少影响面。限流组成:阈值及限流策略。阈值是指系统单位时间接收到的请求qps总数;限流策略是指限流行业触发后对应的系统行为,如失败拒绝还是放入等待队列。
2023-08-29 05:42:50 1433
原创 分销架构总结
概述对于过往分销系统的经验总结。视角上会不区分实物及虚拟服务的分销。分销定义:将产品从生产者转移到消费者。分销职责:获客,服务(售前,售中,售后)。核心是通过不同分销渠道将产品能卖出去。在整体分销网络中可能涉及多级分销角色,如实物的批发商,零售商。商业模式商业模式上分:经销,代销。经销是分销商持有库存然后卖给消费者。代销是分销商不持有库存,卖出去时进行代销分账。经销对于分销商会有库存资金风险,但同时利润会高。代销则无库存资金风险但利润较低。而代销模式在自营链路中可以细分为底价
2023-06-23 16:43:45 3572
原创 高并发全链路优化
一.概述高并发就是系统在大流量的情况下保证对客户提供持续稳定的访问。高并发解法:水平&垂直拆分,读写分离,负载均衡,缓存,异步,限流&熔断&超时控制&故障转移(悲观保系统可用性),池化(连接池或内存块池化)。高并发核心原则:优先将流量挡在前置结点。而在设计一个高并发系统的时候,需要做以下事情:1.定指标需要根据业务制定相应的高并发指标,通常是:tps,qps,以及访问性能的指标如99%的访问在100ms以内。2.根据指标进行架构选型...
2022-04-03 16:19:50 2180
原创 分布式事务
一.问题当系统分布式,服务化后,涉及到不同服务间事务一致性问题。如交易涉及库存扣减,支付以及后续的优惠券积分累计。此时如何保证事务的一致性。二.解法常见的解法有:1.二阶段事务2.三阶段事务3.事务补偿4.MQ事务消息这3种解法基本是底层的基础原理涉及的解法,而对于基本某一种解法往往会有相应的具体实现,如tcc就是对应二阶段的解法。三.解法详细1.二阶段事务二阶段的流程整体涉及二阶段,一阶段由事务管理器询问题各资源方是否能提交事务,如果都可以则进入二阶
2022-03-24 17:32:35 724
原创 rocketMq消息事务
问题:解决A系统事务操作完成后要向B系统发送消息,B系统会有相应的处理。因为A系统事务有多个操作,那么就涉及什么时候发送给B系统。如果在事务前发给B系统,则可能A系统事务最终执行失败了,但最终B已经消费成功。如果在事务都做完后发送给B系统,则可能最终消息丢失。解决方案:1.发给B系统的消息与A系统事务是一个落库然后在事务结束后发送消息给B系统,如果成功则将事务记录状态更新为:成功。这时如果发送消息给B系统失败,事务记录中的状态还是待处理,所以需要有一个job去做循环。
2022-03-23 19:17:52 677
原创 设计模式总结
一.创建类设计模式1.单例单例优点:解决资源类的生成只生成一次,如id生成器。缺:不是基于接口编程,后续有扩展时需要改代码。替代:ioc容器单例,工厂模式(解决扩展问题)。a.懒汉模式在实际运行态调用的时候初始化。需要将构造器私有,这样外部就无法通过构造器创建。需要加锁。伪代码:public class CacheRepoFactory{ private volatile CacheRepo singleCacheRepo; private Ca
2022-03-22 22:20:46 345
原创 spring深入
一.生命周期beanDefinition阶段:1.加载生成beanDefinition。2.执行BeanFactoryPostProcessorbean实例化阶段:1.实例化执行构造器生成Java bean。2.设置属性,依赖注入3.执行BeanNameAware回调4.执行BeanFactoryAware回调5.执行applicationContext回调6.执行BeanPostProcessor的before方法7.执行InitialLi.
2022-03-21 22:24:42 380
原创 RocketMq架构
一.概述rocketMq是消息中间件,通常用于业务上的解藕,消峰。二.竞品对比特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级,比 RocketMQ、Kafka 低一个数量级 同 ActiveMQ 10 万级,支撑高吞吐 10 万级,高吞吐,一般配合大数据类的系统来进行实时数据计算、日志采集等场景 topic 数量对吞吐量的影响 topic 可以达到几百/几千的级别,吞吐量会
2022-03-19 16:57:13 3934
原创 java基础知识梳理
一.并发相关1.ThreadLocalthreadLocal主要提供让每个线程有独立一份存储从而减少并发。涉及的核心API比较简单就是:get()与set(T obj)。
2022-03-19 10:03:23 940
原创 http协议
一.目的http协议属于应用层协议。主要是为了解决c/s结构的通讯,简化通信的开发,统一协议,将一些如缓存协议,双方字符编码等进行规范约定。二.请求与响应http1.1 请求:http协议的请求,主要是承载了当前的请求方法(Get或Post),URL(就是域名url),以及一些功能性的约定(如缓存约定Cache-control,If-Modified-Since;可接受字符Accept-Charset,双方通信的消息格式Content-Type)。最后一个就是请求的实体内容了。
2021-10-22 08:08:36 1030
原创 tcp协议记录
一.概述在互联网时代,整体的服务都是通过网络进行。网络如果出现瓶颈也会影响服务体验,更严重的会导致服务不可用。了解网络也是能够在搬砖的工作中,能够识别一些坑,并在出现问题的时候能够较快的定位。二.tcp/ip协议分层一般有7层协议,四层协议。用的比较多的是四层协议,这个协议也是我们大多数人关注的。四层协议发送与接收详细每层数据结构:可以看到上层复用下层能力,发送的时候从上层往下依次将数据包装,接收的时候则依次解封。如应用层是http协议往传办理层提交数据,..
2021-10-16 07:57:53 711
原创 mysql数据库记录
一.体系1.索引2.锁二.索引1.存储索引底层使用B+树存储。B+树除叶子结点存储数据,中间层结点不存储数据。这样做优点:1.索引树较小,能加载到内存,按索引搜索会快,否则有部分索引树在磁盘就会拖慢整体搜索效率。2.整体搜索时间比较平均如果是数据在每个索引结点,因为不同数据大小是不一样的,导致有些数据的查询非常快(在树的中间部分就查到,但有些数据可能在树的底层,导致查询时间相差大)。3.更利于范围查询要查询5到20的数据,B树要做中序遍历(因为数据存储在树
2021-09-25 15:44:41 147
原创 分布式锁记录
一.目的解决多个并发请求时,相应资源的并安全性。二.分类redis,zk,db做为存储进行实现。三.各类实现对比 redis zk db 性能 高 中 低 可靠性 低 中 高 实现复杂度 高 中 低 四.各类实现细节1.redis主要通过setnx,来设置要加的锁及超时时间。但这种有个问题,超时时间不够长,其它线程会进入,从而出现并发。这种只能设置较长的超时时间。所以可
2021-09-24 23:32:26 189
原创 DDD领域驱动设计学习笔记
一.整体知识二.DDD落地目录大的目录划分:interface //面向调用方,如dubboapplication //流程编排层,用于协调不同域服务domain //领域层,业务核心,这层会定义reposity接口: 子域1: entity,reposity接口,service,event事件infrastructor //其它基础设施层,如其它中间件实现dal //reposity实现...
2021-08-24 05:51:22 392
原创 redis架构
一.redis竞品对比存储 数据结构 持久化 集群可用性 网络模型 线程模型 redis 支持value是string,list,hash,set,zset 是 主从,redis cluster无中心分布式集群 非阻塞IO 单线程 无锁 memcache 只支持string 否 需要自行开发 基于twemproxy做 主从集群 非阻
2021-06-29 08:42:27 5462
原创 管理学习
一.概述为什么要做管理?个体的价值输出是有限的,管理可以实现更大的自我价值实现。从管理的职能去看,管理者需要为团队,为公司,上级及团队成员负责。对于公司及上级来讲就是要交付团队的输出价值,提升团队的ROI。二.怎么做可以分三大类去划分管理工作的事情。1.团队规划团队的职能是什么,团队的目标是什么,团队的路径是什么1.1.团队职能团队职能定义的是团队是做什么的。比如:交易中台团队职能:建设XX服务中台,提升业务接入效率。1.2.团队的目标目标..
2020-12-17 20:37:59 149
原创 2020-11-08
DDD1.是什么是一个方法论,用于指导软件业务建模与业务架构。2.目的利用DDD的方法论,我们希望达到以下目标:1.大的问题分解,明确核心问题域,我们主要的精力的资源投入 核心域与支撑域战略层面的指导方法,能将我们现实中遇到的实际业务问题分解,并且能够从资源的分配上将主要精力放在核心域建设上。2.沉淀可复用业务领域知识以领域为核心,分析及抽象出核心业务流程及业务对象,定义业务问题。以此沉淀领域模型,进行复用。3.统一语言在一个业务中,抽象定义领域实体,大家讨论的业..
2020-11-08 16:19:19 98
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人