Dubbo 第一章:详情版(1)

创建Provider工程

提供RemoteEmployeeService 接口实现类

基于RemoteEmployeeService 接口暴露服务

在pom.xml中加入依赖

com.alibaba

dubbo

2.5.5

cglib

cglib

2.2

org.aspectj

aspectjweaver

1.6.8

com.github.sgroschupf

zkclient

0.1

com.dubbo

Dubbo_Common

0.0.1-SNAPSHOT

spring-provider.xml

<dubbo:application name=“provider”/>

<dubbo:registry address=“192.168.0.100:2181” protocol=“zookeeper”/>

<dubbo:service interface=“com.api.RemoteEmployeeService” ref=“remoteEmployeeService”/>

<dubbo:protocol name=“dubbo” port=“20880”/>

web.xml

contextConfigLocation

classpath:spring-provider.xml

org.springframework.web.context.ContextLoaderListener

RemoteEmployeeService接口实现类

获取到数据改动就可

创建Consumer工程

pom.xml

javax.servlet

servlet-api

2.5

provided

javax.servlet.jsp

jsp-api

2.1.3-b06

provided

cglib

cglib

2.2

org.aspectj

aspectjweaver

1.6.8

com.alibaba

dubbo

2.5.5

com.github.sgroschupf

zkclient

0.1

org.springframework

spring-webmvc

4.3.10.RELEASE

compile

com.dubbo

Dubbo_Common

0.0.1-SNAPSHOT

form.jsp

表单

ID:

Name:

spring-consumer.xml

<context:component-scan base-package=“com.handler”/>

mvc:annotation-driven/

<dubbo:application name=“consumer”/>

<dubbo:registry address=“192.168.0.100:2181” protocol=“zookeeper”/>

<dubbo:reference id=“RemoteEmployeeService” interface=“com.api.RemoteEmployeeService”/>

handler方法

@Autowired

private RemoteEmployeeService remoteEmployeeService;

@RequestMapping(“/handler”)

public String queryEmployee(Employee employee,Model model) {

Employee queryEmployeeByCondition = remoteEmployeeService.queryEmployeeByCondition(employee);

model.addAttribute(“employee”, queryEmployeeByCondition);

return “target”;

}

web.xml

springDispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-consumer.xml

1

springDispatcherServlet

/

项目下载

启动运行项目

先运行provider

在运行consumer,改端口号,避免报错

页面

点击提交

我们知道ZooKeeper 可以作为 Dubbo 的注册中心,那Dubbo在Zookeeper服务器上注册服务信息后节点的层次结构是怎样的?

图1:

使用客户端登录服务器,登录之前要启动服务器,我们之前启动过了,现在可以直接登录

登录后,查看providers,可以看到它加过密

[dubbo, zookeeper, fruit]中dubbo对应图1中ROOT那一级

[com.api.RemoteEmployeeService]和接口名一致,对应图1中Service

[consumers, configurators, routers, providers]对应图1中Type

[dubbo%3A%2F%2F192.168.0.1%3A20880%2Fcom.api.RemoteEmployeeService%3Fanyhost%3Dtrue%26application%3Dprovider%26dubbo%3D2.5.5%26generic%3Dfalse%26interface%3Dcom.api.RemoteEmployeeService%26methods%3DqueryEmployeeByCondition%26pid%3D10092%26revision%3D0.0.1-SNAPSHOT%26side%3Dprovider%26timestamp%3D1545392365086]对应图1中的URL

我们可以解密

public static void main(String[] args) throws UnsupportedEncodingException {

String encode = “dubbo%3A%2F%2F192.168.0.1%3A20880%2Fcom.api.RemoteEmployeeService%3Fanyhost%3Dtrue%26application%3Dprovider%26dubbo%3D2.5.5%26generic%3Dfalse%26interface%3Dcom.api.RemoteEmployeeService%26methods%3DqueryEmployeeByCondition%26pid%3D10092%26revision%3D0.0.1-SNAPSHOT%26side%3Dprovider%26timestamp%3D1545392365086”;

String decode = URLDecoder.decode(encode, “UTF-8”);

System.out.println(“decode=”+decode);

}

解密之后Provider注册信息

decode=dubbo://192.168.0.1:20880/com.api.RemoteEmployeeService?anyhost=true&application=provider&dubbo=2.5.5&generic=false&interface=com.api.RemoteEmployeeService&methods=queryEmployeeByCondition&pid=10092&revision=0.0.1-SNAPSHOT&side=provider&timestamp=1545392365086

现在信息就比较明朗了,我就不作解释了,当然你们也可以自己测试consumer,我就不作测试了。

dubbo的使用

dubbo本身并不是一个服务软件。它其实就是一个jar包能够帮你的java程序连接到zookeeper,并利用zookeeper消费、提供服务。所以你不用在Linux上启动什么dubbo服务。

但是为了让用户更好的管理监控众多的dubbo服务,官方提供了一个可视化的监控程序,不过这个监控即使不装也不影响使用。

安装监控软件:

材料: tomcat8 +  dubbo-admin

拷贝tomcat8和dubbo-admin到/opt目录下

点击下载dubbo-admin-2.6.0.war

改权限chmod 777 dubbo-admin-2.6.0.war

解压到dubbo目录下unzip dubbo-admin-2.6.0.war -d dubbo

去tomcat下conf下的server.xml

加上 

然后启动tomcat服务就可以了

然后在浏览器上输入你的ip:查看ip地址:ifconfig

这里的用户名和密码都是root

这里就可以监控你的服务了,当然这里还没有添加服务。

设置开机启动

[root@localhost tomcat4dubbo]# vim /etc/init.d/dubbo

先i,然后在复制如下脚本Esc键+:wq:保存退出

#!/bin/bash

#chkconfig:2345 20 90

#description:dubbo-admin

#processname:dubbo-admin

CATALANA_HOME=/opt/apache-tomcat-7.0.75

export JAVA_HOME=/opt/jdk1.8.0_152

case $1 in

start)

echo “Starting Tomcat…”

$CATALANA_HOME/bin/startup.sh

;;

stop)

echo “Stopping Tomcat…”

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
up.sh

;;

stop)

echo “Stopping Tomcat…”

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-6IL6bGO8-1715667551217)]

[外链图片转存中…(img-WpYroo1I-1715667551217)]

[外链图片转存中…(img-TYAUuICm-1715667551218)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值