spark操作redis_Redis, Spark总结

本文主要介绍了Spark如何操作Redis,以及Redis在缓存中的应用场景。讲解了Spring MVC的工作流程,Maven中解决jar包冲突的策略,包括短路优先、声明优先和版本最新优先。同时,提到了Git面试题,序列化的作用和注意事项,并讨论了在多线程并发和RPC(远程过程调用)场景下的相关知识。
摘要由CSDN通过智能技术生成

Spring

https://www.ibm.com/developerworks/cn/java/j-master-spring-transactional-use/index.html

SpringMVC

工作流程:

1. 用户发送请求至前端控制器DispatcherServlet

2. DispatcherServlet收到请求调用HandlerMapping处理器映射器,请求获取Handler。

3. 通过HandlerMapping得到HandlerAdapter, 经过适配调用具体处理器Handler.

4. Handler执行完成返回ModelAndVIew

5. DispatcherServlet将ModelAndView送给ViewResolver视图解析器处理,解析返回具体的view

6. DispatcherServlet将Model渲染到view视图(即将模型数据填充至视图中)

7. DispatcherServlet响应用户

Maven

1.maven中jar包冲突产生的原因

若项目中多个Jar同时引用了相同的Jar时,会产生依赖冲突,但Maven采用了以下几种避免冲突的策略,因此在Maven中是不存在依赖冲突的。

2.查看包冲突

mvn分析包冲突命令:mvn dependency:tree

打开pom.xml文件,在Dependency Hierarchy(依赖列表)中查看jar包的依赖层次关系。在过滤栏中输入commons-codec,左侧出现了commons-codec相关包的依赖结构,右侧则是pom.xml全部依赖包的列表展示。

3. Maven 解决依赖冲突

3.1 短路优先

A.jar——>B.jar——>X.jar

C.jar——>X.jar

若本项目引用了A.jar,A.jar又引用了B.jar,B.jar又引用了X.jar,并且C.jar也引用了X.jar。

在此时,Maven只会引用引用路径最短的Jar。

3.2 声明优先

若引用路径长度相同时,在pom.xml中谁先被声明,就使用谁。

3.3 版本最新优先

假设 有以下两个依赖关系:其中C1和C2是两个相同的jar包,他们只是version版本号不同

A->B->C1 依赖关系: A包依赖B包,B包依赖C1包

E->D->C2 依赖关系: E包依赖D包,D包依赖C2包

当我们在项目中同时引入了A包和E包,按照maven的依赖传递原理,那么我们相当于在项目中同时引入了两个C包,只是他们的version版本号不同,这时候就会出现冲突了,如果我们调用了C2中一个method方法,这个方法在C1中不存在(可能是C2高版本升级之后新添加的方法),那么jvm在进行类加载的时候,加载按照A->B->C1顺序,这个时候就会报NoSuchMethodError的错误,jar包冲突问题就出现了

4. maven中jar包产生冲突之后的解决方案

既然有多个版本号的jar依赖存在,那我们就自然而然的想到,移除多余的jar包,只保留一个不就可以了,事实确实如此,我们可以通过移除内部依赖的jar包达到解决jar包冲突的目的。

4.1 移除的方式有两种,第一种是借助于maven helper插件中的Dependency Analyzer分析冲突的jar包,然后在提示冲突的jar包上面右击Exclude,然后刷新就可以了

4.2  手动移除,这个是通过在pom中添加标签达到解决jar包冲突的目的

Git面试题

Redis

redis 缓存案例:

1. 根据key从缓存中获取对象

2. 如果对象不为空,直接返回

3. 如果对象为空,进行数据库查询

4. 如果从数据库查询出的对象不为空,则放入缓存(设定过期时间)

Spark

Spark 和 map reduce区别

负载均衡

RPC

什么情况下需要序列化:

当你想把的内存中的对象保存到一个文件中或者数据库中时候;

当你想用序列化在网络上传送对象的时候;

当你想通过RMI传输对象的时候;

序列化注意事项:

(1) 当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法、静态的成员变量和transient标注的成员变量。

(2) 如果一个对象的成员变量是一个对象,该成员对象的类必须也实现Serializable接口才能序列化。

(3) 如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException。可以将这个引用标记transient,那么对象仍然可以序列化。

json工具

Spring Mybatis

Spring Boot为服务

redis

https://msd.misuland.com/pd/3065794831805580868

https://segmentfault.com/a/1190000014488045

https://baijiahao.baidu.com/s?id=1619572269435584821&wfr=spider&for=pc

https://my.oschina.net/u/4052893/blog/3001173

https://baijiahao.baidu.com/s?id=1626448266563689166&wfr=spider&for=pc

https://blog.csdn.net/qq_36071795/article/details/83988177

多线程并发

https://www.cnblogs.com/Jansens520/p/8624708.html

https://www.cnblogs.com/jxldjsn/p/10872154.html

https://www.cnblogs.com/jagh/p/dxc.html

http://developer.51cto.com/art/201709/552926.htm

https://baijiahao.baidu.com/s?id=1619715630323058430&wfr=spider&for=pc

https://wenku.baidu.com/view/58189549580216fc710afd08.html

http://ju.outofmemory.cn/entry/363342

RPC

https://my.oschina.net/u/1186503/blog/1632952

https://www.shsxt.com/it/java/1599.html

https://baijiahao.baidu.com/s?id=1617168792520937104&wfr=spider&for=pc

https://www.jianshu.com/p/28e48e5f9c73

https://www.jianshu.com/p/75c55e8bf2a5

http://youzhixueyuan.com/dubbo-interview-question-answers.html

---------------------

作者:苗尼玛乔

来源:CSDN

原文:https://blog.csdn.net/qq_24871519/article/details/81673515

版权声明:本文为博主原创文章,转载请附上博文链接!

---------------------

作者:a745233700

来源:CSDN

原文:https://blog.csdn.net/a745233700/article/details/80963758

版权声明:本文为博主原创文章,转载请附上博文链接!

---------------------

作者:EllisTian

来源:CSDN

原文:https://blog.csdn.net/T2080305/article/details/82144543

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值