Java阶段五Day04

Java阶段五Day04

文章目录

  • Java阶段五Day04
    • 订单交易案例
      • 调整项目案例环境
        • 克隆项目
        • 验证maven环境
        • 数据库导入本地mysql
        • 核心业务
      • 实现csmall-for-jsd-all纵向拆分
        • csmall-for-jsd-order系统
      • 删除module(删除maven项目)
      • idea记录maven忽略
      • pull远程解决冲突
      • git对比功能
      • 分支使用(同步代码)
    • 微服务
      • 项目拆分最终细节调整
      • 微服务概括
    • 微服务框架
      • Spring Cloud
      • Spring Cloud alibaba / Spring Cloud Netflix
      • 本阶段学习的组件总结
    • Nacos
      • Nacos介绍
      • Nacos功能
      • 环境准备

订单交易案例

调整项目案例环境

克隆项目

Java阶段五Day04_第1张图片

验证maven环境

  • 观察pom内容,改掉maven中java11部分

    • csmall-for-jsd-commons maven编译变量值 java11

    Java阶段五Day04_第2张图片

    • csmall-for-jsd-all

    Java阶段五Day04_第3张图片

  • 运行maven compile检查是否装配成功

Java阶段五Day04_第4张图片

Java阶段五Day04_第5张图片

数据库导入本地mysql

项目根目录 doc 下有个csmall_demo.sql

了解表格(不是真是业务的详细表格,抽取简化字段的表格)

cart_tbl:每一行都表示一个用户的购物车商品

id commodity_code price count user_id
购物车主键 商品编码(商品id) 单价 购物车商品数量 用户id

order_tbl:每行数据,都代表一个用户的订单

id user_id commodity_code count money
订单id 用户id 商品编码(商品id) 购买数量 总计

stock_tbl

id commodity_code count
商品id 商品编码 库存数

核心业务

案例中涉及内容包括购物车,包括订单,包括库存,完整下单流程

  1. 用户浏览商品
  2. 看中商品添加购物车
  3. 去结算,引入订单信息页面
  4. 提交订单,验证库存,购物车商品删除

实现csmall-for-jsd-all纵向拆分

按照业务拆分,分为4个业务 businessordercartstock,但是拆分之后无法执行核心整体流程

csmall-for-jsd-order系统

  • 创建项目

Java阶段五Day04_第6张图片

  • 创建子项目

order-adapter: 启动的web应用(springboot web应用)

order-serviceadapter里业务实现ServiceImpl 对外暴露的接口,在这个项目包中的接口类,允许外界远程调用(dubbo用到的)

Java阶段五Day04_第7张图片

  • 粘贴留选代码——csmall-for-jsd-order-service

Java阶段五Day04_第8张图片

  • 补充对应依赖——csmall-for-jsd-order-service

Java阶段五Day04_第9张图片

<dependencies>
    <dependency>
        <groupId>cn.tedu.csmall.demogroupId>
        <artifactId>csmall-for-jsd-commonsartifactId>
    dependency>
dependencies>
  • 粘贴代码——csmall-for-jsd-order-adapter

Java阶段五Day04_第10张图片

  • 调整依赖csmall-for-jsd-order-adapter
    • spring-boot-starter-web
    • mysql-connector-java
    • mybatis-spring-boot-starter
    • csmall-for-jsd-order-service
  • 删除代码,只保留订单业务功能和通用配置
    • 代码Knife4j保留,mybatis扫描配置保留
    • controller 只保留 order 相关
    • service 只保留 order 相关
    • mapper只保留 order 相关
    • 启动类修改名字
    • 配置yaml修改端口 20001~20004

之后同样将businesscartstock 拆分

删除module(删除maven项目)

  1. 先删除module

Java阶段五Day04_第11张图片

Java阶段五Day04_第12张图片

  1. delete删除磁盘文件,文件夹

​ 右键项目 选择delete

  1. 创建项目的module标签要在父工程删除

Java阶段五Day04_第13张图片

idea记录maven忽略

删除某个maven项目,在idea中可能会记录在maven的忽略表中

导致重新创建项目的,pom文件就是灰色的

Java阶段五Day04_第14张图片

pull远程解决冲突

Java阶段五Day04_第15张图片

