博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA面试考点解析(7):分布式架构、微服务治理
阅读量:7193 次
发布时间:2019-06-29

本文共 1030 字,大约阅读时间需要 3 分钟。

80.session共享的方案 
1.广播:会造成内网网络风暴,大量占用内网宽带 
2.IP_hash:在nginx中配置和,相同的ip找固定的同一台服务器,这种方案会造成服务能力差 
3.使用第三方中间件(数据库,redis),我们是使用redis

 

 
82.高并发问题:索引库同步
1.硬编码:在相应的代码中增加索引库同步的代码。不过,这种方法耦合度太高,将原本不相关的系统耦合在了一起,容易造成不可预估的错误,是电商项目的大忌。 
2.spring的aop:编写一个索引库同步的方法,利用aop的形式,将它和数据库数据更新的方法联系起来。这种方式也会造成耦合。 
3.消息队列:不过,这个方法会造成一个问题,那就是消息消费失败问题。
:解决两个系统间的通信问题。 
消息消费失败:集中同步索引库,做一个定时任务。在消息队列所在的服务器上加一个数据库,我们使用的是redis缓存。消息队列中每发一条信息,就将这条信息持久化进redis中。接着定时(我们是在晚上,用户量少的时候)从redis中将消息列表取出来,批量同步索引库。

 

 
 
85.为什么服务层之间调用的activeMq会是在controller层发消息?
因为事务!如果是在controller层发送消息,那么controller层调用的service一定是完成了事务提交操作的。如果是在service层发送消息,那么事务可能会没有提交,会造成空指针异常。

 

 
86.索引库同步时为什么使用activemq的queue方式?(使用queue的好处) 
1.不需要考虑消息没有被消费问题 
2.queue方式,自带持久化机制 
3.业务更加单一,相对来说比较安全

 

 
87.消息队列问题:同步索引库时,传输的内容为什么是商品信息,而不适用商品id?
传送商品id: 
好处:传送的是商品id,传输的内容少,效率相对较高,不会产生消息阻塞。 
缺点:消费方需要再次查询数据库取出商品信息,和数据库多了一次交互。 
传送商品信息: 
好处:这样消费者就不需要再次从数据库中查询商品信息数据,减少了与数据库的交互。 
缺点:传输的是商品信息,传输内容相对较少(原因:文本信息在网络传输中占用的网络资源最少),可能会产生消息阻塞的问题,但是由于我们的消息的发送不是连续的,不会有太高的并发量(原因:消息的发送时需要运营商平台审核通过后才发送的。)

 

转载于:https://www.cnblogs.com/newbie27/p/10835998.html

你可能感兴趣的文章
APIO2010 特别行动队
查看>>
Javascript语言精粹之Array常用方法分析
查看>>
leetcode 304. Range Sum Query 2D - Immutable
查看>>
Session704: Core ML 3 Framework 观后小结
查看>>
springmvc freemarker 页面访问静态类的解决方法
查看>>
[理] virsh 命令
查看>>
Python进阶【第十篇】模块(上)
查看>>
Oracle 官方文档 结构说明(教你如何快速从官方文档中获取需要的知识)
查看>>
jQuery
查看>>
mysql 增删改查最基本用法小结
查看>>
图和图算法
查看>>
网络流学习(转载自ssw 的博客)
查看>>
C# 测试程序运行时间
查看>>
0505.Net 基础班第十七天(GDI绘图)
查看>>
5、SuperSocket 基本配置
查看>>
4个方面教你怎么样成为一名及格的设计师
查看>>
小型大数据平台搭建
查看>>
陶哲轩实分析引理8.4.5
查看>>
《摩诃般若波罗蜜多心经》 玄奘 译
查看>>
一般的度量空间上开集的构造
查看>>