dubbo配置
provider生产者需要配置注册中心,应用名称,协议方式,暴露的服务
consumer消费者需要配置注册中心,应用名称,引用服务
在配置注册中心,zookeeper注册中心
配置这些基本就能启动一个简单的dubbo应用,
spring和dubbo配置,maven构建项目,引入需要的jar包,pom.xml如下
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Spring依赖 -->
<!-- 1.Spring核心依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 2.Spring dao依赖 -->
<!-- spring-jdbc包括了一些如jdbcTemplate的工具类 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 3.Spring web依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 4.Spring test依赖:方便做单元测试和集成测试 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.5</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
</dependency>
<dependency>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
<version>3.2.5.Final</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
这里用最简单的加载application.xml配置启动,provider生产者只要在application中声明一个bean,注册注册中心,应用名称,暴露服务名,使用的协议.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
">
<!--声明使用到的bean-->
<bean id="demoService" class="com.serviceImpl.DemoServiceImpl"/>
<!--dubbo应用名称-->
<dubbo:application name="test_application"/>
<!--注册中心-->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<!--协议名称-->
<dubbo:protocol name="rmi" port="1099"/>
<!--暴露的服务名称-->
<dubbo:service interface="com.service.DemoService" ref="demoService"/>
</beans>
consumer消费者在application里配置应用名称,注册中心,引用的服务.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
">
<!--应用名称不需要和生产者一致-->
<dubbo:application name="test_application"/>
<!--注册中心-->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<!--引用服务,id需和生产者声明的一致-->
<dubbo:reference id="demoService"
interface="com.service.DemoService" />
</beans>
然后需要zoopeeper中心,我使用的是zookeeper-3.4.13,直接去官网下载,解压之后将文件夹下面的config文件夹中的zoo_sample.cfg 复制一份,命名为zoo.cfg,再去bin文件夹下启动zkServer.cmd,就可以了
下面附上生产者启动类
package test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
public class Provider {
public static void main(String args[]) throws IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
context.start();
System.out.println("服务启动");
System.in.read(); // 为保证服务一直开着,利用输入流的阻塞来模拟
}
}
消费者
import com.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String args[]){
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"application.xml"});
context.start();
DemoService service = (DemoService) context.getBean("DemoService");
service.sayHello();
context.close();
}
}
dubbo-admin管理项目,从git下载源码,然后idea编译,启动,就可以了.
下面是账户信息 root用户密码为root,guest用户密码为guest 而不是root用户密码为guest
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest