微服务示例工程
<h2>1、工程结构介绍</h2>
<h3>背景</h3>
<p>1、串联微服务的各个组件(注册中心、配置中心、网关、熔断降级、分布式链路追踪、分布式任务调度等...)
2、帮业务开发人员梳理出常用可能出现异常的场景(比如服务调用超时、并发场景下服务应对措施等...)
3、能让业务开发人员通过我们的样例,就能快速搭建出基于微服务的业务服务</p>
<h3>秒杀设计</h3>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/8bc23f55d083e5bfe007e30bbf9d1869?showdoc=.jpg" alt="" /></p>
<h3>服务划分</h3>
<p>示例以秒杀作为场景,拆分的服务有五个:
nisbos-springcloud-example-shop:前端及静态页面、中转、项目访问总入口
nisbos-springcloud-example-goods:商品信息模块
nisbos-springcloud-example-oms:订单模块
nisbos-springcloud-example-stock:库存模块
nisbos-springcloud-example-user: 用户模块
流程:
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/d21af560a180ff4ca67bd2eba98f58d1?showdoc=.jpg" alt="" /></p>
<h3>已集成组件</h3>
<p>eureka、gateway、apollo、cat、feign、ribbon、hystrix、xxl-job等</p>
<h2>2、运行环境</h2>
<p>开发工具:IntelliJ IDEA(或eclipse、sts等)、Navicat
软件环境:jdk8以上、maven、git、mysql</p>
<h2>3、 项目启动顺序</h2>
<ul>
<li>nisbos-eureka(若连得是测试服务器的eureka则可以不用启动)</li>
<li>nisbos-gateway(若连得是测试服务器的eureka则可以不用启动)</li>
<li>nisbos-springcloud-example-goods(eureka的相关配置需要确认下)</li>
<li>nisbos-springcloud-example-stock</li>
<li>nisbos-springcloud-example-shop:在项目启动的时候会初始化秒杀商品到redis中,需要查询商品及库存信息需要调用goods、stock工程,需要在这两个工程之后启动,如果不想初始化,可以更改yml配置文件如下:</li>
</ul>
<pre><code class="language-java"># 启动是否开启同步商品信息到redis(true 开启 false 关闭)
synchro:
switch: true</code></pre>
<ul>
<li>nisbos-springcloud-example-oms</li>
<li>nisbos-springcloud-example-user</li>
</ul>
<h2>4、项目使用流程</h2>
<h3>4.1、工程总入口</h3>
<ul>
<li>
<p>启动完项目工程后,通过网关路由总入口进入登录页:<a href="http://localhost:8000/demo">http://localhost:8000/demo</a>
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/940897a0e48b3a042e0f1402aebcee0e?showdoc=.jpg" alt="" /></p>
</li>
<li>用户名:admin 密码:admin
<blockquote>
<p>登录操作若出现“网络异常,请稍后再试”,请检查user工程是否成功启动</p>
</blockquote></li>
</ul>
<h3>4.2、商品列表</h3>
<ul>
<li>
<p>成功登录后,跳转到商品列表页
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/b471a4c5934d17dfcc8109f0450656ab?showdoc=.jpg" alt="" /></p>
</li>
<li>设置秒杀
设置或取消秒杀,可设置秒杀的开始时间
<blockquote>
<p>shop工程初始化商品到redis中若失败或者同步配置处于关闭状态,可在此位置进行设置生效</p>
</blockquote></li>
</ul>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/3eff5727a5faf9ee370de1d3e18f57a1?showdoc=.jpg" alt="" /></p>
<h3>4.3、秒杀商品详情页</h3>
<ul>
<li>秒杀未开始
<blockquote>
<p>秒杀未开始“立即购买”按钮不可点击,</p>
</blockquote></li>
</ul>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/8f9980dd0c617c2afccf615dc1c060d6?showdoc=.jpg" alt="" /></p>
<ul>
<li>模拟下单
设置请求数,点击“立即购买”,返回的秒杀状态列表页状态:
未消费(秒杀成功,kafka未消费)、
秒杀成功(kafka已消费,反馈的信息)、
该用户已经秒杀过、
活动太火爆,请稍后再试、
没有库存了</li>
</ul>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/7536603f006151697c5f5488b0dad2c6?showdoc=.jpg" alt="" /></p>