Java学习之架构初识

+ 零散

1、CDN和反向代理的基本原理都是缓存。CDN使用户从离自己最近的服务器上获取数据,用户请求到达机房后首先访问反向代理服务器,如果反向代理服务器缓存了用户请求的资源则直接返回给用户。

2、一台服务器满足不了需求,不要试图更换更强大的服务器,只需增加一台服务器,分担负载,可以达到更好的效果。

3、大型网站架构模式:分层、分割、分布式、集群、缓存、异步、冗余、自动化、安全。

4、单机网站——应用服务器和数据库服务器——应用服务器集群(Session Sticky、Session Replication、Cookie Based)

5、分布式系统的一致性级别:强一致性、弱一致性(会话一致性、用户一致性)、最终一致性。CAP定理。2PC、3PC、Paxos。ZooKeeper是一个典型的分布式数据一致性解决方案。


+ 微服务架构

1、一个归档包包含所有功能的应用程序,通常称为单体应用。架构单体应用的方法论就是单体应用架构。随着业务需求的发展,功能的不断增加,单体架构很难满足互联网时代业务快速变化的需要。

2、微服务架构是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常采用HTTP资源API,REST API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。

微服务架构优点:易于开发和维护、单个微服务启动较快、局部修改容易部署、技术栈不受限、按需伸缩;

扫描二维码关注公众号,回复: 1957201 查看本文章

微服务架构面临的挑战:运维要求较高、分布式固有的复杂性(系统容错、网络延迟、分布式事务)、接口调整成本高、重复劳动。

3、微服务设计原则:单一职责原则、服务自治原则、、轻量级通信机制、微服务粒度。微服务架构中常用的协议有:REST、AMOP、STOMP、MQTT。在微服务的设计阶段就应确定其边界,微服务之间应相对独立并保持松耦合。

4、微服务开发框架有Spring Cloud、Dubbo、Dropewizard等,运行平台可以选择PC Server、阿里云或Docker。

Spring Cloud是在SpringBoot基础上建立的。


+ RESTful Web Service

1、REST是一种跨平台、跨语言的架构风格,REST的Web服务是对REST在Web领域的实现,JAX-RS标准是Java领域对REST式的Web服务制定的实现标准,Jersey是JAX-RS标准的参考实现,是JavaEE参考实现项目GlassFish的成员项目。

2、HTTP+URI+XML是REST的基本实现形式,JAX-RS即The Java API for RESTful Web Service,2013.05.22 JAX-RS2.0对应Jersey2.x。JAX-RS2的目标:基于POJO、以HTTP为中心、格式独立性、容器独立性、内置于JavaEE。

3、REST服务和RPC服务在接口定义上的区别是:REST使用HTTP协议的通用方法作为统一接口的标准词汇,REST服务所提供的方法信息都在HTTP方法里,而RPC服务所提供的方法信息在SOAP/HTTP信封里。每一种HTTP请求方法都可以从安全性和幂等性考虑,安全性是指外系统对接口的访问不会使服务器端资源的状态发生改变,幂等性是指外系统对同一REST接口的多次访问得到的资源状态都是相同的。

4、REST使用HTTP的GET方法获取服务提供的资源,JAX-RS2定义了@GET注解对资源方法定义,使得该方法用于处理GET请求;标准的命名方式是单数的同步操作以资源名称命名,批量的同步操作以资源名称的复数名称命名。@HEAD和@OPTIONS和@GET类似。PUT方法是幂等的,不是安全的。

猜你喜欢

转载自blog.csdn.net/chenkaifang/article/details/80878001
今日推荐