观察pom
内容,改掉maven中java11部分
csmall-for-jsd-commons
maven编译变量值 java11csmall-for-jsd-all
运行maven compile
检查是否装配成功
项目根目录 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 | 商品编码 | 库存数 |
案例中涉及内容包括购物车,包括订单,包括库存,完整下单流程
按照业务拆分,分为4个业务 business
,order
, cart
, stock
,但是拆分之后无法执行核心整体流程
order-adapter
: 启动的web应用(springboot web应用)
order-service
:adapter
里业务实现ServiceImpl
对外暴露的接口,在这个项目包中的接口类,允许外界远程调用(dubbo用到的)
csmall-for-jsd-order-service
csmall-for-jsd-order-service
<dependencies>
<dependency>
<groupId>cn.tedu.csmall.demogroupId>
<artifactId>csmall-for-jsd-commonsartifactId>
dependency>
dependencies>
csmall-for-jsd-order-adapter
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
之后同样将business
,cart
,stock
拆分
module
delete
删除磁盘文件,文件夹 右键项目 选择delete
module
标签要在父工程删除删除某个maven
项目,在idea中可能会记录在maven
的忽略表中
导致重新创建项目的,pom
文件就是灰色的
建议: 点击merge
挨个查看
注意:不一样 不代表 就是有错
思路: 不在master
跟代码,建立自己的分支,跟完当天代码,对比master
提交的最终版本
pom
文件)adapter
保留拆分功能,service
接口包(代码删除)单体架构存在的问题,目前可以进行纵向拆分,但是依然有没解决的问题,远程调用
这种问题就是拆分之后出现的新问题(拆分的结构已经是一个分布式结构)
这种拆分的结果,每个独立运行的项目——微服务
微:小,可以拆分的更细致
服务: 可调用的功能
分布式:一件事(广义的),多个进程 / 节点 / 模块 完成。都叫做分布式
微服务结构,满足灵活扩展的,引出非常多问题,比如远程调用,比如调用失败的熔断,比如分布式事务等.
想要解决,引入微服务架构技术,比如Spring Cloud
/ Spring Cloud Alibaba
SpringCloud
是由Spring
提供的一套能够快速搭建微服务架构程序,解决分布式微服务架构中各种问题的的框架集.
框架集表示SpringCloud
不是一个框架,而是很多框架的集合,并不需要把所有内容都学完
在众多springcloud框架集中的微服务组件里,有2个知名的团队阿里巴巴和奈非,他们完成了一个微服务中需要用到的绝大多数组件的开发
nacos
: 注册中心 配置中心dubbo
: 远程调用 rpc 框架sentinel
: 熔断器,限流器rocketmq
: 异步通信队列spring cloud gateway
: 微服务网关所有组件使用,整合到spring cloud
,spring cloud
出现是基于springboot
完成的.
使用学习的步骤,大三步
注意: 只学习其中1-2个,没有全学完,有可能不能完成一个完整的微服务架构的
Nacos官网文档地址
缩写就是 (Naming Configuration service
),本身nacos就是一个service服务,这个服务的功能包括命名管理,服务注册发现和配置管理
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
和spring cloud原生组件eureka是非常类似的,所以在eureka停更之后,nacos的活跃度非常高,无论从应用还是性能都是首选替代品。
将这个安装包解压到没有中文,没有空格的路径中.
nacos-server
服务端如果提示没有JAVA_HOME环境变量,制作一个
进入到nacos
家目录中bin文件夹下,打开cmd
运行命令,添加一个选项,单机运行
bin> startup.cmd -m standalone
bin> startup.sh -m standalone
cmd运行程序有个坑: 卡主,选中cmd enter
回车
如果出现其他问题,一定是jdk版本问题
startup.cmd
拼接,判断最终运行了一个command
命令
查看nacos启动所有问题的日志文件
访问localhost:8848/nacos
地址
通过登录用户名 密码(默认用户名和密码都是 nacos)