自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小虎哥的技术博客

不做码农,只做工程师!

  • 博客(200)
  • 收藏
  • 关注

原创 DDD之模块(Module)

模块化是领域驱动设计中的重要概念之一,它能帮助我们更好地组织代码、优化结构和维护业务领域相关的逻辑。

2023-11-22 09:20:19 225

原创 DDD之六边形架构(Hexagonal Architecture)

六边形架构(Hexagonal Architecture),也被称为端口和适配器架构(Ports and Adapters Architecture),是一种软件架构模式,用于构建可测试、可维护和灵活的应用程序。

2023-11-22 09:18:10 668

原创 DDD之上下文映射图(Context Mapping)

在DDD中,限界上下文与限界上下文之间需要相互集成,这种集成关系在DDD中称为上下文映射(Context Mapping),也就是子域与子域之间的集成关系。

2023-10-16 14:09:24 607

原创 DDD之领域(Domain)和子域(Subdomain)

子域在领域驱动设计中是对业务领域的逻辑划分,而微服务是一种实现架构上的解决方案,将系统拆分为独立的服务。子域可以指导微服务的划分,并帮助实现系统的松耦合、可扩展的微服务架构。

2023-10-16 14:07:08 733 2

原创 DDD之限界上下文(Bounded Context)和通用语言(Ubiquitous Language)

限界上下文定义了一个特定的领域范围,而通用语言是在这个上下文中被共享和理解的一种语言。每个限界上下文都有自己的通用语言,用于描述和解决特定上下文中的业务问题。

2023-10-13 09:47:03 223

原创 领域驱动设计(DDD)系列文章前言

我准备写关于领域驱动设计(DDD)的系列文章。当然,为了编写这些文章,我阅读了许多相关书籍,并结合自己的经验总结了一些方法。我还将提供具体的代码实现方法等内容。然而,请注意这些只是我个人的经验和学习记录,并不具有标准和规范的性质。领域驱动设计是一个非常庞大的主题,我只是略懂其中一些内容。

2023-10-13 09:43:27 63

原创 Spring Cloud 微服务系列文章合集,一次性看个够!

一套关于Spring Cloud微服务的系列文章合集,关于微服务用到的各种知识。

2023-10-11 10:18:28 990

原创 Docker的使用

本文提供了一个简要介绍关于Docker的概念、使用场景,并分析了它的优点和缺点。同时,还介绍了常用的Docker操作命令,以及如何通过Dockerfile来自定义镜像。通过这篇文章,读者可以初步了解Docker并开始使用它进行应用开发和部署。

2023-10-11 09:40:47 85

原创 VMware安装CentOS虚拟机

VMware 虚拟机是一种基于虚拟化技术的软件应用程序,它允许用户在一台物理计算机上模拟多个虚拟计算环境。虚拟机提供了一个可隔离且独立于物理硬件的虚拟环境,其中可以安装和运行操作系统和应用程序。

2023-10-11 09:38:42 83

原创 Spring Boot 国际化 i18n

Spring Boot 国际化 i18n

2023-10-10 14:36:56 548

原创 MySQL 定时备份

通过编写备份脚本、执行脚本并设置定时执行任务,我们可以轻松地实现定时备份MySQL数据库。这种自动化的备份策略不仅省去了手动备份的麻烦,还可以保障数据的安全和可靠性。

2023-10-10 14:35:04 118

原创 MySQL 主从同步(读写分离)

如何配置和管理MySQL主从同步,实现了在生产环境中的读写分离和高可用性。实际情况下:写数据库只有一个,读数据库会有多个,是*一主多从*的架构。

2023-10-09 14:01:13 807

原创 nginx 详细的使用教程

本文介绍了Nginx的安装方法、基本配置、常用命令、正向代理、反向代理、负载均衡等方面内容。

2023-10-09 13:58:45 428

原创 18. knife4j 接口文档

本文介绍了如何在Spring Boot应用中使用Knife4j这一API文档在线查看工具,并通过配置Gateway实现了API接口聚合。使用Knife4j可以方便地生成API接口文档,提高开发效率以及降低开发成本。而聚合接口可以使得我们可以统一管理不同服务的API文档,便于开发人员查阅和使用。

2023-10-07 10:46:29 179

原创 17. MinIO 分布式文件存储

通过Spring Boot集成Minio,我们可以在应用程序中方便地使用Minio的功能,Spring Boot集成Minio可以帮助我们更轻松地开发和管理云存储解决方案。

