# 知识点2
mvc架构,当业务规模很小时,将所有功能都部署在同一个进程中,通过双机或者负载均衡器实现负载分流,此时分离前后台逻辑的Mvc架构是关键,
RPC架构,当垂直的应用越来越多,应用之间交互不可避免,将核心和公共业务抽取出来,作为独立的服务,实现前后台逻辑的分离,此时用于提高业务复用及拆分的rpc架构是关键
soa架构,随着业务发展,服务数量越来越多,服务生命周期管控和运行态的治理成为瓶颈,此时用于提升服务质量的soa服务治理是关键
微服务架构,通过服务的原子化拆分以及微服务的独立打包部署升级,小团队的交付周期将缩短,运维成本也将大幅度下降。
在分布式系统中同时满足一致性,可用性和分区容错性三者是不可能的。在互联网领域的绝大多数场景都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证最终一致性,只要这个最终时间,使得用户可以接受的范围内即可。
可以通过本地消息表来实现分布式事务。将本地事务凭证消息插入到数据库表中。通过高性能的mq或者轮询数据库的方式来查询消息表。在消费方处理完消息之后,进行事务的记录。防止事务消息重复执行。
过滤器和拦截器之间的区别,
一拦截器是基于java的反射机制的,而过滤器是基于函数回调,
二拦截器不依赖于servlet的容器,过滤器则依赖servlet的容器,
三拦截器只能对action请求起作用而过滤器可以对几乎所有的请求起作用,
四拦截器可以访问action上下文,值栈里的对象,而过滤器不能访问
五,在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次,
六拦截器,可以获得ioc容器中的各个bean,过滤器不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
Thrift是一个可扩展且跨语言的RPC软件架构,它结合了软件堆栈和代码生成引擎,在文件中定义数据类型和服务接口,该文件作为输入编译生成RPC客户端和服务器端代码。
spring cloud是基于spring boot基础上构建的,用于快速构建分布式系统的通用模式的工具集。
slf4j(simple logging facade for java)java简单日志门面,对不同的日志框架提供一个门面封装。可以在部署的时候不修改任何配置即可接入一种日志实现方案。
Thrift运行时网络堆栈包括Transport、Protocol、Processor和Server四个部分。Transport提供了通过网络读写数据的方法。Protocol提供了对网络传输数据进行序列化/反序列化的具体实现。Processor:Thrift通过使用编写的Thrift IDL描述文件来自动生成Processor。Server将Transport、Protocol、Processor组合在一起,将服务运行起来,在指定端口等待调用端的请求。
HBase数据模型:表table,hbase用表来组织数据,表名是字符串;行row,在表里,数据按行存储。行由行健唯一标识,行健是字节数组byte[];列族column family,行里的数据按照列族分组,列族名称是字符串;列限定元column qualifier,字节数组byte[];单元cell,单元值没有数据类型,就是字节数组byte[];时间版本version,单元值有时间版本,hbase保留单元值时间版本的数量基于列族进行配置,默认数量是3个;
AtomicInteger是在使用非阻塞算法实现并发控制,在一些高并发程序中非常适合。