10.19

木木

一.HttpClient 在java代理内部可以使用httpClient发起http请求访问服务器获取资源.(工具API)
二.SOA思想(微服务代理编辑的标准),面向服务的架构是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来,接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
image.png
三.RPC思想介绍
RPC是远程过程调用(Remote Procedure Call)的缩写形式。
总结:
1.当完成业务时自己没有办法直接完成,需要通过第三方帮助才能完成的业务,
2.使用RPC时“感觉”上就是在调用自己的方法完成业务
四.微服务思想
核心: 1.分布式思想(拆) 2.自动化(HA,自动化)
4.1传统项目问题
1.如果采用nginx方式 实现负载均衡,当服务数量改变时,都必须手动的修改nginx.conf配置文件.不够智能.
2.所有的请求都会通过nginx服务器作为中转.如果nginx服务器一旦宕机,则直接影响整个系统.nginx最好只做简单的反向代理即可
传统的方式 不够智能…
image.png

4.2微服务调用方式介绍

image.png
调用步骤:
1.将服务信息写入到注册中心(1.服务名称 2.服务IP地址 3.端口)
2.注册中心接收到服务器信息,会动态的维护服务列表数据.
3.消费者启动时会链接注册中心.目的获取服务列表数据.
4.注册中心会将服务列表数据同步给消费者,并且保存到消费者本地.以后方便调用.
5.当消费者开始业务调用时,会根据已知的服务信息进行负载均衡操作,访问服务提供者.
6.当服务提供者宕机时,由与注册中心有心跳检测机制.所以会动态的维护服务列表.
7.当注册中心的服务列表变化时, 则会全网广播 通知所有的消费者 更新本地服务列表.

4.3Zookeeper 注册中心介绍

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeepe
r_homesrcrecipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
概括: ZK主要的任务是服务的调度,提供一致性的功能.

4.3关于集群知识介绍

4.3.1 最小的集群单位几台
公式: 存活节点的数量 > N/2 集群可以创建
1台: 1-1 > 1/2 假的
2台: 2-1 > 2/2 假的
3台: 3-1 > 3/2 正确
4台: 4-1 > 4/2 正确
结论: 搭建集群的最小单位3台.

为什么集群一般都是奇数
  1. 3台集群最多宕机几台 集群可以正常工作 最多宕机1台
  2. 4台集群最多宕机几台集群可以正常工作 最多宕机1台
    如果实现相同的功能 奇数台更优.
关于zk集群选举规则

原则: myid最大值优先 myid值越大的越容易当主机. 超半数同意即当选主机
题目: 问1,2,3,4,5,6,7依次启动 问1:谁当主机 4当主机
问2:谁永远不能当选主机??? 1 2 3

浏览器-同源策略说明

说明: 浏览器规定 发起ajax时如果请求协议/域名/端口号如果3者有一个与当前的浏览器的地址不相同时,则违反了同源策略的规定.则浏览器不予解析返回值.

跨域问题: 违反同源策略的规定就是跨域请求.

JSONP跨域原理
  1. 利用javascrpit中的src属性实现跨域请求.
  2. 自定义回调函数 function callback(xxxx);
  3. 将返回值结果进行特殊的格式封装 callback(json);
  4. 由于利用src属性进行调用 所以只能支持get请求类型.
cors跨域方式

image.png

实现cors调用

image.png

关于跨域的总结

1.jsonp本质利用javaScript中的src属性的get请求实现的跨域.
返回值必须经过特殊的格式封装.
2.cors
添加在响应头中信息.指定哪些服务器允许访问.

阅读 209
1 声望
0 粉丝
0 条评论
你知道吗?

1 声望
0 粉丝
宣传栏