加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮安站长网 (https://www.0517zz.cn/)- 运营、云管理、经验、智能边缘、云硬盘!
当前位置: 首页 > 编程 > 正文

NCA逮捕了21位泄露个人数据的WeLeakInfo用户

发布时间:2021-01-30 18:03:43 所属栏目:编程 来源:互联网
导读:如上图所示,有时候系统中的某个服务会因为用户操作或内部行为发布一个事件,该服务知道这个事件在将来的某一个时间点会被其他服务所消费,但是并不知道这个服务具体是谁、也不关心什么时候被消费。同样,消费该事件的服务也不一定需要知道该事件是由哪个服

如上图所示,有时候系统中的某个服务会因为用户操作或内部行为发布一个事件,该服务知道这个事件在将来的某一个时间点会被其他服务所消费,但是并不知道这个服务具体是谁、也不关心什么时候被消费。同样,消费该事件的服务也不一定需要知道该事件是由哪个服务所发布。

事件生产者和消费者之间的虚线代表的是一种相互松散、没有直接调用的关联关系。满足以上特性的系统代表着一种松耦合的架构,通常被称为事件驱动架构,而这里的事件也可以被理解是服务与服务之间发送的一种消息。事件驱动架构本质上是一种架构设计风格,实现方法和工具有很多。在 Spring Cloud 家族中这个工具就是 Spring Cloud Stream。

其实,Spring Cloud Stream 是基于 Spring Integration 实现了消息发布和消费机制并提供了一层封装,很多关于消息发布和消费的概念和实现方法本质上都是依赖于 Spring Integration。而在 Spring Integration 的背后,则依赖于 Spring Messaging 组件来实现消息处理机制的基础设施。

「2. 什么是 Spring Messaging?」

Spring Messaging 是 Spring Framework 中的一个模块,其作用就是统一消息的编程模型。

每一个消息 Messaging 对应的模型就包括一个消息体 Payload 和消息头 Header。
 

上面的start方法就是直接使用invoke的方法映射到了catalinaDaemon,也就是到了Catalina的start的方法上,

而这个Catalina的启动无非也就是调用了同样的方法,setAwait方法,load方法,start方法,

  • setAwait方法:用于设置Server启动完成时,是否进入等待,如果是true,那就等待,如果不是false,那就不进入等待。
  • load方法:创建并且初始化Server,
  • start方法:同样是启动服务器

同样的setAwait方法比较少,阿粉就不给大家看了,无非就是个判断,而load方法一定得看,
 

main方法里面的存在也很简单,先进行init的操作,然后再执行start,也就是说,启动过程中,首先要进行初始化,然后接下来再进行启动,最后阶段在来个stop,这样才算完整嘛。

  • load方法:其实说白了load方法就是根据server.xml文件创建Server并且调用Server的init方法进行初始化。
  • start方法:start方法很直白,启动服务器。
  • stop方法:stop方法同样,停止服务器。

在这里的start方法和stop方法调用的分别就是调用了Server内部的start和stop方法,而这三个方法都是按照图中的层级结构来的,先从Server的load,start,stop,然后Server的start再调用Service的start,而Service的start调用的就是Connector和Container的start方法了,这从外到内的启动,就可以把Tomcat完整的启动起来了。

我们在接下来就继续从外到内的启动开始分析一波。

3.1 Catalina启动过程

上面的启动入口我们已经成功找到了,那么我们就继续来,对象初始化完成后,执行了init的方法

(编辑:淮安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读