一,zookeeper与微服务

1.1  SOA思想

面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

linux ZooKeeper 安装 zookeeper linux部署_RPC

这些中立的接口就定义在注册中心zookeeper上, 客户端与服务端通过RPC协议来进行数据传输,数据格式为二进制流

1.2 RPC:

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。

调用过程:

  1. 客户端程序开启一个进程携带用户参数(基本类型/对象).
  2. 服务器程序处于睡眠状态,当客户端程序发送参数时,服务端进程获取用户的参数.并且执行内部的业务逻辑.并且将结果回复给客户端.
  3. 当客户端程序接收到服务端的结果,之后程序顺次执行.

1.3  dubbo框架

所以不难想到,我们需要一个框架来完成对象序列化(对象到二进制),对象的反序列化(二进制到对象)的转换,从而引入了dubbo框架

linux ZooKeeper 安装 zookeeper linux部署_服务端_02

 

二, zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

Zookeeper就是服务协调调度器.

总结:zookeeper相当于江湖中的万事通,他自动发现整个系统中已注册的可供调用的服务,客户端定时更新从zookeeper获取到的服务接口列表,根具列表中的服务接口去调用相应服务端的服务。

linux下的zookeeper的安装步骤:

1.zookeeper是apache的,所以先安装jdk环境:

在,usr/local/src/下新建 

两个文件夹,java,zookeeper,分别导入tar包并解压

linux ZooKeeper 安装 zookeeper linux部署_服务端_03

2.注意jdk环境变量的配置,修改zookeeper的配置文件为zoo.cfg

linux ZooKeeper 安装 zookeeper linux部署_zookeeper_04

3.在根目录下新建两个文件夹data,log,并在zoo.cfg中配置

 

linux ZooKeeper 安装 zookeeper linux部署_zookeeper_05

4.启动zookeeper

linux ZooKeeper 安装 zookeeper linux部署_zookeeper_06