安装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);

}