微服务理解1
微服务概念
单体:所有功能在一个应用里。
单体就是把用户、商品、订单、支付、库存、售后这些功能都放在一个项目里,打成一个包,部署到一台服务器或一个实例上。
比如一个数码产品销售与维修管理系统,如果所有模块都写在一个 Spring Boot 项目里,共用一个数据库,那它就是单体。
优点:开发简单、部署简单、调试方便。
缺点:模块耦合高,改一个地方可能影响全局;流量上来后只能整体扩容;某个模块出问题可能拖垮整个应用。
分布式:功能拆到不同服务/节点上。
分布式是把一个大系统按业务拆成多个独立服务,比如:
商品服务
订单服务
用户服务
维修服务
库存服务
它们各自独立部署,通过 HTTP、RPC、消息队列通信。
分布式解决的是“功能拆分”的问题。
但它也会带来新问题:分布式事务、服务发现、链路追踪、接口超时、数据一致性。
集群:同一个服务部署多份,一起扛流量
集群是同一个服务部署多个实例,比如订单服务启动 3 个实例,前面加一个 Nginx 或网关做负载均衡。
它解决的是“容量和高可用”的问题:
一个实例扛不住,就多来几个
一个实例挂了,其他实例还能继续服务
集群里的每个节点通常跑的是相同服务。
Spring Cloud是一系列框架的集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设
施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring
Boot的开发风格做到一键启动和部署。
总结: SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理组件的
集合。
微服务环境搭建
技术选型
持久层: SpingData Jpa
数据库: MySQL5.7
其他: SpringCloud Alibaba 技术栈
模块设计
--- shop-parent 父工程
--- shop-product-api 商品微服务api 【存放商品实体】
--- shop-product-server 商品微服务 【端口:808x】
--- shop-order-api 订单微服务api 【存放订单实体】
--- shop-order-server 订单微服务 【端口:809x】
服务治理 Nacos Discovery
服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。
服务注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服
务的详细信息。并在注册中心形成一张服务的清单,服务注册中心需要以心跳的方式去监测清单中
的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务。
服务发现:服务调用方向服务注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务实
例的访问。

注册中心一般包含如下几个功能:
- 服务发现:
服务注册:保存服务提供者和服务调用者的信息
服务订阅:服务调用者订阅服务提供者的信息,注册中心向订阅者推送提供者的信息 - 服务健康检测
检测服务提供者的健康情况,如果发现异常,执行服务剔除
注册中心
Nacos
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它是 Spring
Cloud Alibaba 组件之一,负责服务注册发现和服务配置。

浙公网安备 33010602011771号