[企業架構] 技術架構師
技術架構師,將整間企業的IT開發流程至維運管理,視為一個大型系統進行規劃。並分為四個面向進行發展: - [開發平台]:構建高度重用的共用模組和服務,並在多個專案項目和應用系統中使用,以提高開發效率並降低維護成本。 - [DevOps平台]:建構連續集成、連續交付的工作環境,將開發與維運團隊更緊密地連 ...阅读全文
技術架構師,將整間企業的IT開發流程至維運管理,視為一個大型系統進行規劃。並分為四個面向進行發展: - [開發平台]:構建高度重用的共用模組和服務,並在多個專案項目和應用系統中使用,以提高開發效率並降低維護成本。 - [DevOps平台]:建構連續集成、連續交付的工作環境,將開發與維運團隊更緊密地連 ...阅读全文
还在一行一行地手撸查询代码吗?有没有想过全自动的,通用的,免写代码的动态查询?上一篇简略讲了构造出可执行的表达式的原型实现,本篇来剧透一下多层嵌套查询Expression Lambda表达式的动态自动构建完之后有什么用法。 ...阅读全文
本文通过对贫血三层架构进行精炼,推导出适合我们落地的应用架构,并且将之实现为Maven Archetype以应用到实际开发,然而应用架构只是落地DDD的一个知识点,要完整落地DDD还必须体系化地掌握限界上下文、上下文映射、充血模型、实体、值对象、领域服务、Factory、Repository等知识点... ...阅读全文
设计一个支持百万用户的系统是具有挑战性的,这是一段需要不断改进和不断提升的旅程。在本章中,我们将构建一个支持单个用户的系统,并逐渐扩展以服务于数百万用户。阅读本章后,您将掌握一些技巧,帮助您解决系统设计面试问题。 > AI不会取代你,使用AI的人会。欢迎关注我的公众号:更AI。以程序员的视角来看AI ...阅读全文
### 命令模式(Command Pattern) #### 一、定义 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 将一个请求封 ...阅读全文
还在一行一行地手撸查询代码吗?有没有想过全自动的,通用的,免写代码的动态查询?上一篇简略讲了如何根据前面设计的查询描述器构造出可执行的表达式的原理,本篇来讲讲如何用C#代码实现俄罗斯套娃般的多层嵌套查询Expression Lambda表达式的动态自动构建。 ...阅读全文
还在手撸查询代码吗?有没有想过全自动的,通用的,免写代码的动态查询?上一篇简略讲了如何把查询条件用代码描述出来,本篇接继来讲讲,如何根据前面设计好查询描述器构造出可执行的表达式。 ...阅读全文
如果你有 *n* 个缓存服务器,一个常见的负载均衡方式是使用以下的哈希方法: *服务器索引 = 哈希(键) % N*,其中 *N* 是服务器池的大小。 让我们通过一个例子来说明这是如何工作的。如表5-1所示,我们有4台服务器和8个字符串键及其哈希值。 ![image-2023052022160981 ...阅读全文
基于Expression Lambda表达式树的通用复杂动态查询构建器。在上一篇中构思了把查询子句描述出来的数据结构,那么能否用代码将其表达出来,如何表达呢?本篇来讲讲查询描述器的构思。 ...阅读全文
基于Expression Lambda表达式树的通用复杂动态查询构建器。在上一篇中构思了把查询子句描述出来的数据结构,那么能否用代码将其表达出来,如何表达呢?本篇来讲讲查询描述器的构思。 ...阅读全文
### GC 优化 #### 1.防止大对象Buffer到内存中 **现象**:当大包请求时,YGC 耗时严重 **原因**:默认情况下 Zuul2 并不会缓存请求体(DirectByteBuffer),也就意味着它会先发送接收到的请求 Headers 到后端服务,之后接收到请求体再继续发送到后端服 ...阅读全文
一、什么是微服务 微服务是一种技术架构,通常我们可以把它理解为一组可以相互之间协同工作的应用程序或服务,这些应用程序或服务能够被单独部署到不同的服务器中,并且能够自主运行和维护。 微服务技术只是一个名称而已,或许我们在日常工作中已经或多或少在使用其中的一种或几种技术和架构,但我们并没有将其称之为微服 ...阅读全文
# Redis内存兜底策略——内存淘汰及回收机制 Redis内存淘汰及回收策略都是Redis**内存优化兜底**的策略,那它们是如何进行**兜底**的呢?先来说明一下什么是内存淘汰和内存回收策略: - Redis内存淘汰:当Redis的内存使用**超过配置**的限制时,根据一定的策略删除一些键,以* ...阅读全文
## 一、模式动机 >观察者模式用于描述对象之间的依赖关系,它引入了观察者和观察目标两类不同的角色,由于提供了抽象层,它使得增加新的观察者和观察目标都很方便。观察者模式广泛应用于各种编程语言的事件处理模型中,Java语言也提供了对观察者模式的全面支持。 - 一个对象的状态或行为的变化将导致其他对象的 ...阅读全文
## 一、模式动机 迭代器模式(Iterator Pattern)是一种使用频率非常高的行为型设计模式,**迭代器**用于**对一个聚合对象进行遍历**。通过**引入迭代器**可以**将数据的遍历功能从聚合对象中分离出来**,**聚合对象只负责存储数据**,而**遍历数据由迭代器来完成**,简化了聚 ...阅读全文
之前总聊微服务,今天换一个话题---低代码。低代码这个词也是最近这几年很火的概念,尤其是遇到大环境下行,很多大厂和互联网那个公司也在慢慢在低代码方向发力,当然,对于传统项目交付型的软件公司,低代码也具有相当大的吸引力。 ...阅读全文
不同团队落地DDD所采取的应用架构风格可能不同,并没有统一的、标准的DDD工程架构。即使无法制定通用的、标准的工程应用架构,但为团队制定一个遵循领域驱动设计思想的参考架构依然有价值。 ...阅读全文
一.业务描述 最近在负责公司一个语音的微服务模块优化,这个模块主要的业务是:1.天猫精灵、小度、若琪、小京鱼、小爱同学、思必驰这些第三方音响对我们的用户进行oauth2/JWT授权; 2.这些第三方音响服务调用我们的设备发现接口对公司的设备信息在第三方平台进行一个存储;3.第三方平台对用户发出的语音 ...阅读全文
缓存的四种更新策略,Cache Aside、Read/Write Through 、Write Behind Caching、Refresh-Ahead,本文将介绍这四种策略及如何选择正确的策略 ...阅读全文
关于JWT,可以说是分布式系统下的一个利器,我在我的很多项目实践中,认证系统的第一选择都是JWT。它的优势会让你欲罢不能,就像你领优惠券一样。 ...阅读全文