不会飞的章鱼

熟能生巧,勤能补拙,静能养慧;为而不争,莫向外求,反求诸己;念念不忘,必有回响

微服务网关介绍

在单体应用时代,客户端(Client)直接与后端应用交互。但进入微服务架构后,系统被拆分为成百上千个微服务(如用户服务、订单服务、仓储服务…)。

如果让客户端直接与这些微服务通信,会带来巨大的问题:

  1. 复杂性爆炸:客户端需要记录所有微服务的地址(IP:Port),一旦后端重构或迁移,前端必须同步修改。
  2. 安全隐患:所有微服务直接暴露在公网,难以统一进行身份认证(Authentication)和鉴权(Authorization)。
  3. 跨域问题:每个服务都需要单独处理 CORS。

这时候,我们需要一个**微服务网关 (API Gateway)**。

阅读全文 »

微服务注册中心帮你上户口

在单体应用时代,所有服务都挤在一起,互相调用就像同一个屋檐下喊一声那么简单。但到了微服务时代,服务被拆分成了成百上千个独立的进程,分布在不同的服务器上。这时候,一个棘手的问题出现了:我怎么知道你要找的服务在哪里?

这就好比现实生活中的派出所上户口

1. 形象理解:老王找老六

为了讲清楚注册中心的作用,我们举个生动的例子:

阅读全文 »

序言

在确定了前后端分离的开发模式后,我面临的下一个重要决策就是:前端技术栈的具体选型

前端生态圈发展迅猛,框架和工具层出不穷。对于“慕聘网”这样一个既包含复杂的后台管理系统,又需要支持多端(小程序、App、H5)用户端的项目,选择一套稳定、高效且生态成熟的技术栈至关重要。


一、后台管理系统技术栈

阅读全文 »

单体、分布式、集群、SOA技术架构演变

软件架构并非一蹴而就,而是随着业务复杂度和用户量的增加,不断演进而来的。我们可以将其主要划分为以下几个阶段:

1. 单体应用架构 (All in One)

在互联网发展的早期,业务逻辑相对简单,我们将所有的功能模块(如用户、支付、订单、简历等)都打包在一个 WARJAR 包中,部署在同一台服务器上运行。这就是典型的单体应用架构

📌 架构示意图

阅读全文 »

序言

在开启“慕聘网”这个项目的架构设计之初,我一直在思考一个最基础、也最核心的问题:我们该选择什么样的开发模式?

回顾我的开发生涯,Web 开发的模式经历了翻天覆地的变化。今天我想结合这个项目,和大家深入聊聊为什么在现代企业级应用中,前后端分离不再是一个选项,而是一个必然。


一、我眼中的架构演进:从耦合到拆解

阅读全文 »

项目层次结构

在分布式系统中,合理的工程结构是高内聚、低耦合的基础。本项目采用 Maven 多模块聚合工程(Aggregation Project) 进行构建,确保代码的可复用性和版本管理的一致性。

1. 整体架构图解

下图展示了本项目核心模块之间的依赖关系和层次逻辑:

项目层次结构图解

阅读全文 »

虚拟化与容器化技术简介

在构建现代 Java 高级开发环境时,虚拟化 (Virtualization)容器化 (Containerization) 是两项互补且核心的技术。理解它们的异同和联系,是掌握云原生及 DevOps 流程的第一步。

1. 虚拟化技术 (Virtualization)

虚拟化技术通过在物理硬件上添加一个抽象层(Hypervisor),允许在一台物理机上运行多个相互隔离的操作系统实例(虚拟机 VMs)。

  • 核心特征:每个虚拟机都包含完整的操作系统(Guest OS)、相关的库和应用程序。
  • 典型软件:VMware (本项目推荐用于搭建 Linux 开发底座)。
  • 技术特点
    • 隔离性强:由于拥有独立内核,虚拟机之间的隔离非常彻底。
    • 启动速度慢:启动一个完整的 OS 通常需要数分钟。
    • 资源占用高:每个 Guest OS 都会预占大量的内存和磁盘容量。
    • 可移植性偏弱:虚拟机镜像(如 .ova, .vmdk)通常达数 GB 甚至几十 GB,分发不便。
阅读全文 »

内网互通原则

在开发分布式或微服务架构时,确保各组件(虚拟机、数据库、中间件、移动端)能够相互访问是顺利进行开发的基础。以下是我们在开发环境中必须遵守的“内网互通原则”。

1. 核心准则:打破网络壁垒

为了保证数据在不同设备间顺畅流转,需要从系统、云端及物理网络三个层面进行配置:

关闭本地防火墙

阅读全文 »

开发工具

为了高效开发本项目,我们需要准备一系列涵盖 IDE、数据库管理、接口调试及运维相关的工具。

1. 核心开发 IDE

  • 后端开发
    • IntelliJ IDEA (首选,推荐使用 Ultimate 版本以获得更好的 Spring Cloud 支持)
    • Eclipse / STS (Spring Tool Suite, 经典的 Java 开发工具)
  • 前端/移动端开发
    • VS Code (适用于前端 Web 及跨平台开发)
    • HBuilderX (专为混合 APP 及 uni-app 开发优化)

2. 数据库可视化工具

阅读全文 »

起因

拥有7年的Go开发经验,拥有架构设计和项目管理经验,准备做一些Java相关的技术储备。在网上找了一些资料,发现SpringCloud是一个不错的选择,于是就有了这个项目。

项目介绍

项目是一个以SaaS为企业服务体系的系统化项目,项目包括运营管理系统和企业后台,用于招聘求职,用户端支持安卓下载体验,用于求职。

APP功能

阅读全文 »