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