乐趣区

关于java:SOA思想微服务代理编辑的标准

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。

退出移动版