Skip to main content

hw10-impl

请你在大二开发的E-Book系统的基础上,完成下列任务:

  • A. 请你在自己的机器上安装Nginx,并像上课举例一样运行同一个应用的两个实例,然后让Nginx来作为网关转发请求。请你在nginx.conf中依次运行三种不同的转发策略,以及对两个实例配置不同的权重,将运行结果截图贴在Word文档中,并根据截图详细叙述各种配置下运行结果的差异,并分析产生这种差异的原因。

答:一、使用round-robin策略 以下是config文件: 10-1 以下的hello可以区分两个运行在8100和8101端口的实例,nginx代理到8180 10-2 以下是运行结果: 第一次: 10-3 第二次: 10-4 第三次: 10-5 第四次: 10-6 round-robin的策略就是轮流来处理,有服务器1,服务器2作为后端接受请求,对于请求,就第⼀次交给server1,第⼆次交给server2,第三次交给server1,第四次交给server2,以此类推。 二、使用round-robin+权重配置策略 以下是config文件: 10-7 以下是运行结果: 第一次: 10-8 第二次: 10-9 第三次: 10-10 第四次: 10-10

这次在配置的时候 server localhost:8100 weight=3; ,给第⼀个服务器加上⼀个3的权重,第二个服务器不变,交给服务器1和服务器2的比例应该是3:1,所以假如进⾏访问:第⼀次server1,第⼆次server1,第三次server1,第四次server2。之后重复循环:第五次server1,第六次server1,第七次server1,第⼋次server2。

三、使用least-connected策略 以下是config文件: 10-11 以下是运行结果: 第一次: 10-12 第二次: 10-13 第三次: 10-14 第四次: 10-15 运行结果与round robin配置相似,在least_conn配置下,请求将被传递给当前拥有最少活跃连接的server,因此上一个请求选择了1,下一个请求到来就会选择剩下可用的,也就是选择2,以此类推。

四、使用ip-hash策略 以下是config文件: 10-16 以下是运行结果: 第一次: 10-17 第二次到第n次: 10-18 使用ip hash策略时,会利用访问用户的ip计算一个Hash值,然后根据Hash值确定是哪个服务器处理请求。由于电脑的ip没变,所以一直访问的都是服务器1,所以session不变。

B. 请你使用GraphQL在你的电子书店中实现按照书籍名称来查找书籍的功能,需注意以下问题:

  • i. 后台实现在数据库中进行数据查找的DAO、Service、Repository、Entity层的代码应该复用你现有的代码。
  • ii. 前端发送的GraphQL请求应该使用变量,以复用查询语句。

答: 后端实现: Controller层(GraphqlController):其余层都复用现有的代码 10-19

schema.graphqls文件: 10-20 前端实现: 修改了react query之中的fetchBooks函数 10-21 运行截图: 在搜索栏搜索Great: 10-22