Javaweb微服务 高级架构编程期末考试报告
一、题目:
搭建一个简易的商城微服务项目,具有登录和下订单的功能,当前已完成两个微服务以及两个界面:
1. eureka-login:登录微服务,校验用户登录时输入的用户密码是否正确,如果正确,跳转到订单界面。如果不正确,清空用户密码。
2. eureka-order:处理用户提交的订单,根据手机数量和电脑数量,计算订单金额。手机和电脑的价格,从eureka-config读取。计算订单金额完成后,通过feign远程调用eureka-payment的http接口,eureka-payment返回订单支付成功。
3. login.jsp:登录界面
4. order.jsp:提交订单界面
请完善微服务的功能如下:
1. eureka-order:远程调用eureka-payment的支付接口,完成支付。支付返回信息:“支付成功,来源于端口为:xxx的服务”。eureka-order开启Hystrix熔断,当eureka-payment不可用时,能返回错误提示信息而不是异常。
2. eureka-payment:两个微服务实例,作为负载均衡。
3. eureka-sever:服务注册中心。
4. eureka-config:配置文件中心,存放phone和computer的价格。
5. eureka-zuul:网关,浏览器访问微服务时,必需经过网关路由转发。外部无法直接访问登录服务、订单服务和支付服务。
整个商城项目项目分为前端和后端,前端由两个简单的jsp页面组成,可以直接使用,后端分为几个微服务。项目的结构图如下:
用户登录、发送订单的流程为1-6:
1.用户通过login.jsp登录,输入用户密码
2.如果用户为user,密码为123456,则正确,跳转到order.jsp界面。
3.在界面上输入手机和电脑数量(输入1即可),点击提交订单,请求发送到网关服务。网关服务通过设置的路由规则,将请求转发给订单服务。
4.订单服务接收到请求,从配置中心读取本地配置文件,获取手机和电脑的单价,计算订单金额。
5.订单服务通过feign远程调用支付服务,并且开启Hystrix熔断熔断保护。
6.支付服务有两个实例,当订单请求被支付服务处理时,返回信息“支付成功,来源于端口为:xxx的服务”到前端浏览器界面。
以上流程为一个正常下订单的案例,还需要考虑以下几种案例:
1. 多次下订单,能看到支付服务返回信息里的端口号是轮流出现的。
2. 当把两个支付实例都关闭时,请求会调用熔断器失败处理方法,最终返回前端浏览器提示信息,而不是订单请求失败。
二、要求说明
1.提交本报告的文件名为:学号-姓名-高级架构编程报告.doc;
2.提交源代码项目;
3.加分项:可以增加一些附加功能,例如界面设计、使用一些其他的组件功能、提供系统的高可用性。
三、代码以及结果展示
请完善未实现的功能,把每个微服务的controller、service、yml配置等代码者截图贴出来,以及浏览器的效果图贴出来。
鄂ICP备2023011697号-1 | Powered By 91代做