Java之Dubbo入门到精通【IDEA版】软件安装和项目搭建【一】(一篇文章精通系列)

  • Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架。

  • 致力于提供高性能和透明化的RPC远程服务调用方索,以及SOA服务治理方案。

  • 官网:https://dubbo.apache.org/zh/

在这里插入图片描述

点击快速开始

在这里插入图片描述

在这里插入图片描述

节点角色说明:

  • Provider:暴露服务的服务提供方

  • Container:服务运行容器

  • Consumer:调用远程服务的服务消费方

  • Registry:服务注册与发现的注册中心

  • Monitor:统计服务的调用次数和调用时间的监控中心

二、Dubbo快速入门


1、Zookeeper安装和启动

. Dubbo官方推荐使用Zookeeper作为注册中心

下载安装Zookeeper,在这之前需要安装Java这里不演示

在这里我们使用的是虚拟机安装Zookeeper,在虚拟机当中的opt目录当中创建zookeeper目录

mkdir zookeeper

在这里插入图片描述

通过WinSCP将对应的Zookeeper安装包上次到Linux当中的opt/zookeeper目录当中

在这里插入图片描述

在终端当中解压对应的zookeeper

tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz

在这里插入图片描述

在这里插入图片描述

修改配置文件

进入配置文件的目录当中

进入

cd /opt/zookeeper/apache-zookeeper-3.5.6-bin/conf

在这里插入图片描述

复制zoo_sample.cfg 修改其文件名

cp zoo_sample.cfg zoo.cfg

在这里插入图片描述

编辑 zoo.cfg

vim zoo.cfg

我们需要修改dataDir=/tmp/zookeeper

在这里插入图片描述

开启另外一个终端窗口

进入到/opt/zookeeper

cd /opt/zookeeper

创建zkdata目录

mkdir zkdata

在这里插入图片描述

回到之前的终端修改dataDir,按i插入,然后设置对应的路径,/opt/zookeeper/zkdata

在这里插入图片描述

然后esc->:->wq

启动zookeeper

进入bin目录

在这里插入图片描述

启动zkServer.sh

./zkServer.sh start

在这里插入图片描述

停止zkServer.sh

./zkServer.sh stop

查看状态

./zkServer.sh status

2、Dubbo快速入门

(1)相关概念

在这里插入图片描述

实现步骤

(1)创建服务提供者Provider模块

(2)创建服务消费者Consumer模块

(3)在服务提供者模块编写UserServiceImpl提供服务

(4)在服务消费者中的UserController远程调用UserServiceImpl提供的服务

(5)分别启动两个服务,测试

3、搭建Web工程

(2)创建Java工程

在这里插入图片描述

在这里插入图片描述

创建了一个空项目

在这里插入图片描述

在这里插入图片描述

设置一下JDK

在这里插入图片描述

配置好Maven

在这里插入图片描述

(3)创建模块

创建模块一

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建成功

在这里插入图片描述

创建模块二

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(4)引入依赖
1)在dubbo-web当中引入依赖

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>

<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/xsd/maven-4.0.0.xsd”>

4.0.0

cn.itbluebox

dubbo-web

1.0-SNAPSHOT

<spring.version>5.1.9.RELEASE</spring.version>

<dubbo.version>2.7.4.1</dubbo.version>

<zookeeper.version>4.0.0</zookeeper.version>

javax.servlet

javax.servlet-api

3.1.0

provided

org.springframework

spring-context

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.slf4j

slf4j-api

1.7.21

org.slf4j

slf4j-log4j12

1.7.21

org.apache.dubbo

dubbo

${dubbo.version}

org.apache.curator

curator-framework

${zookeeper.version}

org.apache.curator

curator-recipes

${zookeeper.version}

org.apache.tomcat.maven

tomcat7-maven-plugin

2.1

8000

/

2)在dubbo-service当中引入依赖

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>

<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/xsd/maven-4.0.0.xsd”>

4.0.0

cn.itbluebox

dubbo-service

1.0-SNAPSHOT

<spring.version>5.1.9.RELEASE</spring.version>

<dubbo.version>2.7.4.1</dubbo.version>

<zookeeper.version>4.0.0</zookeeper.version>

javax.servlet

javax.servlet-api

3.1.0

provided

org.springframework

spring-context

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.slf4j

