刷新
Consul服务注册发现集群搭建

Consul是HashiCorp的开源工具,用于服务发现、配置管理和分布式一致性。它提供服务注册与发现、健康检查、KV存储、多数据中心支持,并基于Raft协议保证一致性。Consul还具有DNS接口和Web UI。要安装,可从HashiCorp或阿里云下载,使用`yum`在Linux上安装。启动单机... ...

浅谈循环依赖

说明 循环依赖是一个大家讨论很多的话题,它更多是一个工程上的问题而不是技术问题,我们需要首先有一定的认知: 如同两个人相互帮忙,两个类之间你调用我的,我调用你的是很正常也很自然的需求模型。 单一依赖确实有好处,改动一个最顶层类时不需要在意对底部类的影响,但是从本来就自然的模型非要理顺的话就需要额外付 ...

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

博主头像 客户管理系统的应用架构设计 应用层定义了软件系统的应用功能,负责接收用户的请求,协调领域层能力来执行任务,并将结果返回给用户,功能模块包括: 客户管理:核心功能模块,负责收集和更新客户信息,包括个人资料、联系方式、消费习惯、会员卡、归属信息(比如销售或顾问)和备注。这个模块是CRM系统的基础,支撑其 ...

AI+软件工程:10倍提效!用ChatGPT编写系统功能文档

博主头像 系统功能文档是一种描述软件系统功能和操作方式的文档。它让开发团队、测试人员、项目管理者、客户和最终用户对系统行为有清晰、全面的了解。 通过ChatGPT,我们能让编写系统功能文档的效率提升10倍以上。 用ChatGPT生成系统功能文档 我们以线上商城系统为例,介绍如何使用ChatGPT帮我们完成系统 ...

Objective-C之Class底层结构探索

博主头像 isa 走位图 在讲 OC->Class 底层类结构之前,先看下下面这张图: 通过isa走位图 得出的结论是: 1,类,父类,元类都包含了 isa, superclass 2,对象isa指向类对象,类对象的isa指向了元类,元类的 isa 指向了根元类,根元类 isa 指向自己 3,类的 super ...

Kafka之Producer网络传输

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

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

博主头像 零售商家为什么要建设线上商城? 传统的实体门店服务范围有限,只能吸引周边500米以内的消费者。因此,如何拓展服务范围,吸引更多的消费者到店,成为了店家迫切需要解决的问题。 缺乏忠实顾客,客户基础不稳,往往是一次性购物,门店无法形成有效的顾客回流。在当前的市场环境下,构建并维护粉丝群体,成为了商家的核 ...

设计模式学习(一)单例模式补充——单例模式析构

博主头像 目录前言无法调用析构函数的原因改进方法内嵌回收类智能指针局部静态变量参考文章 前言 在《单例模式学习》中提到了,在单例对象是通过new关键字动态分配在堆上的情况下,当程序退出时,不会通过C++的RAII机制自动调用其析构函数。本文讨论一下这种现象的原因以及解决方法。 无法调用析构函数的原因 在DCL ...

设计模式学习(一)单例模式的几种实现方式

博主头像 目录前言饿汉式懒汉式懒汉式DCLP局部静态式(Meyers' Singleton)单例模板参考文章 前言 单例模式,其核心目标是确保在程序运行的过程中,有且只有存在一个实例才能保证他们的逻辑正确性以及良好的效率。因此单例模式的实现思路就是确保一个类有且只有一个实例,并提供一个该实例的全局访问点。 单 ...

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

博主头像 C语言中抽象函数与具体实现的命名与组织 在C语言的项目开发中,尤其是嵌入式系统和开源软件项目里,合理地命名和组织抽象函数及其具体实现对于提高代码的可读性、可维护性和可扩展性至关重要。以下是关于如何在这些项目中有效地处理抽象和实现的一些建议: 抽象函数与具体实现的区分 API作为接口:API定义了一组 ...

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

博主头像 零售商家为什么要建设线上商城 传统的实体门店服务范围有限,只能吸引周边500米内的消费者。因此,如何拓展服务范围,吸引更多消费者到店,成为了店家迫切需要解决的问题。 缺乏忠实顾客,客户基础不稳,往往是一次性购物,门店无法形成有效的顾客回流。在当前的市场环境下,构建并维护粉丝群体,成为了商家的核心竞争 ...

基于RocketMQ实现分布式事务

博主头像 背景 在一个微服务架构的项目中,一个业务操作可能涉及到多个服务,这些服务往往是独立部署,构成一个个独立的系统。这种分布式的系统架构往往面临着分布式事务的问题。为了保证系统数据的一致性,我们需要确保这些服务中的操作要么全部成功,要么全部失败。通过使用RocketMQ实现分布式事务,我们可以协调这些服务 ...

过滤器和拦截器的辨析

博主头像 过滤器和拦截器的辨析 介绍 过滤器和拦截器都是为了在请求到达目标处理器(Servlet或Controller)之前或者之后插入自定义的处理逻辑 过滤器: 遵循AOP(面向切面编程)思想实现,基于Servlet规范提供的Filter接口,它是位于客户端请求与服务器响应之间的一个组件,依赖于Servle ...

什么是函数回调

博主头像 什么是函数回调? 介绍 函数回调是一种编程概念,它描述的是这样一个过程:一个函数(称为回调函数)作为参数传递给另一个函数(称为调用函数),当满足一定条件或者在某个特定时刻,调用函数会调用传递过来的回调函数。这种机制允许程序员在编写代码时,能够在不同的上下文中重用函数,同时也能实现异步处理、事件驱动编 ...

SpringBoot整合Log4j2日志框架

博主头像 SpringBoot底层默认使用logback日志框架。 切换使用Log4j2日志框架。 pom.xml配置 <!-- web场景启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-b ...

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

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

<123···50>