dubbo和zookeeper的安装

一、zookeeper注册中心(Regist)

前提:安装jdk

1、下载zookeeper,并上传到服务器

zookeeper下载地址:https://zookeeper.apache.org/documentation.html
在这里插入图片描述

解压缩:

 tar zxvf zookeeper-3.6.3.tar.gz

2、配置zookeeper

进入到conf目录中
在这里插入图片描述

把zoo_sample.cfg文件修改为zoo.cfg

mv  zoo_sample.cfg zoo.cfg

编辑zoo.cfg

vim zoo.cfg

在这里插入图片描述

启动zookeeper

 ./zkServer.sh start
 ./zkServer.sh stop
 ./zkServer.sh status

查看日志,在bin目录下

vim zookeeper.out

在这里插入图片描述

二、dubbo监控中心(monitor)

上传文件

Alt+p快捷键

在这里插入图片描述

把root下的文件剪切到当前目录的java文件夹中
mv /root/dubbo-monitor-simple-2.5.10-assembly.tar.gz ./java

解压文件

tar -zxvf dubbo-monitor-simple-2.5.10-assembly.tar.gz不加v说明没有解压过程tar -zxf dubbo-monitor-simple-2.5.10-assembly.tar.gz

在这里插入图片描述

编辑conf文件夹中的dubbo.properties文件

在这里插入图片描述

vim dubbo.properties

在这里插入图片描述

端口默认是8080,可以自己修改端口注释掉dubbo.registry.address=multicast://224.5.6.7:1234开放dubbo.registry.address=zookeeper://127.0.0.1:2181

启动dubbo监控中心

./server.sh start./server.sh stop./server.sh restart启动命令也可以是 ./start.sh

在这里插入图片描述

这个时候如果一直在starting…

在这里插入图片描述

原因可能是服务的内存不够,进入到monitor的bin目录下找到start.sh文件,把内存2g修改成512m,保存退出即可。

vim start.sh

在这里插入图片描述

如果还是不行,可以考虑端口是否被占用

启动成功后在dubbo-monitor生成一个日志目录

在这里插入图片描述

使用浏览器打开

在这里插入图片描述

如果打不开,试一下开放dubbo-monitor的端口

三、dubbo服务管理平台

前提需要安装tomcat,建议修改端口号

下载源码打包,官网提供的源码包,

地址:https://github.com/alibaba/dubbo

解压后,打开cmd命令窗口,进入源码文件所在总目录下,利用maven命令打包:

mvn install -Dmaven.test.skip=true

命令执行成功结束后,在 dubbo-admin 目录下会生成target文件夹,文件夹下会出现一个war包,若未成功生成war包,可进入dubbo-admin目录

执行命令mvn package -Dmaven.test.skip ,把dubbo-admin打成war包

备份tomcat/webapps/目录下的ROOT,然后把ROOT中的所有文件删除

备份:cp /usr/local/tomcat/webapps/ROOT /usr/local/root_bak/ROOT_0819删除:rm -rf *

在这里插入图片描述

上传dubbo-admin.war,并解压到ROOT目录下

unzip dubbo-admin-2.5.10.war -d ROOT

在这里插入图片描述

ROOT目录下有一个WEB-INF,里面有一个dubbo.properties文件

在这里插入图片描述

编辑dubbo.properties文件

vim dubbo.properties

在这里插入图片描述

打开浏览器,输入密码

在这里插入图片描述

四、开发(Consumer和Provider)

官网快速开始:https://dubbo.apache.org/en/docs/v2.7/user/quick-start/

实例

建一个空的maven项目dubbo,在dubbo项目中创建dubbo-interface,dubbo-provider ,dubbo-consumer三个模块
在这里插入图片描述

目录结构如下:

在这里插入图片描述

dubbo-interface模块代码

在这里插入图片描述

dubbo-provider 模块

pom添加依赖

<dependency>       
     <groupId>com.liang</groupId>        
     <artifactId>dubbo-interface</artifactId>       
      <version>1.0-SNAPSHOT</version>    
 </dependency>    
 <!--引入dubbo的依赖-->        
 <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>dubbo</artifactId>
             <version>2.5.10</version>        
</dependency>       
 <!--zookeeper客户端依赖-->
         <dependency>
                 <groupId>com.github.sgroschupf</groupId>
                 <artifactId>zkclient</artifactId>                            
          <version>0.1</version>       
        </dependency>

