首先说明下具体环境:VMWare + CentOS7
首先是启用SecureCRTPortable 连接远程服务器
如果本地没有SecureCRTPortable ,可以用XShell或者其他可以远程SSH的软件代替
或者直接下载:
https://download.csdn.net/download/fenghuoliuxing990124/10845364
首先下载zookeeper:
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.2/zookeeper-3.5.2-alpha.tar.gz
然后将下载包进行解压
tar -zxvf zookeeper-3.5.2-alpha.tar.gz
mv zookeeper-3.5.2-alpha /usr/local/zookeeper
全部OK后,运行其bin目录下的zkServer.sh,如果没有意外就说明注册中心已经运行了
./zkServer.sh start
下面编写简单的代码测试,测试注册中心是否可以提供服务
如果不想写代码的,可以下载在码云上写好的代码,直接测试即可
https://gitee.com/luoxuanshangsheng/Demo-Zookeeper_ProviderAndConsumer
现在我们说说具体的思路,思路理清了之后再说代码:
从需求方来看:
首先我们的前台应是 通过 远程(RPC)调用的Service服务,
如果我们调用某个服务,我们至少得知道具体是哪个接口吧!
比如我们想要调用产品查询服务,那我们肯定需要调用产品服务的接口IProductService
其次,我们还需要知道服务具体是由哪台服务器提供的
从提供方来看:
由于要提供服务,我们需要开放出对应的端口让需求方访问
其次我们还需要知道我们究竟实现哪个接口,提供怎样的服务
所以简单总结就是:
需求方:需要知道服务提供方是谁,它提供了哪些服务的接口?
提供方:需要开启服务的端口,并且要明白它要提供哪些服务,并且提供哪些接口
好,如果明白了上面的问题后,我们再来看下面的问题:
这里
需求方:需要调用某接口,并且获取Domain对象
提供方 : 需要实现某接口,并且返回Domain对象
这里接口和Domain都是需求方和提供方都需要的,所以可以抽取出来,于是上面的图示变为:
好,至此为止,思路和架构已经说清楚了,下一步就是快速搭建了
搭建:1parent + 3module
必要的说明:
1.demo parent项目,打包方式: pom
2.demp-api: domain和接口的依赖包,打包方式:jar
3.demo-server: 服务的提供方,实现并提供服务,war
4.demo-client: 服务的消费者,将会调用服务,war
demo
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Demo</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>