dubbo入门和dubbo-admin部署监控

来源:互联网 发布:承蒙厚爱 却知不恭 编辑:程序博客网 时间:2024/05/17 04:28

dubbo入门和dubbo-admin部署监控

1.环境搭建:
需要用到tomcat7+zookeeper-3.4.6+dubbo-admin-2.5.4-SNAPSHOT.war+eclipse4.*+maven

资源下载移步:http://download.csdn.net/detail/qq_35712358/9824971

pom依赖:

<!-- dubbo --><dubbo.version>2.5.3</dubbo.version><!-- dubbo --><dependency>    <groupId>com.alibaba</groupId>    <artifactId>dubbo</artifactId>    <version>${dubbo.version}</version></dependency><!-- zookeeper --><dependency>    <groupId>org.apache.zookeeper</groupId>    <artifactId>zookeeper</artifactId>    <version>3.4.7</version></dependency><dependency>    <groupId>com.101tec</groupId>    <artifactId>zkclient</artifactId>    <version>0.9</version></dependency>

整个POM.xml

<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/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.ssm.demo</groupId>  <artifactId>ssm</artifactId>  <packaging>war</packaging>  <version>0.0.1-SNAPSHOT</version>  <name>ssm</name>  <url>http://maven.apache.org</url>  <properties>          <!-- spring版本号 -->          <spring.version>4.2.2.RELEASE</spring.version>          <!-- mybatis版本号 -->          <mybatis.version>3.2.6</mybatis.version>          <!-- log4j日志文件管理包版本 -->          <slf4j.version>1.7.7</slf4j.version>          <log4j.version>1.2.17</log4j.version>        <!-- activeMQ -->        <!-- <activemq_version>5.13.3</activemq_version> -->        <activemq_version>5.11.1</activemq_version>        <!-- quartz -->        <quartz.version>2.2.1</quartz.version>         <!-- dubbo -->        <dubbo.version>2.5.3</dubbo.version>    </properties>      <dependencies>          <dependency>              <groupId>junit</groupId>              <artifactId>junit</artifactId>              <version>4.11</version>              <!-- 表示开发的时候引入,发布的时候不会加载此包 -->              <scope>test</scope>          </dependency>          <!-- spring核心包 -->          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-core</artifactId>              <version>${spring.version}</version>          </dependency>          <!-- web-mvc依赖web,不用导包 -->        <!-- <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-web</artifactId>              <version>${spring.version}</version>          </dependency> -->          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-oxm</artifactId>              <version>${spring.version}</version>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-tx</artifactId>              <version>${spring.version}</version>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-jdbc</artifactId>              <version>${spring.version}</version>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-webmvc</artifactId>              <version>${spring.version}</version>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-aop</artifactId>              <version>${spring.version}</version>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-context-support</artifactId>              <version>${spring.version}</version>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-test</artifactId>              <version>${spring.version}</version>          </dependency>          <!-- mybatis核心包 -->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis</artifactId>              <version>${mybatis.version}</version>          </dependency>          <!-- mybatis/spring包 -->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis-spring</artifactId>              <version>1.2.2</version>          </dependency>          <!-- 导入java ee jar 包 -->          <dependency>              <groupId>javax</groupId>              <artifactId>javaee-api</artifactId>              <version>7.0</version>          </dependency>          <!-- 导入Mysql数据库链接jar包 -->          <dependency>              <groupId>mysql</groupId>              <artifactId>mysql-connector-java</artifactId>              <version>5.1.30</version>          </dependency>          <!-- 数据库连接池2选一,还有其余的 -->        <!-- dbcp连接池 -->          <dependency>              <groupId>commons-dbcp</groupId>              <artifactId>commons-dbcp</artifactId>              <version>1.2.2</version>          </dependency>             <!-- c3p0连接池 -->        <dependency>            <groupId>com.mchange</groupId>            <artifactId>c3p0</artifactId>            <version>0.9.5.2</version>        </dependency>        <!-- JSTL标签类 -->          <dependency>              <groupId>jstl</groupId>              <artifactId>jstl</artifactId>              <version>1.2</version>          </dependency>          <!-- 日志文件管理包 -->          <dependency>              <groupId>log4j</groupId>              <artifactId>log4j</artifactId>              <version>${log4j.version}</version>          </dependency>           <dependency>              <groupId>org.slf4j</groupId>              <artifactId>slf4j-api</artifactId>              <version>${slf4j.version}</version>          </dependency>          <dependency>              <groupId>org.slf4j</groupId>              <artifactId>slf4j-log4j12</artifactId>              <version>${slf4j.version}</version>          </dependency>          <!-- fastjson -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>1.2.17</version>        </dependency>        <!-- Jackson -->          <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-databind</artifactId>            <version>2.4.0</version>        </dependency>         <!-- 上传组件包 -->          <dependency>              <groupId>commons-fileupload</groupId>              <artifactId>commons-fileupload</artifactId>              <version>1.3.1</version>          </dependency>          <dependency>              <groupId>commons-io</groupId>              <artifactId>commons-io</artifactId>              <version>2.4</version>          </dependency>          <dependency>              <groupId>commons-codec</groupId>              <artifactId>commons-codec</artifactId>              <version>1.9</version>          </dependency>          <!-- StringUtils -->        <dependency>            <groupId>org.apache.commons</groupId>            <artifactId>commons-lang3</artifactId>            <version>3.5</version>        </dependency>        <!-- activeMQ -->        <dependency>              <groupId>org.apache.activemq</groupId>              <artifactId>activemq-all</artifactId>              <version>${activemq_version}</version>          </dependency>        <dependency>              <groupId>org.apache.activemq</groupId>              <artifactId>activemq-pool</artifactId>              <version>${activemq_version}</version>          </dependency>        <!-- <dependency>              <groupId>activemq</groupId>            <artifactId>activemq-spring</artifactId>            <version>${activemq_version}</version>          </dependency>         <dependency>              <groupId>activemq</groupId>            <artifactId>activemq-web</artifactId>            <version>${activemq_version}</version>          </dependency>        <dependency>              <groupId>activemq</groupId>            <artifactId>activemq-broker</artifactId>            <version>${activemq_version}</version>          </dependency>  -->         <!-- Quartz 定时任务 -->          <dependency>              <groupId>org.quartz-scheduler</groupId>              <artifactId>quartz</artifactId>              <version>${quartz.version}</version>            <!-- 排除依赖 -->            <exclusions>                  <exclusion>                      <groupId>c3p0</groupId>                      <artifactId>c3p0</artifactId>                  </exclusion>              </exclusions>          </dependency>         <dependency>            <groupId>org.quartz-scheduler</groupId>            <artifactId>quartz-jobs</artifactId>            <version>${quartz.version}</version>        </dependency>        <!-- dubbo -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>dubbo</artifactId>            <version>${dubbo.version}</version>        </dependency>        <!-- zookeeper -->        <dependency>            <groupId>org.apache.zookeeper</groupId>            <artifactId>zookeeper</artifactId>            <version>3.4.7</version>        </dependency>        <dependency>            <groupId>com.101tec</groupId>            <artifactId>zkclient</artifactId>            <version>0.9</version>        </dependency>    </dependencies>    <build>        <finalName>ssm</finalName>        <plugins>            <!-- 配置Tomcat插件 -->            <!-- <plugin>                <groupId>org.apache.tomcat.maven</groupId>                <artifactId>tomcat7-maven-plugin</artifactId>                <version>2.2</version>                <configuration>                    <port>8082</port>                    <path>/</path>                </configuration>            </plugin> -->            <!-- <plugin>                <groupId>org.apache.tomcat.maven</groupId>                <artifactId>tomcat7-maven-plugin</artifactId>                <configuration>                    <server>tomcat-local</server>                    <port>8086</port>                    <contextReloadable>true</contextReloadable>                    <systemProperties>                         <JAVA_OPTS>-Xms1024m -Xmx1024m -XX:PermSize=128M - XX:MaxPermSize=256m</JAVA_OPTS>                    </systemProperties>                </configuration>            </plugin> -->            <!-- 资源文件拷贝插件 -->            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-resources-plugin</artifactId>                <version>2.7</version>                <configuration>                    <encoding>UTF-8</encoding>                </configuration>            </plugin>            <!-- java编译插件 -->            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <version>3.2</version>                <configuration>                    <source>1.7</source>                    <target>1.7</target>                    <encoding>UTF-8</encoding>                </configuration>            </plugin>        </plugins>    </build></project>