2023-10-07 10:45:11 458

原创 16. Seata 分布式事务

本文通过用户购买商品的案例来使用Seata分布式事务:创建订单、扣除余额、减少库存,可以看出通过Seata使用分布式事务非常的简单方便,只需要一个`@GlobalTransactional`注解。

2023-09-28 09:26:18 330

原创 15. RocketMQ 消息队列

本文介绍了使用Spring Boot集成RocketMQ的方法,创建了一个生产者服务`rocketmq-producer`和一个消费者服务`rocketmq-consumer`。生产者可以将数据发送到RocketMQ服务器中,消费者可以订阅主题并接收、处理数据。这种集成方式方便快捷,可以快速实现RocketMQ的生产和消费功能。

2023-09-28 09:24:20 120

原创 14. Redisson 分布式锁

Redisson分布式锁的基本原理是通过Redis的`setnx`命令实现的,在微服务的场景下,一个应用会部署多个实例,就需要保证多个实例的多个线程同时只能有一个线程来操作资源,那就需要分布式锁,

2023-09-27 11:47:06 113

原创 13. ShardingSphere-Proxy 数据库代理

ShardingSphere-Proxy是ShardingSphere分布式数据库中间件的一部分,它提供了**数据库代理**功能。通过引入ShardingSphere-Proxy,可以在无需改动应用程序代码的情况下,实现分库分表的数据库分片、读写分离、逻辑表达式分片等功能。ShardingSphere-Proxy独立运行于应用程序和数据库之间,充当数据库的代理,自动将请求路由至相应的数据库节点。

2023-09-27 11:44:41 243

原创 12. ShardingSphere-JDBC 分库分表

ShardingSphere-JDBC是一个基于JDBC协议的中间件,JDBC API是Java访问关系型数据库的标准API,因此ShardingSphere-JDBC适用于JDBC API连接的各种关系型数据库。它通过JDBC驱动程序来拦截应用程序发出的数据库访问请求,并根据事先配置的分片规则将请求路由到正确的数据库分片中。

2023-09-18 12:22:17 263

原创 11. Leaf-segment 分布式ID

当应用程序只使用单个数据库时,可以使用数据库自增的方式来生成id,这种方式既简单,查询又快。然而,当应用程序需要进行分库分表时,即将数据分散到多个数据库和数据表中,使用数据库自增的方式会导致id在不同表中重复,那么就需要使用分布式id来确保不同表中id的唯一性。

2023-09-18 12:20:44 157

原创 10. xxl-job 分布式任务调度

XXL-Job是一个功能强大、易用的分布式任务调度框架,适用于各种任务调度场景。它为我们提供了一个可靠、可视化的任务调度中心,并具备了任务调度、执行监控、失败重试等核心功能,能够帮助我们简化分布式任务调度的开发和管理,提高系统的可靠性和稳定性。

2023-09-18 11:49:56 109

原创 09. Nacos 配置中心

Nacos配置中心提供了一个方便、灵活的方式来管理和动态配置微服务架构中的配置。它集中式管理配置信息,支持实时配置变更和动态刷新,具有分布式架构和多环境支持。

2023-09-18 11:27:33 96

原创 08. Sentinel 流量控制和接口防护

一款分布式系统的流量控制和防护工具。它提供了实时的监控、熔断、限流和系统保护等功能,使得服务在面对高并发、大流量的情况下能够保持稳定性和可靠性。

2023-09-18 11:25:52 91

原创 07. Skywalking 服务监控和链路追踪

SkyWalking对运行中的服务进行实时监控,收集系统的调用链、方法调用路径等关键数据指标。

2023-09-18 11:22:55 270

原创 06. Gateway 网关

微服务架构中,单个应用会被划分成多个子服务,客户端访问这些服务时,需要考虑每个服务的访问地址,这个过程会比较复杂。而Gateway将这些微服务进行统一管理,对外提供一个**统一的访问地址**,并将请求由网关路由到对应的子服务上去,从而提高系统的效率和可维护性。

2023-09-18 10:47:08 64

原创 05. OpenFeign 服务调用

微服务架构中使用OpenFeign进行服务调用,OpenFeign提供了一种简洁的方式来定义和处理服务间的调用。

2023-09-18 10:46:03 70

原创 04. Nacos 的安装

