一:安装软件:
tomcat
Zookeeper
Dubbo+admin


二:工程:

总工程
  API
    Pom.xml:不用引用任何东西
  Provider
    Pom.xml:要denpendency API的模块。
    provider.xml:向dubbo注册所提供的服务。
  Consumer
    Pom.xml:要denpendency API的模块。
    consumer.xml:向dubbo注册。
  Pom.xml:dependency:Spring    Dubbo    Zookeeper

 

三:具体步骤:

1. 安装tomcat。这个可以自己在网上找。修改名称为tomcat,放/usr/local/下边。然后启动tomcat(bin/startup.sh)。

2. Zookeeper,

   a. 下载(http://mirrors.shuosc.org/apache/zookeeper/),然后修改名称为zookeeper,拷贝到/usr/local/文件夹下。

   b. 配置、启动zookeeper,在命令行中,进入/usr/local/zookeeper/conf文件夹,修改zoo_sample.cfg为zoo.cfg,然后返回上个目录,在命令行中执行 bin/zkServer.sh start。

3. 

   a. 安装Dubbo+admin,用于管理zookeeper,下载(http://dubbo.io/),进入dubbo+admin中,用idea打开pom.xml文件,然后在idea的终端中,打包 mvn install -DskipTests

   b. 进入dubbo-admin->targer文件夹下,找到dubbo-admin-2.5.5.war文件,拷贝到/usr/local/tomcat/webapps/文件夹下,然后可以直接在浏览器中访问改地址。

   c. 一般地址是http://localhost:8080/dubbo-admin-2.5.5/,用户名密码都是root,root。

 

http://m.blog.csdn.net/think12/article/details/78162971

详细讲解IntellJ 下Dubbo +zookeeper+springmvc的配置

http://blog.csdn.net/guyang5863637/article/details/62041425

zookeeper已经开启

dubbo-admin安装成功

1、开始搭建一个空maven工程 作为父工程管理其他模块

2、创建子工程 MyController(消费者). MyInterfence.   MyService(提供者)

 MyController可以使用maven模版, MyInterfence.   MyService不使用maven模版

 MyInterfence.   MyService的maven创建省略,不需要使用模版

3、MyInterfence项目.的java目录下创建包com.start.interfence  创建接口MyInterfence,如下

MyInterfence的简单代码

1 package com.start.interfence;
2 
3 public interface MyInterfence {
4     public String helloWorld();
5 }

4、MyService项目

首先在pom.xml中引入依赖的jar包

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <parent>
 6         <artifactId>Demo</artifactId>
 7         <groupId>com.parent</groupId>
 8         <version>1.0-SNAPSHOT</version>
 9     </parent>
10     <modelVersion>4.0.0</modelVersion>
11 
12     <artifactId>MyService</artifactId>
13 
14     <dependencies>
15         <dependency>
16             <groupId>com.parent</groupId>
17             <artifactId>MyInterfence</artifactId>
18             <version>1.0-SNAPSHOT</version>
19         </dependency>
20         <dependency>
21             <groupId>com.alibaba</groupId>
22             <artifactId>dubbo</artifactId>
23             <version>2.5.3</version>
24         </dependency>
25         <dependency>
26             <groupId>org.javassist</groupId>
27             <artifactId>javassist</artifactId>
28             <version>3.18.2-GA</version>
29         </dependency>
30         <dependency>
31             <groupId>org.apache.zookeeper</groupId>
32             <artifactId>zookeeper</artifactId>
33             <version>3.3.6</version>
34         </dependency>
35         <dependency>
36             <groupId>com.github.sgroschupf</groupId>
37             <artifactId>zkclient</artifactId>
38             <version>0.1</version>
39         </dependency>
40     </dependencies>
41 
42 </project>

然后在resources目录下创建provider.xml (Spring的xm l)

 1 <?xml version="1.0" encoding="ISO-8859-1"?>
 2 
 3 <beans  xmlns="http://www.springframework.org/schema/beans"
 4         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5         xmlns:jee="http://www.springframework.org/schema/jee"
 6         xmlns:tx="http://www.springframework.org/schema/tx"
 7         xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
 8         xmlns:context="http://www.springframework.org/schema/context"
 9         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
10         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
11         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
12              http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
13         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"
14         default-lazy-init="false" >
15 
16 
17     <bean id="myInterfence" class="com.start.service.MyInterfenceImpl"></bean>
18 
19     <dubbo:application name="dubbo_provider"></dubbo:application>
20 
21     <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" subscribe="false" ></dubbo:registry>
22 
23 
24     <dubbo:service interface="com.start.interfence.MyInterfence" ref="myInterfence" />
25 
26 
27 
28 </beans>

在java目录下创建包com.start.service。   在此包下创建MyInterfence.java 实现MyInterfence接口,MyInterfence.java代码如下

1 package com.start.service;
2 
3 import com.start.interfence.MyInterfence;
4 
5 public class MyInterfenceImpl implements MyInterfence{
6     public String helloWorld() {
7         return "Hello 你好";
8     }
9 }

在java目录的包com.start.service。下创建Provider.java类 用于启动服务 Provider.java代码如下

 1 package com.start.service;
 2 
 3 import org.springframework.context.support.ClassPathXmlApplicationContext;
 4 
 5 import java.io.IOException;
 6 
 7 public class Provider {
 8 
 9     public static void main(String[] args){
10         ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"provider.xml"});
11         context.start();
12         System.out.println("provider 服务开启");
13         try {
14             System.in.read();
15         } catch (IOException e) {
16             e.printStackTrace();
17         }
18     }
19 }

 

