安装jdk
- rpm -ivh jdk-8u131-linux-x64.rpm
- java –version 检查是否成功
安装Zookeeper
下载 http://zookeeper.apache.org/ 并上传解压缩
配置zookeeper环境变量
修改文件 vi /etc/profile 追加内容
在path后追加/usr/local/zookeeper/bin
注意中间间隔是: 冒号
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/zo
okeeper/bin
source /etc/profile 重新加载配置
修改zoo.cfg
重命名zoo_sample.cfg 为zoo.cfg
默认加载配置文件会找zoo.cfg这个文件
修改配置文件
vi /usr/local/zookeeper/conf/zoo.cfg
创建数据存放目录
Mkdir /data/zookeeper
创建Myid文件,并写入服务器编号
注意:这里写入myid文件的编号和接下来要配置的服务器列表编号一一对应,每台服务器配置的编号也应该不一样。
Myid文件里只有一个数字 1
创建好的这个目录用于存储zookeeper产生的数据
修改datadir为刚才我们创建的目录
dataDir=/data/zookeeper
在最后面加入集群服务器列表
server.1=192.168.2.51:2888:3888
server.2=cm02:2888:3888
server.3=cm03:2888:3888
配置的服务器集群个数建议是奇数的
半数以上节点存活,就可以对外提供服务
其中 server.x 这里的数字编号 就是我们的myid里写入的数字
Cm01是主机名或ip地址
接下来是对外通讯端口和内部选举端口
启动
zkServer.sh start 命令启动一台zookeeper服务器
没报错的话 使用jps看一下进程
QuorumPeerMain是zookeeper的主进程
通过status命令可以查看服务器运行状态
注意:当我们使用集群模式启动zookeeper的时候,由于我们只启动了一台服务器,集群总共3台,没有满足zookeeper半数以上节点运行原则,所以服务虽然起来了,但是没有办法对外提供服务。
这时我们需要启动第二台服务器
Dubbo Hello World
环境
SpringBoot + dubbo
Pom.xml 依赖
<!-- Aapche Dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.curator/curator-framework -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.2.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
</dependency>
</dependencies>
服务提供方 provider
配置文件
server.port=8081
spring.application.name=DemoProvider
dubbo.scan.base-packages=com.osvue.db1.service
dubbo.protocol.name=dubbo
dubbo.protocol.port=666
dubbo.protocol.host=192.168.101.106
dubbo.registry.address=zookeeper://192.168.150.13:2181
服务接口
public interface DemoService {
String sayHello(String name);
}
接口实现
import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;
@Service(version = "1.0.0" ,timeout = 10000, interfaceClass = DemoService.class)
@Component
public class DemoServiceImpl implements DemoService {
@Override
public String sayHello(String name) {
// TODO Auto-generated method stub
System.out.println("来啦~~~!");
return "hello:" + name;
}
}
服务消费方 customer
配置
spring.application.name=DemoCustomer
dubbo.scan.base-packages=com.osvue.db1.service
dubbo.registry.address=zookeeper://192.168.150.13:2181
自动注入
@Reference(version = "1.0.0")
DemoService serv;
接口
public interface DemoService {
String sayHello(String name);
}