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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

image

image

image

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
容对你有帮助,可以扫码获取!!(备注Java获取)**

img

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

[外链图片转存中…(img-abBID1AS-1713341817447)]

[外链图片转存中…(img-VVGlnN4v-1713341817447)]

[外链图片转存中…(img-NQVbSzRt-1713341817448)]

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值