- 博客(200)
- 收藏
- 关注
原创 DDD之六边形架构(Hexagonal Architecture)
六边形架构(Hexagonal Architecture),也被称为端口和适配器架构(Ports and Adapters Architecture),是一种软件架构模式,用于构建可测试、可维护和灵活的应用程序。
2023-11-22 09:18:10
2072
原创 DDD之上下文映射图(Context Mapping)
在DDD中,限界上下文与限界上下文之间需要相互集成,这种集成关系在DDD中称为上下文映射(Context Mapping),也就是子域与子域之间的集成关系。
2023-10-16 14:09:24
1046
原创 DDD之领域(Domain)和子域(Subdomain)
子域在领域驱动设计中是对业务领域的逻辑划分,而微服务是一种实现架构上的解决方案,将系统拆分为独立的服务。子域可以指导微服务的划分,并帮助实现系统的松耦合、可扩展的微服务架构。
2023-10-16 14:07:08
1170
2
原创 DDD之限界上下文(Bounded Context)和通用语言(Ubiquitous Language)
限界上下文定义了一个特定的领域范围,而通用语言是在这个上下文中被共享和理解的一种语言。每个限界上下文都有自己的通用语言,用于描述和解决特定上下文中的业务问题。
2023-10-13 09:47:03
384
原创 领域驱动设计(DDD)系列文章前言
我准备写关于领域驱动设计(DDD)的系列文章。当然,为了编写这些文章,我阅读了许多相关书籍,并结合自己的经验总结了一些方法。我还将提供具体的代码实现方法等内容。然而,请注意这些只是我个人的经验和学习记录,并不具有标准和规范的性质。领域驱动设计是一个非常庞大的主题,我只是略懂其中一些内容。
2023-10-13 09:43:27
96
原创 Docker的使用
本文提供了一个简要介绍关于Docker的概念、使用场景,并分析了它的优点和缺点。同时,还介绍了常用的Docker操作命令,以及如何通过Dockerfile来自定义镜像。通过这篇文章,读者可以初步了解Docker并开始使用它进行应用开发和部署。
2023-10-11 09:40:47
125
原创 VMware安装CentOS虚拟机
VMware 虚拟机是一种基于虚拟化技术的软件应用程序,它允许用户在一台物理计算机上模拟多个虚拟计算环境。虚拟机提供了一个可隔离且独立于物理硬件的虚拟环境,其中可以安装和运行操作系统和应用程序。
2023-10-11 09:38:42
160
原创 MySQL 定时备份
通过编写备份脚本、执行脚本并设置定时执行任务,我们可以轻松地实现定时备份MySQL数据库。这种自动化的备份策略不仅省去了手动备份的麻烦,还可以保障数据的安全和可靠性。
2023-10-10 14:35:04
166
原创 MySQL 主从同步(读写分离)
如何配置和管理MySQL主从同步,实现了在生产环境中的读写分离和高可用性。实际情况下:写数据库只有一个,读数据库会有多个,是*一主多从*的架构。
2023-10-09 14:01:13
863
原创 18. knife4j 接口文档
本文介绍了如何在Spring Boot应用中使用Knife4j这一API文档在线查看工具,并通过配置Gateway实现了API接口聚合。使用Knife4j可以方便地生成API接口文档,提高开发效率以及降低开发成本。而聚合接口可以使得我们可以统一管理不同服务的API文档,便于开发人员查阅和使用。
2023-10-07 10:46:29
302
原创 17. MinIO 分布式文件存储
通过Spring Boot集成Minio,我们可以在应用程序中方便地使用Minio的功能,Spring Boot集成Minio可以帮助我们更轻松地开发和管理云存储解决方案。
2023-10-07 10:45:11
983
原创 16. Seata 分布式事务
本文通过用户购买商品的案例来使用Seata分布式事务:创建订单、扣除余额、减少库存,可以看出通过Seata使用分布式事务非常的简单方便,只需要一个`@GlobalTransactional`注解。
2023-09-28 09:26:18
472
原创 15. RocketMQ 消息队列
本文介绍了使用Spring Boot集成RocketMQ的方法,创建了一个生产者服务`rocketmq-producer`和一个消费者服务`rocketmq-consumer`。生产者可以将数据发送到RocketMQ服务器中,消费者可以订阅主题并接收、处理数据。这种集成方式方便快捷,可以快速实现RocketMQ的生产和消费功能。
2023-09-28 09:24:20
299
原创 14. Redisson 分布式锁
Redisson分布式锁的基本原理是通过Redis的`setnx`命令实现的,在微服务的场景下,一个应用会部署多个实例,就需要保证多个实例的多个线程同时只能有一个线程来操作资源,那就需要分布式锁,
2023-09-27 11:47:06
171
原创 13. ShardingSphere-Proxy 数据库代理
ShardingSphere-Proxy是ShardingSphere分布式数据库中间件的一部分,它提供了**数据库代理**功能。通过引入ShardingSphere-Proxy,可以在无需改动应用程序代码的情况下,实现分库分表的数据库分片、读写分离、逻辑表达式分片等功能。ShardingSphere-Proxy独立运行于应用程序和数据库之间,充当数据库的代理,自动将请求路由至相应的数据库节点。
2023-09-27 11:44:41
443
原创 12. ShardingSphere-JDBC 分库分表
ShardingSphere-JDBC是一个基于JDBC协议的中间件,JDBC API是Java访问关系型数据库的标准API,因此ShardingSphere-JDBC适用于JDBC API连接的各种关系型数据库。它通过JDBC驱动程序来拦截应用程序发出的数据库访问请求,并根据事先配置的分片规则将请求路由到正确的数据库分片中。
2023-09-18 12:22:17
404
原创 11. Leaf-segment 分布式ID
当应用程序只使用单个数据库时,可以使用数据库自增的方式来生成id,这种方式既简单,查询又快。然而,当应用程序需要进行分库分表时,即将数据分散到多个数据库和数据表中,使用数据库自增的方式会导致id在不同表中重复,那么就需要使用分布式id来确保不同表中id的唯一性。
2023-09-18 12:20:44
236
原创 10. xxl-job 分布式任务调度
XXL-Job是一个功能强大、易用的分布式任务调度框架,适用于各种任务调度场景。它为我们提供了一个可靠、可视化的任务调度中心,并具备了任务调度、执行监控、失败重试等核心功能,能够帮助我们简化分布式任务调度的开发和管理,提高系统的可靠性和稳定性。
2023-09-18 11:49:56
158
原创 09. Nacos 配置中心
Nacos配置中心提供了一个方便、灵活的方式来管理和动态配置微服务架构中的配置。它集中式管理配置信息,支持实时配置变更和动态刷新,具有分布式架构和多环境支持。
2023-09-18 11:27:33
159
原创 08. Sentinel 流量控制和接口防护
一款分布式系统的流量控制和防护工具。它提供了实时的监控、熔断、限流和系统保护等功能,使得服务在面对高并发、大流量的情况下能够保持稳定性和可靠性。
2023-09-18 11:25:52
139
原创 06. Gateway 网关
微服务架构中,单个应用会被划分成多个子服务,客户端访问这些服务时,需要考虑每个服务的访问地址,这个过程会比较复杂。而Gateway将这些微服务进行统一管理,对外提供一个**统一的访问地址**,并将请求由网关路由到对应的子服务上去,从而提高系统的效率和可维护性。
2023-09-18 10:47:08
97
原创 05. OpenFeign 服务调用
微服务架构中使用OpenFeign进行服务调用,OpenFeign提供了一种简洁的方式来定义和处理服务间的调用。
2023-09-18 10:46:03
115
原创 04. Nacos 的安装
Nacos可以做服务注册发现和配置中心。微服务的核心就是服务注册中心,一个服务去调用另一个服务,是怎么去找到另一个服务的?首先所有的服务都需要注册到注册中心,然后服务调用方根据服务名称在注册中心去找另一个服务。注册中心就提供服务注册和服务发现的功能。
2023-09-18 10:44:43
338
原创 03. 自定义parent模块
在一个拥有多个模块的微服务项目中,使用`parent`模块来管理依赖包的版本号是非常重要的。这样做可以确保所有模块使用相同的依赖版本,避免了手动在每个模块中写具体的版本号,从而降低了出错的风险并减少了工作量。
2023-09-18 10:42:21
181
原创 02. IntelliJ IDEA 创建多模块项目
在一个工程目录下创建多个子模块,每个子模块负责独立的功能,通常可以将每个子模块视为一个微服务,通过这种方式来组织和管理项目,将不同的模块独立开发、测试和部署,极大地提高项目的可维护性和开发效率。
2023-09-18 10:41:16
371
原创 01. pring Cloud微服务系列之 包版本号约定
Spring Cloud微服务系列包版本号,jdk8、nacos-2.2.0、sentinel-1.8.6、minio-8.4.3rocketmq-4.9.4、rockermq-dashboard-1.0.1、skywalking-agent-8.16.0、seata-server-1.6.1等jmeter-5.6.2tomcat-8.5.93nginx-1.24.0
2023-09-18 10:37:41
329
原创 00. Spring Cloud 微服务系列前言
关于Spring Cloud微服务的系列文章,-包括:nacos 服务注册与发现、nacos 配置中心、OpenFeign 服务调用、Gateway 网关、Skywalking 服务链路追踪、Sentinel 服务降级限流、xxl-job 分布式任务调度、Leaf-segment 分布式ID、ShardingSphere-JDBC 分库分表、ShardingSphere-Proxy 数据库代理、Redisson 分布式锁、RocketMQ 消息队列等
2023-09-18 10:34:38
77
原创 07. 通过汇编语言来深入理解程序
C语言、汇编语言、机器语言。探究了函数调用的原理,包括栈内存和栈帧的概念、栈帧相关的数据(如返回地址、函数参数、局部变量)等。
2023-09-06 09:33:33
163
原创 06. 小数和小数精度丢失
浮点数是计算机内部用尾数和指数来表示的,采用科学记数法的形式,即 ±m * 2^n,其中符号位、指数位和尾数位占据不同的位数,分别存储不同的数据。浮点数在表示小数时会产生精度误差,因为某些十进制数在二进制下是无限循环小数,而计算机二进制又有精度限制,无法精确存储和表示这些无限循环小数,所以在进行浮点数运算时可能会出现误差。
2023-09-05 09:28:34
158
原创 05. 逻辑门和加法器等原理探究
二极管、电路、逻辑门以及二进制加法器等内容。逻辑门是数字电路中的基本部件,包括与门、或门和非门等,用于实现不同的布尔逻辑运算。二进制加法器是数字电路的另一种基本部件,用于二进制数字的加减运算。
2023-09-04 09:30:00
234
原创 02. 计算机的组成
本章对计算机的组成进行了深入的分析,涵盖了主要的硬件组成,包括中央处理器、内存、输入输出设备、硬盘以及其他外部设备。虽然以上硬件组成同等重要,但由于程序员平时编程所需直接操作的、最多打交道的却是计算机的内存,因此在讲解这些硬件组成时,对内存进行了最为详细、深入的剖析。
2023-09-01 09:16:58
577
原创 01. 二进制原理
硬盘也叫磁盘,它内部是排列整齐的一个个小磁体。磁盘上面有“电刷”,磁盘可以转动,“电刷”也可以上下移动,过程中“电刷”会刷过每个小磁体,可以知道磁体是否有磁性,并且电刷会放电来控制小磁体是否有磁性。“电刷”刷过磁盘中一小段,得到上面排列整齐的小磁体的磁性顺序组合,我们假设有磁性用1表示,无磁性用0表示,假如得到01100001(8个小磁体),那它代表什么意思呢?8个小磁体的是否有磁性总共有28=256种可能, 从00000000到11111111。
2023-08-31 11:04:10
343
原创 00. 深入编程原理系列文章前言
尽管这些主题是基础中的基础,但对于许多有多年编程经验的开发者来说,二进制、内存指针、函数调用机制等仍然是困惑的领域。然而,只有牢固的基础才能让人走的更远。有一本很著名的书,就叫《从0到1》,表示从无到有的意思,这里也叫从0到1,表示代码到底怎么来的,程序到底是怎么运行的意思。通过阅读这个系列的文章,您将对程序运行原理有全新的认识,并获得坚实的基础,使您在编程领域迈出更长远的步伐。这个系列旨在向入门级程序员传达程序原理的核心知识,帮助他们全面了解编程的本质。程序最底层就是二进制,而0和1就是二进制的两个。
2023-08-31 11:00:02
110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人