实现类

package com.liang.service.impl;import com.liang.service.IUserService;
public class UserServiceImpl implements IUserService{    
	public String hello() {        
			return "hello,dubbo!";    
			}
	}

发布服务,配置springxml文件

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="dubbo-privoder"/>    <!--定义协议端口-->    <dubbo:protocol 
port="28800"/>    <!--定义注册中心的地址,这里的地址是服务器的ip地址-->    
<dubbo:registry protocol="zookeeper" address="42.192.106.130:2181"/>    <!--定义服
务提供者-->    <bean id="userService" 
class="com.liang.service.impl.UserServiceImpl"/>    <dubbo:service 
interface="com.liang.service.IUserService" ref="userService"/></beans>

启动Spring容器(发布服务)


package com.liang.service.impl;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[]{"classpath:dubbo-provider.xml"});        
      context.start();        
      System.out.println("发布服务成功.");      
        System.in.read(); // press any key to exit   
      }
  }

运行Provider,报错如下

"H:\Program Files (x86)\Java\jdk1.8.0_251\bin\java" "-javaagent:H:\Program Files (x86)\JetBrains\IntelliJ IDEA 2017.3.7\lib\idea_rt.jar=58597:H:\Program Files (x86)\JetBrains\IntelliJ IDEA 2017.3.7\bin" -Dfile.encoding=UTF-8 -classpath "H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\charsets.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\deploy.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\access-bridge-32.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\cldrdata.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\dnsns.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\jaccess.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\jfxrt.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\localedata.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\nashorn.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\sunec.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\sunjce_provider.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\sunmscapi.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\sunpkcs11.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\ext\zipfs.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\javaws.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\jce.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\jfr.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\jfxswt.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\jsse.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\management-agent.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\plugin.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\resources.jar;H:\Program Files (x86)\Java\jdk1.8.0_251\jre\lib\rt.jar;I:\01.开发\资料-传智健康项目\day01\dubbo和zookeeper\dubbo\dubbo-provider\target\classes;I:\01.开发\资料-传智健康项目\day01\dubbo和zookeeper\dubbo\dubbo-interface\target\classes;D:\apache_maven\com\alibaba\dubbo\2.5.8\dubbo-2.5.8.jar;D:\apache_maven\org\springframework\spring-context\4.3.10.RELEASE\spring-context-4.3.10.RELEASE.jar;D:\apache_maven\org\springframework\spring-aop\4.3.10.RELEASE\spring-aop-4.3.10.RELEASE.jar;D:\apache_maven\org\springframework\spring-core\4.3.10.RELEASE\spring-core-4.3.10.RELEASE.jar;D:\apache_maven\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;D:\apache_maven\org\springframework\spring-expression\4.3.10.RELEASE\spring-expression-4.3.10.RELEASE.jar;D:\apache_maven\org\springframework\spring-beans\4.3.10.RELEASE\spring-beans-4.3.10.RELEASE.jar;D:\apache_maven\org\springframework\spring-web\4.3.10.RELEASE\spring-web-4.3.10.RELEASE.jar;D:\apache_maven\org\javassist\javassist\3.20.0-GA\javassist-3.20.0-GA.jar;D:\apache_maven\org\jboss\netty\netty\3.2.5.Final\netty-3.2.5.Final.jar;D:\apache_maven\com\github\sgroschupf\zkclient\0.1\zkclient-0.1.jar;D:\apache_maven\org\apache\zookeeper\zookeeper\3.3.3\zookeeper-3.3.3.jar;D:\apache_maven\jline\jline\0.9.94\jline-0.9.94.jar;D:\apache_maven\junit\junit\3.8.1\junit-3.8.1.jar;D:\apache_maven\log4j\log4j\1.2.14\log4j-1.2.14.jar" com.liang.service.impl.Providerlog4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).log4j:WARN Please initialize the log4j system properly.Exception in thread "main" java.lang.IllegalStateException: Failed to register dubbo://192.168.120.2:28800/com.liang.service.IUserService?anyhost=true&application=dubbo-privoder&dubbo=2.5.8&generic=false&interface=com.liang.service.IUserService&methods=hello&pid=4068&side=provider&timestamp=1629419659953 to registry 127.0.0.1:2181, cause: Failed to register dubbo://192.168.120.2:28800/com.liang.service.IUserService?anyhost=true&application=dubbo-privoder&dubbo=2.5.8&generic=false&interface=com.liang.service.IUserService&methods=hello&pid=4068&side=provider&timestamp=1629419659953 to zookeeper zookeeper://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?application=dubbo-privoder&dubbo=2.5.8&interface=com.alibaba.dubbo.registry.RegistryService&pid=4068&timestamp=1629419659930, cause: Zookeeper is not connected yet!	at com.alibaba.dubbo.registry.support.FailbackRegistry.register(FailbackRegistry.java:149)	at com.alibaba.dubbo.registry.integration.RegistryProtocol.register(RegistryProtocol.java:117)	at com.alibaba.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:136)	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:92)	at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:67)	at com.alibaba.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)	at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:504)	at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:356)	at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:315)	at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:214)	at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:113)	at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:42)	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167)	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)	at com.liang.service.impl.Provider.main(Provider.java:9)Caused by: com.alibaba.dubbo.rpc.RpcException: Failed to register dubbo://192.168.120.2:28800/com.liang.service.IUserService?anyhost=true&application=dubbo-privoder&dubbo=2.5.8&generic=false&interface=com.liang.service.IUserService&methods=hello&pid=4068&side=provider&timestamp=1629419659953 to zookeeper zookeeper://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?application=dubbo-privoder&dubbo=2.5.8&interface=com.alibaba.dubbo.registry.RegistryService&pid=4068&timestamp=1629419659930, cause: Zookeeper is not connected yet!	at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry.doRegister(ZookeeperRegistry.java:112)	at com.alibaba.dubbo.registry.support.FailbackRegistry.register(FailbackRegistry.java:136)	... 20 moreCaused by: java.lang.IllegalStateException: Zookeeper is not connected yet!	at com.alibaba.dubbo.remoting.zookeeper.zkclient.ZkClientWrapper.createPersistent(ZkClientWrapper.java:82)	at com.alibaba.dubbo.remoting.zookeeper.zkclient.ZkclientZookeeperClient.createPersistent(ZkclientZookeeperClient.java:45)	at com.alibaba.dubbo.remoting.zookeeper.support.AbstractZookeeperClient.create(AbstractZookeeperClient.java:47)	at com.alibaba.dubbo.remoting.zookeeper.support.AbstractZookeeperClient.create(AbstractZookeeperClient.java:41)	at com.alibaba.dubbo.remoting.zookeeper.support.AbstractZookeeperClient.create(AbstractZookeeperClient.java:41)	at com.alibaba.dubbo.remoting.zookeeper.support.AbstractZookeeperClient.create(AbstractZookeeperClient.java:41)	at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry.doRegister(ZookeeperRegistry.java:110)	... 21 moreProcess finished with exit code 1

