Consul服务注册发现集群搭建

Consul是HashiCorp的开源工具,用于服务发现、配置管理和分布式一致性。它提供服务注册与发现、健康检查、KV存储、多数据中心支持,并基于Raft协议保证一致性。Consul还具有DNS接口和Web UI。要安装,可从Hashi...阅读全文

浅谈循环依赖

说明 循环依赖是一个大家讨论很多的话题,它更多是一个工程上的问题而不是技术问题,我们需要首先有一定的认知: 如同两个人相互帮忙,两个类之间你调用我的,我调用你的是很正常也很自然的需求模型。 单一依赖确实有好处,改动一个最顶层类时不需要在...阅读全文

新零售SaaS架构:客户管理系统的应用架构设计

客户管理系统的应用架构设计 应用层定义了软件系统的应用功能,负责接收用户的请求,协调领域层能力来执行任务,并将结果返回给用户,功能模块包括: 客户管理:核心功能模块,负责收集和更新客户信息,包括个人资料、联系方式、消费习惯、会员卡、归属...阅读全文

Objective-C之Class底层结构探索

isa 走位图 在讲 OC->Class 底层类结构之前,先看下下面这张图: 通过isa走位图 得出的结论是: 1,类,父类,元类都包含了 isa, superclass 2,对象isa指向类对象,类对象的isa指向了元类,元类的...阅读全文

Kafka之Producer网络传输

一、背景 在Kafka的组成部分(Broker、Consumer、Producer)中,设计理念迥异,每个部分都有自己独特的思考。而把这些部分有机地组织起来,使其成为一个整体的便是「网络传输」。区别于其他消息队列的方式(RocketMQ...阅读全文

新零售SaaS架构:线上商城系统架构设计

零售商家为什么要建设线上商城? 传统的实体门店服务范围有限,只能吸引周边500米以内的消费者。因此,如何拓展服务范围,吸引更多的消费者到店,成为了店家迫切需要解决的问题。 缺乏忠实顾客,客户基础不稳,往往是一次性购物,门店无法形成有效的...阅读全文

设计模式——抽象工厂实验

抽象工厂实验 实验场景:电子商务系统中创建的订单分为国内订单(Domestic Order)和海外订单 (Overseas Order);国内订单使用人民币支付(RMB Payment),海外订单使用 美元支付(USD Payment)...阅读全文

C语言中抽象函数与具体实现的命名与组织

C语言中抽象函数与具体实现的命名与组织 在C语言的项目开发中,尤其是嵌入式系统和开源软件项目里,合理地命名和组织抽象函数及其具体实现对于提高代码的可读性、可维护性和可扩展性至关重要。以下是关于如何在这些项目中有效地处理抽象和实现的一些建...阅读全文

新零售SaaS架构:什么是线上商城系统?

零售商家为什么要建设线上商城 传统的实体门店服务范围有限,只能吸引周边500米内的消费者。因此,如何拓展服务范围,吸引更多消费者到店,成为了店家迫切需要解决的问题。 缺乏忠实顾客,客户基础不稳,往往是一次性购物,门店无法形成有效的顾客回...阅读全文

基于RocketMQ实现分布式事务

背景 在一个微服务架构的项目中,一个业务操作可能涉及到多个服务,这些服务往往是独立部署,构成一个个独立的系统。这种分布式的系统架构往往面临着分布式事务的问题。为了保证系统数据的一致性,我们需要确保这些服务中的操作要么全部成功,要么全部失...阅读全文

过滤器和拦截器的辨析

过滤器和拦截器的辨析 介绍 过滤器和拦截器都是为了在请求到达目标处理器(Servlet或Controller)之前或者之后插入自定义的处理逻辑 过滤器: 遵循AOP(面向切面编程)思想实现,基于Servlet规范提供的Filter接口,...阅读全文

什么是函数回调

什么是函数回调? 介绍 函数回调是一种编程概念,它描述的是这样一个过程:一个函数(称为回调函数)作为参数传递给另一个函数(称为调用函数),当满足一定条件或者在某个特定时刻,调用函数会调用传递过来的回调函数。这种机制允许程序员在编写代码时...阅读全文

微服务架构,客户端如何catch服务端的异常?

在微服务架构或者分布式系统中,客户端如何捕捉服务端的异常?这里说的客户端指调用方、服务端指被调用方,它们通常运行在不同的进程之中,这些进程可能运行在同一台服务器,也可能运行在不同的服务器,甚至不同的数据机房;其使用的技术栈可能相同,也可...阅读全文