关于java:京淘项目

6次阅读

共计 2948 个字符,预计需要花费 8 分钟才能阅读完成。

架构设计

互联网行业特定

1. 高并发
2. 分布式 服务器数量调配平衡
3. 海量数据处理 采纳更加高效的形式进行数据处理 大数据方向 java 开发岗位 要求大数据相干技术.
4. 安全性问题: 网贷(11%) 交易的安全性(区块链)

阿里风控系统: 1. 手机号是否变更
              2. 交易明码是否变更
              3. 银行交易是否频繁
              4. 交易之间的单方是否有资金往来…
              5. 交易单方是否为好友关系.             




ORM 思维

介绍:对象关系映射(英语:Object Relational Mapping,简称 ORM,或 O /RM,或 O /R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型零碎的数据之间的转换 。从成果上说,它其实是创立了一个可在编程语言里应用的“虚构对象数据库”。现在已有很多收费和付费的 ORM 产品,而有些程序员更偏向于创立本人的 ORM 工具。
ORM 形式: 以对象的办法操作数据库, 能够实现后果集与对象的主动的映射 不须要本人手写.

AJAX 原理

特点: 部分刷新: 异步调用 (加载)
调用原理阐明:
1. 用户将申请发给 AJAX 引擎进行解决. 之后期待引擎返回数据.
2.ajax 引擎接管到用户的申请之后, 代替用户拜访后端服务器.
3. 后端服务器接管申请之后, 执行业务解决. 并且将返回值返回.
4.ajax 引擎收到返回值后果之后, 要在第一工夫告诉给用户. 利用回调函数将数据传给客户端.ajax 调用胜利.
—ajax 嵌套问题
阐明: 如果在 ajax 外部再次嵌套 ajax 申请, 则须要将外部的 ajax 申请设置为同步状态.
俗语: 连忙走吧 赶不上二路公交车了…
外围起因: 页面须要刷新 2 次都是只刷新一次.

分布式

分类

  1. 分布式计算
    阐明: 一项工作由多个服务器共同完成的.
    例子: 假如一项工作独自实现须要 10 天, 如果有 10 集体同时执行则一天实现. 大数据处理技术.
  2. 分布式系统
    阐明: 将我的项目依照特定的功能模块及层级进行 拆分 . 从而升高整个零碎架构的 耦合性 问题.

我的项目拆分 外围: 无论未来我的项目怎么拆分, 都是同一个零碎. 口诀: 对外对立, 对内互相独立.

伪动态

伪动态是绝对实在动态来讲的,通常咱们 为了加强搜索引擎的敌对性 ,都将文章内容生成动态页面,然而有的敌人为了实时的显示一些信息。或者还想使用动静脚本解决一些问题。不能用动态的形式来展现网站内容。然而这就损失了对搜索引擎的敌对性。怎么样在两者之间找个两头办法呢,这就产生了 伪动态技术。伪动态技术是指展现进去的是以 html 一类的动态页面模式,但其实是用 ASP 一类的动静脚本来解决的。

同源策略

规定: 如果浏览器的地址与 Ajax 的申请地址 协定名称:// 域名地址: 端口号 如果都雷同则满足同源策略. 浏览器能够失常的解析返回值. 如果三者之间有一个不同, 则违反了同源策略. 浏览器不会解析返回值.

什么是跨域

因为业务须要, 通常 A 服务器中的数据可能来源于 B 服务器. 当浏览器通过网址解析页面时, 如果页面外部发动 ajax 申请. 如果浏览器的拜访地址与 Ajax 拜访地址不满足同源策略时, 则称之为跨域申请.
跨域因素:
1. 浏览器
2. 解析 ajax
3. 违反了同源策略
—- 对于跨域阐明
1. 什么叫跨域 浏览器解析 Ajax 时, 发动 url 申请违反了同源策略时, 称之为跨域.
2. 什么时候用跨域 个别 A 服务器须要从 B 服务器中获取数据时, 能够采纳跨域的形式.
3. 什么是 JSONP JSONP 是 JSON 的一种应用模式 利用 javaScript 中的 src 属性进行跨域申请.(2. 自定义回调函数,3. 将返回值进行非凡格局封装)
4. 什么是 CORS CORS 是以后实现跨域的支流形式, 当初所有的支流浏览器都反对, 须要在服务器端配置是否容许跨域的配置. 只有配置了(在响应头中增加容许跨域的标识), 则同源策略不失效, 则能够实现跨域.

HttpClient

HTTP 协定可能是当初 Internet 上应用得最多、最重要的协定了,越来越多的 Java 应用程序须要间接通过 HTTP 协定来拜访网络资源 。尽管在 JDK 的 java net 包中曾经提供了拜访 HTTP 协定的基本功能,然而对于大部分应用程序来说,JDK 库自身提供的性能还不够丰盛和灵便。HttpClient 是 Apache Jakarta Common 下的子项目, 用来提供高效的、最新的、功能丰富的反对 HTTP 协定的客户端编程工具包,并且它反对 HTTP 协定最新的版本和倡议。HttpClient 曾经利用在很多的我的项目中,比方 Apache Jakarta 上很驰名的另外两个开源我的项目 Cactus 和 HTMLUnit 都应用了 HttpClient。

SOA 思维

SOA 思维介绍:
面向服务的架构 (SOA)是一个组件 模型 ,它将应用程序的不同 性能单元(称为服务)进行 拆分 ,并通过这些服务之间定义良好的 接口和协定 分割起来。接口是采纳中立的形式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的零碎中的服务能够以一种对立和通用的形式进行交互。

RPC 介绍

RPC(Remote Procedure Call)近程过程调用,简略的了解是一个节点申请另一个节点提供的服务
本地过程调用:如果须要将本地 student 对象的 age+1,能够实现一个 addAge()办法,将 student 对象传入,对年龄进行更新之后返回即可,本地办法调用的函数体通过函数指针来指定。
近程过程调用:addAge 办法在其余的服务器中, 如果须要调用则必须通过近程的形式告诉其余服务器帮我实现业务调用.

总结: 利用第三方的服务器, 帮我实现业务调用的过程.
了解: 分布式环境中 业务调用简直都是 RPC 的.

什么是微服务?

阐明:

  1. 为了升高代码的耦合性, 将我的项目进行了拆分.依照功能模块拆分为若干个我的项目. 该我的项目称之为服务.(分布式思维).
  2. 如果采纳微服务的构造, 要求服务器如果呈现了故障应该 实现自动化的故障的迁徙(高可用 HA)



实现步骤:

  1. 服务提供者启动时,. 将本人的信息注册到注册核心中.
  2. 注册核心承受到了用户的申请之后, 更新服务列表信息.
  3. 当消费者启动时, 首先会链接注册核心, 获取服务列表数据.
  4. 注册核心将本人的服务列表信息同步给客户端(消费者)
  5. 消费者接管到服务列表数据之后, 将信息保留到本人的本地. 不便下次调用
  6. 当消费者接管到用户的申请时, 依据本人服务列表的信息进行负载平衡的操作, 抉择其中一个服务的提供者, 依据 IP:PORT 进行 RPC 调用.
  7. 当服务提供者宕机时, 注册核心会有心跳检测机制, 如果查看宕机, 则更新本地的服务列表数据, 并且全网播送告诉所有的消费者更新服务列表.

Dubbo 负载平衡

负载平衡形式

1. 服务端负载平衡 (集中式负载平衡)
阐明: 用户拜访服务器时不分明实在的服务器到底是谁, 由负载平衡服务器动静动静治理.
典型代表: NGINX
个别 nginx 服务器做反向代理应用, 负载平衡只是提供的性能.

2. 客户端负载平衡
阐明: 采纳微服务架构时, 当消费者拜访服务提供者时, 因为框架外部曾经实现了负载平衡的策略, 所以消费者拜访提供者时曾经实现了负载平衡的机制. 所以将所有的压力均衡到了各个消费者中.

单点登录

用户只需一次登录就能够拜访所有相互信任的利用零碎。这种形式缩小了由登录产生的工夫耗费,辅助了用户治理,是目前比拟风行的.

拦截器

Linux 我的项目部署阐明 流程图

数据库读写拆散 / 负载平衡实现

阐明: 通过缓存服务器能够无效的晋升用户的拜访的效率




正文完
 0