slf4j-api

1.7.21

org.slf4j

slf4j-log4j12

1.7.21

org.apache.dubbo

dubbo

${dubbo.version}

org.apache.curator

curator-framework

${zookeeper.version}

org.apache.curator

curator-recipes

${zookeeper.version}

(5)编写Service和对应的实现类

在这里插入图片描述

在这里插入图片描述

package com.itbluebox.service;

public interface UserService {

public String sayHello();

}

在这里插入图片描述

在这里插入图片描述

package com.itbluebox.service.impl;

import com.itbluebox.service.UserService;

import org.springframework.stereotype.Service;

@Service

public class UserServiceImpl implements UserService {

@Override

public String sayHello() {

return “hello dubbo!~”;

}

}

(6)创建相关的配置文件
  • applicationContext.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://dubbo.apache.org/schema/dubbo” xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

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

  • log4j.properties

在这里插入图片描述

DEBUG < INFO < WARN < ERROR < FATAL

Global logging configuration

log4j.rootLogger=info, stdout,file

My logging configuration…

#log4j.logger.com.tocersoft.school=DEBUG

#log4j.logger.net.sf.hibernate.cache=debug

Console output…

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

log4j.appender.file=org.apache.log4j.FileAppender

log4j.appender.file.File=…/logs/iask.log

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n

(7)编写controller
1)修改一下配置文件

在这里插入图片描述

war

2)创建对应的目录和web.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns=“http://java.sun.com/xml/ns/javaee”

xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”

version=“2.5”>

contextConfigLocation

classpath*:spring/applicationContext*.xml

org.springframework.web.context.ContextLoaderListener

springmvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring/springmvc.xml

springmvc

*.do

设置一下依赖

dubbo-web 依赖dubbo-service

在这里插入图片描述

org.example

dubbo-service

1.0-SNAPSHOT

3)创建SpringMVC相关配置文件
  • springmvc.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://dubbo.apache.org/schema/dubbo”

xmlns:mvc=“http://www.springframework.org/schema/mvc”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd

http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

mvc:annotation-driven/

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

  • log4j.properties

在这里插入图片描述

DEBUG < INFO < WARN < ERROR < FATAL

Global logging configuration

log4j.rootLogger=info, stdout,file

My logging configuration…

#log4j.logger.com.tocersoft.school=DEBUG

#log4j.logger.net.sf.hibernate.cache=debug

Console output…

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

log4j.appender.file=org.apache.log4j.FileAppender

log4j.appender.file.File=…/logs/iask.log

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n

4)实现controller

在这里插入图片描述

在这里插入图片描述

@RestController

@RequestMapping(“/user”)

public class UserController {

//注入Service

@Autowired

private UserService service;

@RequestMapping(“/sayHello”)

public String sayHello(){

return service.sayHello();

}

}

(8)运行测试

安装service

在这里插入图片描述

在这里插入图片描述

安装web

在这里插入图片描述

在这里插入图片描述

双击运行

在这里插入图片描述

运行成功

在这里插入图片描述

访问测试

http://localhost:8000/user/sayHello.do

在这里插入图片描述

4、通过dubbo实现远程调用(服务提供者的创建)

(1)原理

在这里插入图片描述

(2)实现Service模块单独启动
  • 引入依赖

在这之前我们已经引入过了依赖

在这里插入图片描述

将service改造成为war的项目

在这里插入图片描述

war

引入Tomcat的插件

在这里插入图片描述

org.apache.tomcat.maven

tomcat7-maven-plugin

2.1

9000

/

  • 修改代码

dubbo-service当中的UserServiceImpl

在这里插入图片描述

注意这里的@Service注解是Dubbo

package com.itbluebox.service.impl;

import com.itbluebox.service.UserService;

最后

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

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

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

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

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

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

tomcat7-maven-plugin

2.1

9000

/

  • 修改代码

dubbo-service当中的UserServiceImpl

在这里插入图片描述

注意这里的@Service注解是Dubbo

package com.itbluebox.service.impl;

import com.itbluebox.service.UserService;

最后

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

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

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

[外链图片转存中…(img-5CLdM6RK-1714816408704)]

[外链图片转存中…(img-usZUopYC-1714816408704)]

[外链图片转存中…(img-aLnsqLBT-1714816408704)]

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值