这是因为没有开启服务器的防火墙引起的,只要开2181端口即可

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPTservice iptables restart

在这里插入图片描述

在这里插入图片描述

dubbo-consumer模块

pom添加依赖

    
      <dependency>
           	 <groupId>com.liang</groupId>        
           	 <artifactId>dubbo-interface</artifactId>        
          	  <version>1.0-SNAPSHOT</version>
           </dependency>    
          <!--引入dubbo的依赖-->       
           <dependency>            
                 <groupId>com.alibaba</groupId>           
                  <artifactId>dubbo</artifactId>           
                   <version>2.5.10</version>        
           </dependency>        
         <!--zookeeper客户端依赖-->        
        <dependency>            
             <groupId>com.github.sgroschupf</groupId>            
              <artifactId>zkclient</artifactId>           
              <version>0.1</version>        
      </dependency>

添加Springxml配置文件

<?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="dubbo-consumer"/>    
<!--定义注册中心的地址--> 
   <dubbo:registry protocol="zookeeper" address="42.192.106.130:2181"/>   
    <!--引用服务-->    
    <dubbo:reference interface="com.liang.service.IUserService" id="userService"/></beans>

dubbo-consumer服务程序

package com.liang.consumer;import com.liang.service.IUserService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
public class Consumer {
    public static void main(String[] args) throws IOException {       		 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(                	new String[]{"classpath:dubbo-consumer.xml"});        
    context.start();        //获取远程服务       
     IUserService userService = context.getBean(IUserService.class);        
     System.out.println("获取服务端的反馈信息" + userService.hello());        
     System.in.read();    
     }
   }

运行Consumer类

获取服务端的反馈信息hello,dubbo!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值