2.部署dubbo-admin-2.5.4-SNAPSHOT.war
解压之后将所有文件放到tomcat\webapps\ROOT下面
这里写图片描述

修改dubbo.properties

dubbo.registry.address=zookeeper://127.0.0.1:2181dubbo.admin.root.password=rootdubbo.admin.guest.password=guest

在启动tomcat之前先启动zookeeper-3.4.6

这里写图片描述

这里写图片描述

启动成功之后,启动tomcat.然后访问http://localhost:8080/

这里写图片描述

3.这样dubbo-admin就部署完成了

4.HelloWorld入门案例
直接上代码

package com.ssm.dubbo.service;public interface HelloWorld {    String hello(String name);}
package com.ssm.dubbo.service.impl;import com.ssm.dubbo.service.HelloWorld;public class HelloWorldImpl implements HelloWorld {    @Override    public String hello(String name) {        return "dubbo远程接口服务调用了----" + name ;    }}

客户端和服务端的核心配置文件:

dubbo_provider.xml

<?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="hello-world" />         <dubbo:registry address="127.0.0.1:2181" protocol="zookeeper"/>         <dubbo:protocol name="dubbo" port="20880" />                          <bean id="helloWorldService" class="com.ssm.dubbo.service.impl.HelloWorldImpl" />          <dubbo:service interface="com.ssm.dubbo.service.HelloWorld" ref="helloWorldService" executes="10" /></beans>  

dubbo_consumer.xml

<?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="consumer-of-helloworld-app" />    <dubbo:registry address="zookeeper://127.0.0.1:2181" />    <dubbo:reference id="helloWorldService" interface="com.ssm.dubbo.service.HelloWorld" /></beans> 

5.开始测试
DubboProviderTest

package com.ssm.dubbo.test;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * 服务启动者 * @author 353654 * */public class DubboProviderTest {    public static void main(String[] args) throws IOException {        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "dubbo_provider.xml" });        context.start();        System.out.println("Press any key to exit.");        System.in.read();    }}

启动执行服务提供者.之后观察dubbo-admin
这里写图片描述

这里写图片描述

DubboConsumerTest

package com.ssm.dubbo.test;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.ssm.dubbo.service.HelloWorld;public class DubboConsumerTest implements Runnable{    @Override    public void run() {        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "dubbo_consumer.xml" });        context.start();        context.getBean("helloWorldService");        HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorldService");        String hello = helloWorld.hello("小明");        System.out.println(hello);        System.out.println("执行完毕");    }    public static void main(String[] args) {        new Thread(new DubboConsumerTest()).start();        System.out.println("Press any key to exit.");        try {            System.in.read();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

执行服务消费者
这里写图片描述

这里写图片描述

6.简单粗暴,跟平时接口没什么区别.还能与spring集成.

0 0
原创粉丝点击