SOA
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同性能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协定分割起来。接口是采纳中立的形式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的零碎中的服务能够以一种对立和通用的形式进行交互。
RPC思维介绍
RPC是近程过程调用(Remote Procedure Call)的缩写模式。
1.当实现业务时本人没有方法间接实现时,须要通过第三方帮忙能力实现的业务。
2.应用RPC时"感觉"上就是在调用本人的办法实现业务。
微服务思维
1.分布式思维(拆)
2.自动化(HA,自动化)
传统我的项目问题
1.如果采纳nginx形式实现负载平衡,当服务数量扭转时,都必须手动的批改nginx.conf 配置文件,不够智能。
2.所有的申请都会通过nginx服务器作为直达,如果nginx服务器一旦宕机,则间接影响整个零碎,nginx最好只做简略的反向代理即可
所以传统形式的问题就在于不够智能....
微服务调用形式介绍
调用步骤:
1.将服务信息写入到注册核心(1.服务名称 2.服务IP地址 3.端口)。
2.注册核心接管到服务器信息,会动静的保护服务列表数据。
3.web服务器启动时会链接注册核心,目标获取服务列表数据。
4.注册核心会将服务列表数据同步给web服务器,并且保留到web服务器本地,当前不便调用。
5.当web服务器开始业务调用时,会依据已知的服务信息进行负载平衡操作,拜访后盾服务器。
6.当后盾服务器宕机时,因为注册核心有心跳检测机制,所以会动静的保护服务列表。
7.当注册核心的服务列表变动时,则会全网播送,告诉所有的web服务器更新本地服务列表。
Zookeeper注册核心介绍
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的性能包含:配置保护、域名服务、分布式同步、组服务等。
ZooKeeper的指标就是封装好简单易出错的要害服务,将简略易用的接口和性能高效、性能稳固的零碎提供给用户。
ZooKeeper蕴含一个简略的原语集,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_homesrcrecipes。其中散布锁和队列有Java和C两个版本,选举只有Java版本。
概括: ZK次要的工作是服务的调度,提供一致性的性能.
对于zk数据存储构造
阐明:在zk中数据的存储采纳树形构造的形式保留
命令: [root@localhost bin]# sh zkCli.sh
查问命令: ls /…
集群小常识
1、最小的集群单位几台?
公式:存活节点的数量>N/2 则集群能够创立。
例如:
1台: 1-1 > 1/2 不能创立
2台: 2-1> 2/2 不能创立
3台: 3-1> 3/2 能够创立
4台: 4-1> 4/2 能够创立
论断:搭建集群的最小单位是3台!
2、为什么集群个别都是奇数?
1、3台集群最多宕机1台,集群能够失常工作。
2、4台集群最多也是宕机1台,集群能够失常工作。
所以如果实现雷同的性能,奇数台更优!
3、对于zk集群选举规定
准则:myid最大值优先准则,myid值越大的越容易当主机,超半数批准即入选主机。
问题:
如果有1,2,3,4,5,6,7台集群
1:谁能够当主机?4能够当主机,依据公式:存活节点的数量>N/2。
2:谁永远不能入选主机?1/2/3永远不能当主机,依据公式:存活节点的数量>N/2。