此时,打开网页http://localhost:8080/dubbo-admin-2.5.8/  (dubbo-admin-2.5.8根据你的配置)

5、配置MyController项目,

 

首先,在resources目录下新建consumer.xml配置文件,配置SpringMVC注解,视图解析器,dubbo。  consumer.xml代码如下

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <beans xmlns="http://www.springframework.org/schema/beans"
 4        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5        xmlns:p="http://www.springframework.org/schema/p"
 6        xmlns:context="http://www.springframework.org/schema/context"
 7        xmlns:mvc="http://www.springframework.org/schema/mvc"
 8        xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
 9        xsi:schemaLocation="http://www.springframework.org/schema/beans
10        http://www.springframework.org/schema/beans/spring-beans.xsd
11        http://www.springframework.org/schema/mvc
12        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
13        http://www.springframework.org/schema/context
14        http://www.springframework.org/schema/context/spring-context.xsd
15  http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
16 
17     <context:component-scan base-package="com.start.controller"/>
18 
19     <!-- 配置注解驱动 -->
20     <mvc:annotation-driven/>
21     <mvc:default-servlet-handler/>
22 
23     <!-- 视图解析器 -->
24     <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
25     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
26         <property name="prefix" value="/WEB-INF/view/"/>
27         <property name="suffix" value=".jsp"/>
28     </bean>
29 
30     <dubbo:application name="dubbo_consumer"></dubbo:application>
31 
32     <!-- 使用zookeeper注册中心暴露服务地址 -->
33     <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false"></dubbo:registry>
34 
35     <!-- 要引用的服务 -->
36     <dubbo:reference interface="com.start.interfence.MyInterfence" id="myInterfence"></dubbo:reference>
37 
38 </beans>

然后在web.xml添加配置信息,注意标签的顺序

 1 <!DOCTYPE web-app PUBLIC
 2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
 4 
 5 <web-app>
 6   <display-name>Archetype Created Web Application</display-name>
 7     <filter>
 8         <filter-name>encodingFilter</filter-name>
 9         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
10         <init-param>
11             <param-name>encoding</param-name>
12             <param-value>UTF-8</param-value>
13         </init-param>
14     </filter>
15 
16     <filter-mapping>
17         <filter-name>encodingFilter</filter-name>
18         <url-pattern>/*</url-pattern>
19     </filter-mapping>
20     <servlet>
21         <servlet-name>dispatcherServlet</servlet-name>
22         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
23         <init-param>
24             <param-name>contextConfigLocation</param-name>
25             <param-value>classpath:consumer.xml</param-value>
26         </init-param>
27 
28         <load-on-startup>1</load-on-startup>
29         
30     </servlet>
31 
32     <servlet-mapping>
33         <servlet-name>dispatcherServlet</servlet-name>
34         <url-pattern>*.do</url-pattern>
35     </servlet-mapping>
36 
37 
38 
39 
40 </web-app>

在java目录下新建包com.start.controller 并在此包下新建MyController.java 测试消费者 代码如下

 1 package com.start.controller;
 2 
 3 import com.start.interfence.MyInterfence;
 4 import org.springframework.beans.factory.annotation.Autowired;
 5 import org.springframework.context.support.ClassPathXmlApplicationContext;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 
 9 
10 @Controller
11 public class MyController {
12     @Autowired
13     private MyInterfence myInterfence;
14     @RequestMapping("/test.do")
15     public String getTest() {
16         System.out.print("11111111111");
17         String str = myInterfence.helloWorld();
18         System.out.print(str);
19         return "welcome";
20     }
21 
22     /*public static void main(String[] args){
23         //ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("consumer.xml");
24         ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"consumer.xml"});
25         context.start();
26         System.out.println("消费者。。。");
27         MyInterfence my= (MyInterfence) context.getBean("myInterfence");
28         my.helloWorld();
29     }*/
30 }

在WEB-INF 下建view/welcome.jsp

1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 <html>
3 <head>
4     <title>welcome China</title>
5 </head>
6 <body>
7 "sssss"
8 </body>
9 </html>

配置Tomcat,点击下图进行Tomcat的配置,点击左上角的➕选择下面的Tomcat Server ,然后选择Local

然后选择右侧的Deployment,点击左下角的➕,选择Artifcat,结果如图3所示

图1

图2

图3

 

启动Tomcat

此时会报错,显示404 因为在后台开了一个Tomcat了,端口号为8080,开着的目的,主要是打开dubbo的admin页面,查看提供者和消费者的

把端口号换一下,重新运行

打开界面,输入配置的路径,然后输入请求路径,成功

http://localhost:8085/demo/test.do

登录到dubbo的admin页面,发现消费者也出来了

 

一个简单的小项目就完成了。 
注意,在写提供者那一块,Zookeeper的服务就要打开,放那不用管它,Tomcat也可以本地先启动,为的是能够打开dubbo的admin,当然,你在Tomcat本地上先要把dubbo.war包解压后放到webapp目录下,也可以解压替换root文件夹,这样一打开tomcat首页就是dubbo-admin页面,注意后来发布项目的时候,Tomcat的端口号不要再用8080了,容易冲突。 
第一次尝试很好的例子

本文的源代码https://github.com/wanglecp/Demo.git

posted on 2017-12-18 20:02  脆皮软心  阅读(573)  评论(0编辑  收藏  举报