在一个DDD架构设计中,领域层的设计合理性会直接影响整个架构的代码结构以及应用层、基础设施层的设计。但是领域层设计又是有挑战的任务,特别是在一个业务逻辑相对复杂应用中,每一个业务规则是应该放在Entity、ValueObject 还是 DomainService是值得用心思考的,既要避免未来的扩展性差,又要确保不会过度设计导致复杂性。今天我用一个相对轻松易懂的领域做一个案例 […]
在一个DDD架构设计中,领域层的设计合理性会直接影响整个架构的代码结构以及应用层、基础设施层的设计。但是领域层设计又是有挑战的任务,特别是在一个业务逻辑相对复杂应用中,每一个业务规则是应该放在Entity、ValueObject 还是 DomainService是值得用心思考的,既要避免未来的扩展性差,又要确保不会过度设计导致复杂性。今天我用一个相对轻松易懂的领域做一个案例 […]
阿里妹导读 本文主要针对Spring为什么要支持@Resource和@Autowired两个类似的注解做出了解答。 提到Spring依赖注入,大家最先想到应该是@Resource和@Autowired,很多文章只是讲解了功能上的区别,对于Spring为什么要支持两个这么类似的注解却未提到,属于知其然而不知其所以然。不知大家在使用这两个注解的时候有没有想过,@Resource […]
一、背景 针对老项目,去年做了许多降本增效的事情,其中发现最多的就是接口耗时过长的问题,就集中搞了一次接口性能优化。本文将给小伙伴们分享一下接口优化的通用方案。 二、接口优化方案总结 1.批处理 批量思想:批量操作数据库,这个很好理解,我们在循环插入场景的接口中,可以在批处理执行完成后一次性插入或更新数据库,避免多次IO。 //for循环单笔入库 list.stream() […]
brightnfeng,腾讯 QQ 音乐后台开发工程师 Without music, life would be a mistake. ― Friedrich Nietzsche 1. QQ音乐高可用架构体系全景 故障无处不在,而且无法避免。(分布式计算谬误) 在分布式系统建设的过程中,我们思考的重点不是避免故障,而是拥抱故障,通过构建高可用架构体系来获得优雅应对故障的能力 […]
Tech 导读 Redis是一个开源的内存中的数据结构存储系统,在实际的开发过程中,Redis已经成为不可或缺的组件之一,基于内存实现、合理的数据结构、合理的数据编码、合理的线程模型等特征不仅仅让Redis变得如此之快,同时也造就了Redis对更多或者复杂的场景的支持。 01 Redis的发家史 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单 […]
作者|殷浩 出品|阿里巴巴新零售淘系技术部 写在前面: 这篇文章和《阿里技术专家详解DDD系列 第二弹 - 应用架构》隔了比较久,一方面是工作比较忙,另一方面是在讲Repository之前其实应该先讲Entity(实体)、Aggregate Root(聚合根)、BoundedContext(限界上下文)等概念。但在实际写的过程中,发现单纯讲Entity相关的东西会比较抽象, […]
作者|殷浩 出品|阿里巴巴新零售淘系技术部 架构这个词源于英文里的“Architecture“,源头是土木工程里的“建筑”和“结构”,而架构里的”架“同时又包含了”架子“(scaffolding)的含义,意指能快速搭建起来的固定结构。而今天的应用架构,意指软件系统中固定不变的代码结构、设计模式、规范和组件间的通信方式。在应用开发中架构之所以是最重要的第一步,因为一个好的架构 […]
写在最前面 对于一个架构师来说,在软件开发中如何降低系统复杂度是一个永恒的挑战,无论是94年GoF的Design Patterns,99年的Martin Fowler的Refactoring,02年的P of EAA,还是03年的Enterprise Integration Patterns,都是通过一系列的设计模式或范例来降低一些常见的复杂度。但是问题在于,这些书的理念是 […]
Tech 导读 本文主要介绍目前存在的定时任务处理解决方案。业务系统中存在众多的任务需要定时或定期执行,并且针对不同的系统架构也需要提供不同的解决方案。京东内部也提供了众多定时任务中间件来支持,总结当前各种定时任务原理,从定时任务基础原理、单机定时任务(单线程、多线程)、分布式定时任务介绍目前主流的定时任务的基本原理组成、优缺点等。希望能帮助读者深入理解定时任务 […]
作者 |文库基础架构 导读 introduction 我们做软件开发时,或多或少的会记录日志。由于日志不是系统的核心功能,常常被忽视,定位问题的时候才想起它。本文由浅入深的探讨不起眼的日志是否重要,以及分布式架构下的日志运维工具应该具备哪些能力,希望感兴趣的读者能从本文获得一些启发,有所帮助。 全文8832字,预计阅读时间23分钟。 GEEK TALK 01 什么是日志 日 […]
最近遇到一个服务器的问题:磁盘满了,占用率 100%~ 这个问题太常见了,于是先来排查一波是哪些文件占用了大量磁盘。 一、排查磁盘占用率100% 1.1 查看磁盘使用的大致情况 第一个命令就是 df -h,来查看磁盘的占用情况。df 是 disk free 的缩写,用于显示目前在 Linux 系统上的文件系统磁盘的使用情况统计。 如下图所示,可以看到磁盘占用率 100%。 […]
上个周日12月18号,阿里云香港服务器发生了都不知道算 P 几事故的史诗级宕机事件,整个事件导致香港地区 C 区 ECS、OSS、EBS、RDS 等云服务大范围不可用,故障时间从 早上 8 点多一直持续到晚上 10 点多才最终恢复,整个故障时间长达 14 个小时。 比较有名的交易所平台如 Gate.io 和 OKEX 都受到大面积故障影响,我都还以为他们跑路了 […]
你好,我是悟空。 本文主要内容如下: 一、前言 最近项目的生产环境遇到一个奇怪的问题: 现象:每天早上客服人员在后台创建客服事件时,都会创建失败。当我们重启这个微服务后,后台就可以正常创建了客服事件了。到第二天早上又会创建失败,又得重启这个微服务才行。 初步排查:创建一个客服事件时,会用到 Redis 的递增操作来生成一个唯一的分布式 ID 作为事件 id。代码如下所示: […]
在字节码增强解密(上)的章节中,给大家介绍了字节码的基本结构、主流的字节码增强构架、以及各个架构的优缺点和应用建议。在本章节中,将从字节码的重载、JavaAgent、Dynamic Attach、以及对在线Debug的高级应用展开分析,给大家详细分解下字节码增强的实际应用。让你真正体会下字节码增强技术带来的丝般顺滑体验。 一、字节码的重载 在上一章节中,我们介绍了使用ASM […]
前言 字节码增强:指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。 为什么要进行字节码增强呢?字节码增强可以用在什么地方呢?如何对字节码进行增强?增强的手段都有哪些?一起来看看吧 做为JAVA开发,你应该无数次的听过一句话:一次编译,到处运行。没错,这是JAVA的优势,但你有没有想过这究竟是为什么呢?Why??? 是因 […]
COPYRIGHT © 2014-2023 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang