java中的关键词汇含义

一: java

记录java项目中的关键词汇

1.1 HandleInterceptor拦截器

SpringMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于对请求进行拦截和处理。

  • preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
  • postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了Service并返回
  • ModelAndView,但未进行页面渲染),有机会修改ModelAndView (这个博主就基本不怎么用了);
    afterCompletion:在DispatcherServlet完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染

单个实现类的执行顺序
preHandler -> Controller -> postHandler -> model渲染-> afterCompletion

1.2 instanceof

用来在运行时指出对象是否是特定类的一个实例,返回布尔类型

if (anObject instanceof String){

}else{

}

1.3 分布式跟踪技术

1.3.1 Dapper

  • Dapper:大规模分布式系统的跟踪系统,帮助理解系统行为,用于分析性能问题,

1.3.2 Sleuth框架

用于跟踪服务的调用过程
Sleuth借鉴了Google Dapper的设计,先了解两个概念

  • Trace 表示整个跟踪过程,从用户发起请求到最终的响应。一次跟踪包括多个跨度,这些跨度以树状结构进行保存。
  • Span:跨度,表示一次调用的过程,一次跟踪包含多次调用过程。假设用户向A服务发起请求,A服务又要调用B服务,那么此时将会产生两个跨度。用户调用A服务、A服务调用B服务。

1.3.3 RPC

  • RPC(Remote Procedure Call Protocol)–远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议
  • RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。

1.3.4 Zipkin

  • Zipkin是一个分布式跟踪系统,主要用于收集、管理微服务产生的数据。Zipkin的设计基于Google Dapper,在实际用时,我们需要让各个微服务Zipkin服务器报告过程数据。
  • 对于Spring Cloud来说,已经提供了几个模块来实现数据报告功能,仅需要加入依赖,以及简单配置,即可实现向Zipkin“写入”数据

1.4 Thymeleaf

  • Thymeleaf是一个流行的模板引擎,
  • 页面模板技术
  • Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板

传统的Spring WEB技术,使用JSP页面技术,spring boot 已不推荐,spring boot 支持以下页面模板语言

  • Thymeleaf
  • FreeMarker
  • Velocity
  • Groovy
  • JSP

二:注解

2.1 @Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标记

三:理论

3.1 CAP理论

CAP理论:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。

  • 一致性:即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,所以,一致性,说的就是数据一致性。
  • 可用性:服务一直可用,而且是正常响应时间。对于一个可用性的分布式系统,每一个非故障的节点必须对每一个请求作出响应。所以,一般我们在衡量一个系统的可用性的时候,都是通过停机时间来计算的。
  • 分区容错性:分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。简单点说,就是在网络中断,消息丢失的情况下,系统如果还能正常工作,就是有比较好的分区容错性。
    在这里插入图片描述

假设在N1和N2之间网络断开的时候,有用户向N1发送数据更新请求,那N1中的数据V0将被更新为V1,由于网络是断开的,所以分布式系统同步操作M,所以N2中的数据依旧是V0;这个时候,有用户向N2发送数据读取请求,由于数据还没有进行同步,应用程序没办法立即给用户返回最新的数据V1,怎么办呢?
有二种选择

  • 第一,牺牲数据一致性,保证可用性。响应旧的数据V0给用户;
  • 第二,牺牲可用性,保证数据一致性。阻塞等待,直到网络连接恢复,数据更新操作M完成之后,再给用户响应最新的数据V1。

这个过程,证明了要满足分区容错性的分布式系统,只能在一致性和可用性两者中,选择其中一个。

发布了21 篇原创文章 · 获赞 1 · 访问量 342
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章