Nacos可以做服务注册发现和配置中心。微服务的核心就是服务注册中心,一个服务去调用另一个服务,是怎么去找到另一个服务的?首先所有的服务都需要注册到注册中心,然后服务调用方根据服务名称在注册中心去找另一个服务。注册中心就提供服务注册和服务发现的功能。

2023-09-18 10:44:43 193

原创 03. 自定义parent模块

在一个拥有多个模块的微服务项目中,使用`parent`模块来管理依赖包的版本号是非常重要的。这样做可以确保所有模块使用相同的依赖版本,避免了手动在每个模块中写具体的版本号,从而降低了出错的风险并减少了工作量。

2023-09-18 10:42:21 86

原创 02. IntelliJ IDEA 创建多模块项目

在一个工程目录下创建多个子模块,每个子模块负责独立的功能,通常可以将每个子模块视为一个微服务,通过这种方式来组织和管理项目,将不同的模块独立开发、测试和部署,极大地提高项目的可维护性和开发效率。

2023-09-18 10:41:16 255

原创 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 255

原创 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 46

原创 07. 通过汇编语言来深入理解程序

C语言、汇编语言、机器语言。探究了函数调用的原理,包括栈内存和栈帧的概念、栈帧相关的数据(如返回地址、函数参数、局部变量)等。

2023-09-06 09:33:33 54

原创 06. 小数和小数精度丢失

浮点数是计算机内部用尾数和指数来表示的,采用科学记数法的形式,即 ±m * 2^n,其中符号位、指数位和尾数位占据不同的位数,分别存储不同的数据。浮点数在表示小数时会产生精度误差,因为某些十进制数在二进制下是无限循环小数,而计算机二进制又有精度限制,无法精确存储和表示这些无限循环小数,所以在进行浮点数运算时可能会出现误差。

2023-09-05 09:28:34 102

原创 05. 逻辑门和加法器等原理探究

二极管、电路、逻辑门以及二进制加法器等内容。逻辑门是数字电路中的基本部件,包括与门、或门和非门等,用于实现不同的布尔逻辑运算。二进制加法器是数字电路的另一种基本部件,用于二进制数字的加减运算。

2023-09-04 09:30:00 150

原创 04. 函数和函数调用机制

阐述了函数调用机制,深入探讨了栈、栈内存和栈帧等概念,从而使读者能够全面了解函数调用的过程和栈帧的作用。

2023-09-03 11:34:58 160

原创 03. 程序在内存中被CPU执行

程序是由指令和数据组成的,程序是在内存中被CPU执行的。程序执行的流程是通过程序计数器来完成的。

2023-09-02 12:02:13 167

原创 02. 计算机的组成

本章对计算机的组成进行了深入的分析,涵盖了主要的硬件组成,包括中央处理器、内存、输入输出设备、硬盘以及其他外部设备。虽然以上硬件组成同等重要,但由于程序员平时编程所需直接操作的、最多打交道的却是计算机的内存,因此在讲解这些硬件组成时,对内存进行了最为详细、深入的剖析。

2023-09-01 09:16:58 159

原创 01. 二进制原理

硬盘也叫磁盘,它内部是排列整齐的一个个小磁体。磁盘上面有“电刷”,磁盘可以转动,“电刷”也可以上下移动,过程中“电刷”会刷过每个小磁体,可以知道磁体是否有磁性,并且电刷会放电来控制小磁体是否有磁性。“电刷”刷过磁盘中一小段,得到上面排列整齐的小磁体的磁性顺序组合,我们假设有磁性用1表示,无磁性用0表示,假如得到01100001(8个小磁体),那它代表什么意思呢?8个小磁体的是否有磁性总共有28=256种可能, 从00000000到11111111。

2023-08-31 11:04:10 162

原创 00. 深入编程原理系列文章前言

尽管这些主题是基础中的基础,但对于许多有多年编程经验的开发者来说,二进制、内存指针、函数调用机制等仍然是困惑的领域。然而,只有牢固的基础才能让人走的更远。有一本很著名的书,就叫《从0到1》,表示从无到有的意思,这里也叫从0到1,表示代码到底怎么来的,程序到底是怎么运行的意思。通过阅读这个系列的文章,您将对程序运行原理有全新的认识,并获得坚实的基础,使您在编程领域迈出更长远的步伐。这个系列旨在向入门级程序员传达程序原理的核心知识,帮助他们全面了解编程的本质。程序最底层就是二进制,而0和1就是二进制的两个。

2023-08-31 11:00:02 62

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除