建议: 点击merge 挨个查看

Java阶段五Day04_第16张图片

git对比功能

Java阶段五Day04_第17张图片

Java阶段五Day04_第18张图片

Java阶段五Day04_第19张图片

注意:不一样 不代表 就是有错

Java阶段五Day04_第20张图片

分支使用(同步代码)

思路: 不在master跟代码,建立自己的分支,跟完当天代码,对比master提交的最终版本

微服务

项目拆分最终细节调整

  • 依赖关系是否正确(pom文件)

Java阶段五Day04_第21张图片

Java阶段五Day04_第22张图片

  • adapter保留拆分功能,service接口包(代码删除)

Java阶段五Day04_第23张图片

  • 最终效果
    • 不能运行(需要调用的业务本地没有实现类)

微服务概括

单体架构存在的问题,目前可以进行纵向拆分,但是依然有没解决的问题,远程调用

这种问题就是拆分之后出现的新问题(拆分的结构已经是一个分布式结构)

这种拆分的结果,每个独立运行的项目——微服务

  • 微:小,可以拆分的更细致

  • 服务: 可调用的功能

分布式:一件事(广义的),多个进程 / 节点 / 模块 完成。都叫做分布式

微服务结构,满足灵活扩展的,引出非常多问题,比如远程调用,比如调用失败的熔断,比如分布式事务等.

想要解决,引入微服务架构技术,比如Spring Cloud / Spring Cloud Alibaba

微服务框架

Spring Cloud

SpringCloud是由Spring提供的一套能够快速搭建微服务架构程序,解决分布式微服务架构中各种问题的的框架集.

框架集表示SpringCloud不是一个框架,而是很多框架的集合,并不需要把所有内容都学完

Spring Cloud alibaba / Spring Cloud Netflix

在众多springcloud框架集中的微服务组件里,有2个知名的团队阿里巴巴和奈非,他们完成了一个微服务中需要用到的绝大多数组件的开发

Java阶段五Day04_第24张图片

本阶段学习的组件总结

  • nacos: 注册中心 配置中心
  • dubbo: 远程调用 rpc 框架
  • sentinel: 熔断器,限流器
  • rocketmq: 异步通信队列
  • spring cloud gateway: 微服务网关

所有组件使用,整合到spring cloudspring cloud出现是基于springboot完成的.

使用学习的步骤,大三步

  1. 依赖
  2. 配置yaml
  3. 简单配置: 可能是配置类,可能是注解

注意: 只学习其中1-2个,没有全学完,有可能不能完成一个完整的微服务架构的

Nacos

Nacos介绍

Nacos官网文档地址

缩写就是 (Naming Configuration service),本身nacos就是一个service服务,这个服务的功能包括命名管理,服务注册发现配置管理

Nacos 致力于帮助您发现配置管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
和spring cloud原生组件eureka是非常类似的,所以在eureka停更之后,nacos的活跃度非常高,无论从应用还是性能都是首选替代品。

Nacos功能

  • 服务治理
    • 注册功能
    • 发现功能
  • 配置管理

环境准备

  • 安装包(课前资料)

Java阶段五Day04_第25张图片

将这个安装包解压到没有中文,没有空格的路径中.

  • 运行nacos-server服务端

如果提示没有JAVA_HOME环境变量,制作一个

Java阶段五Day04_第26张图片

Java阶段五Day04_第27张图片

进入到nacos家目录中bin文件夹下,打开cmd

Java阶段五Day04_第28张图片

运行命令,添加一个选项,单机运行

bin> startup.cmd -m standalone
bin> startup.sh -m standalone

cmd运行程序有个坑: 卡主,选中cmd enter回车

如果出现其他问题,一定是jdk版本问题

startup.cmd 拼接,判断最终运行了一个command命令

查看nacos启动所有问题的日志文件

Java阶段五Day04_第29张图片

Java阶段五Day04_第30张图片

  • 可访问的nacos控制台页面

访问localhost:8848/nacos地址

通过登录用户名 密码(默认用户名和密码都是 nacos)

Java阶段五Day04_第31张图片

Java阶段五Day04_第32张图片

你可能感兴趣的:(培训之旅,java,spring,cloud,nacos,cloud,alibaba)