最新公告
  • 欢迎您光临极客文库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 1、理解Spring IOC(控制反转/Inversion of Control)

    控制反转是Spring框架的一个核心设计思想。

    谈到Spring框架,先得聊一聊什么是框架?

    框架可以理解成由别人包装好的一系列工具,你拿过来就能用。好比买房子时,需要选择一套满意的户型,在这个户型的基础上,再去买家具进行装修。在这里,框架就好比户型,由别人规定好的,你只要选择你想用的那个框架,然后拿过来用即可。

    为什么要使用框架?

    因为方便,高效,能够屏蔽底层细节,以及提供一种开发的思想。还拿上面的房子的例子来说,各个售楼部的几种户型都是经过专业设计师设计,结合多方面因素定下来的。我们没有那么多的专业知识,自己设计房子的户型相对来说也不太实际。因此为什么使用框架这个问题就类似于买房为什么不自己设计户型,而选择别人设计好的户型。因为方便,因为效率问题。设计户型他们更专业,更合理,我们直接用。

    Spring框架正式因为Java应用开发的复杂性而创建的,大程度减少了Java应用开发工作量,同时降低应用的维护成本。

    而Spring的IOC(控制反转)则通过将原本由手动new的对象,交由Spring框架来创建。传统的应用程序都是我们在类内部主动创建依赖对象,导致类与类之间高耦合,难于测试等问题。而有了IOC容器后,把创建和查找控制权交给了IOC容器,由容器进行控制。IOC控制反转之所以称之为“思想”,就体现在发生了“主从换位”的变化。

    2、理解RPC(远程过程调用/Remote Procedure Call)

    远程过程调用区别于本地调用,远程过程调用针对于存在调用关系的两个服务处于不同的服务器。通过RPC服务,使得跨服务器间的调用速度如同本地调用一样。RPC服务处在会话层,相对于http请求,少了表示层和应用层的解析和封装(可参考OSI七层网络模型)因此,比http连接更高效。RPC服务建立socket连接后,通过序列化和反序列化进行跨服务器间的信息传递。建立socket连接的速度与序列化、反序列化的效率成为RPC性能的衡量标准。

    3、理解SOA(面向服务架构/服务治理/Service Oriented Architecture)

    SOA致力于解决多服务凌乱问题以及复杂的数据服务(一般用于大型项目)。随着项目复杂程度的提高,服务器类型一般由集成服务器转向分布式服务器,将一个系统拆分为不同的子模块,服务之间相互调用。而随着项目的迭代升级,服务、功能的相互交互及相互调用会非常复杂,调用关系混乱较难维护。因此,SOA应运而生。SOA建立了“数据总线”的概念,类似于阿里的dubbo、zookeepper注册中心,通过注册的形式简化调用关系,实时调度,提高服务调用效率。

    4、理解集群、分布式

    当一台服务器的性能不足以支持处理某些任务时,需要添加一台或多台服务器,共同处理该任务,而这些服务器的工作内容、过程完全相同。此时,服务器的集合就叫做集群。当一台服务器出现问题时,其他的服务器仍能正常工作。而分布式可以理解成:这些服务器由原来处理相同的任务变为分别负责不同的功能模块,各服务器单独负责特定的模块和功能,这些功能整合后可以协同完成某项工作。分布式服务的质量取决于三个要素:数据一致性、可用性和容错性。数据一致性和可用性往往不能兼顾,有兴趣的可去深入了解分布式的CA、CP原则

    5、理解MQ(消息队列中间件/Message Queue)

    首先说一下MQ的特点:异步、削峰(缓存)、解耦。

    异步:比如从A执行到B需要串行调用A1,A2,A3,…,An多处逻辑,调用链很长,而引入MQ后,调用关系可转变为A-> AA->B,AA则为消息队列,其中通过消息队列,A1,A2,A3,…,An可并发执行。这就缩短了串行服务的调用链,等同于缩短了时间。而不使用多线程解决串行调用的原因就在于多线程代码的耦合度较高,且代码不好维护

    缓存:当同时存在大量的请求时,MQ可起到缓存、削峰的作用,将请求发送到队列中,依次处理,避免服务器同时处理大量请求,cpu不够导致服务器崩溃

    6、理解kafka

    kafka是分布式的基于发布/订阅模式的MQ(消息队列),涉及的主要元素有:生产者、消费者、broker(一个独立的kafka服务结点)以及Zookeeper。

    生产者、消费者通过zookeeper上面的注册信息,寻找到对应的broker上,进行生产、消费操作。

    消息队列分为两种模式:点对点模式、一对多模式(发布/订阅模式)。点对点模式下,生产者生产信息后,信息伴随着消费者的消费操作而消失;发布/订阅模式下,信息并不会因为消费者的行为消失,而是通过设立消息的有效期来限制。

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » 轻松理解IOC、RPC、SOA、集群、分布式、kafka相关概念

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    Leave a Reply

    Hi, 如果你对这款资源有疑问,可以跟我联系哦!

    联系发布者

    Leave a Reply

    Hi, 如果你对这款资源有疑问,可以跟我联系哦!

    联系发布者
    • 108会员总数(位)
    • 3695资源总数(个)
    • 3本周发布(个)
    • 0 今日发布(个)
    • 181稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级