生成脚手架 随着新框架的不断稳定(同时也带来了不错的收益),新的项目以及重构项目不断的往新框架上切,基于这个原因,要把新框架整一个脚手架。 脚手架中包含了demo(为了学习而框架,实际开发中会有一些便利性的调整) 注意事项 依赖maven环境,必须配置MVAVA_HOME 依赖jdk环境(一定要jdk,不要jre) maven-archetype 的模板使用velocity 引入插件以及自定义配置文件 先找一个可以跑起来的demo,在pom文件中引入脚手架的maven plugin 我的工程结构如下: 项目地址:h…

2021/11/29 0条评论 1575点热度 0人点赞 阅读全文

背景 项目DDD重构后,所有依赖重新整理,试运行期间发现链路追踪的抓取信息不够丰富,就翻下原来的项目源码,再看下对应的改造下。 环境依赖 kafka elasticsearch 7.10.0 (jdk11) Kibana 7.10 zipkin server sleuth 随着微服务的应用,我们运维系统时面临以下问题 真实情况的请求链路是什么? 链路请求过程中每个耗时了多少? 请求的参数以及每个系统的响应是什么? 分布式链路追踪解决了以上这些问题(当然需要自己手动扩展下) 分布式链路追踪(Distributed T…

2021/08/08 0条评论 1042点热度 0人点赞 阅读全文

zset的数据结构 在redis中有一个有序列表,它的底层是由压缩列表或跳表组成。我们看下对应的数据结构 压缩链表: 跳表: 下载下来4.0的源码 https://download.redis.io/releases/redis-4.0.0.tar.gz 对应的源码: src/server.h # 最大层级 #define ZSKIPLIST_MAXLEVEL 32 /* Should be enough for 2^32 elements */ # 表示上一层级是下一层级的1/4,相当于是一棵四叉树 #defin…

2021/07/23 0条评论 913点热度 0人点赞 阅读全文

什么是布隆过滤器? 布隆过滤器(Bloom Filter)是1970年由布隆提出的本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。 特点: 二进制数组+随机hash 空间效率和查询效率都优于一般算法 O(1) 有一定的误识别率(散列冲突) 删除困难(重合) 高并发场景下,防止缓存穿透; 数据结构 如何快速定位一个元素是否存在? 我们通过redis的全局hash表或者hashMap就能解决这个问题; 看上面的数据结构,两个数据结构差…

2021/07/22 0条评论 871点热度 0人点赞 阅读全文

上周分享了一篇文章(DDD的应用框架实践分享) 周五又在内部将给大家分享了下。现将分享内容与大家分享。 传统开发的弊病: 通过事务脚本模式来开发需求; 开发人员热衷于技术并通过技术手段解决问题,而不是深入思考和设计业务的走向; 过于重视数据库,围绕数据库和数据模型进行建模,按数据流程进行建模; 按技术视角进行业务命名,导致后续迭代以及人员更替时,产品和技术无法对齐; 随着业务的发展,到后续业务、技术无法沟通,各种不理解; 业务希望技术出排期,技术得撸代码,耗费精力; 代码开发的过程中技术和业务耦合,一个场景一个服务…

2021/07/19 0条评论 994点热度 0人点赞 阅读全文

分享一个DDD的应用框架,写了一个简单的demo。 已经在在生产实践。 git地址:https://github.com/yxkong/ddd-framework 框架结构如下: 项目结构如下: 示例流程图: 简单说明: 只启动一个应用在adapter层启动; 接口请求到adapter层,调用DistributeController; controller层做上下文转化以及调用application层; application层进行模型依赖构建,以及领域执行前后的特殊处理; domain层进行了业务逻辑实现(和技术…

2021/07/14 0条评论 1141点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 30篇原创内容 公众号 接之前的事务系列 mysql事务-innodb中的redolog详解 innodb中的undolog 详解 mysql事务-MVCC 通过前面几篇文章,我们知道,并发产生的事务,基本上会有写-写,读-写或写-读,也是由于隔离级别的不同,可能会导致脏读、幻读等问题。 在这篇(mysql事务-MVCC)文章中,我们了解到读操作通过多版本并发控制(MVCC)来解决不一致的问题。 写操作可以通…

2021/07/04 0条评论 809点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 痛点 如何分层 无领域专家 底层数据固定,不想做大的改动 值对象、实体、聚合根拆分困难 先说如何分层 先看下六边形架构  如图我将项目分为四层 领域层 也是最底层,整个核心的业务逻辑在此封装 封装了业务逻辑、定义了领域模型和实体(不对聚合根、值对象、实体做太多的划分) 如果业务逻辑设计领域较多,可以封装领域服务 此层是面向接口编程,不关注实现 数据从哪来,我不管,我就要这样的…

2021/06/03 0条评论 1353点热度 0人点赞 阅读全文