升级迭代前后端问题整理(一)

                                   升级迭代前后端问题整理(一)

                                                                                                                                                                                              

                                                                                                                            作者:田超凡

版权所有,转载请注明原作者,仿冒侵权必究法律责任

1.redis集群启动有没有快捷启动方式,不用每次都启动一个一个的redis服务? 最好把redis集群每个节点的服务器上面加个快捷启动命令写一个脚本放到主机的bin目录下面,避免每次缓存雪崩都要远程一个一个重启redis服务,减少给网络和数据一致性、数据同步带来问题发生的可能性

2.solr搜索中文分词器有些字词没有搜索结果?分词器里面搜索频率高的词做一下持久化处理,要检查一下ak分词器是不是版本不对了,全文索引库后面要升级es的,先确保目前索引库里面的数据已经做持久化了后面再异步同步。

3.activemq消息队列要先启动消费者模块(即搜索功能模块)在启动后台商品管理(manager模块),并且在与springboot整合时,ConnectionFactory的url需要加上超时参数,由于是基于发布/订阅(Topic)模式,防止消费者长时间没有接收到发布者发送的消息从而抛异常。

4.所有业务层的dubbo发布的服务需要加上超时timeout=60000,所有ui层引用的dubbo服务也要加上超时timeout=60000

5.nginx的keepalive不是很理解,以及最后讲解的软硬负载不是很理解。后面微服务架构升级后网关用zuul就方便多了。

6.商品管理时要同步redis缓存并基于activeMQ的发布订阅模式作为发布者实时发布消息,搜索模块作为消费者监听到发布的消息后实时同步solr索引库的商品信息。商品详情和商品描述基于redis实现的时候要注意顺序:先查redis缓存,有就直接拿,没有再查数据库,查完数据库记得一定要添加缓存数据实现缓存数据同步。删除商品要同时删除缓存和索引库的商品信息。

7.freemarker生成静态模板页面一定要注意中文乱码处理,输出流使用Writer的子类OutputStream对象实现,该类提供了一个同时指定file对象和encode类型的构造函数,可以在创建的同时指定字符编码,不然会乱码,一定要注意。css和js路径与生成前的路径保持一致,不要乱改,${key.属性名}最好写成${key.属性名!}否则没有属性或者属性为空会报错,生成静态页面失败,不要乱加一些jsp特有的语法。

8.SSO单点登录的实现原理是:根据用户名密码先查数据库,登录成功就返回用户信息并创建token,类似于sessionid,将token存入redis缓存,key是前缀:token,value就是登录用户,在控制器将token同时存入cookie,登录失败直接返回提示信息。首页获取登录用户信息直接去cookie取,如果是异步要注意:因为首页是一个单独的前台模块,单点登录也是一个单独的模块,前台模块是不能直接使用ajax跨域请求单点登录模块的,需要使用jsonp,jsonp支持跨域请求。跨域就是指域名不同或者域名相同端口不同。

9.素材里面的大量前台js有问题,主要集中在:$.post取不到json数据,默认dataType是text,建议统一改成dataType="json"或者直接$.getJSON,否则弹框出不来的,因为默认返回的不是json对象而是text字符串!!!如果直接使用$.ajax好多都漏了,检查下js里面ajax的dataType="json",后端相应都是json,不指定默认text,导致出不来结果原因同上不再赘述。

猜你喜欢

转载自blog.csdn.net/qq_30056341/article/details/108437751
今日推荐