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

总结

互联网大厂比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。无论是哪家公司,都很重视高并发高可用技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。

**另外本人还整理收藏了2021年多家公司面试知识点以及各种技术点整理 **

下面有部分截图希望能对大家有所帮助。

在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

1、Dubbo概念

  • 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

技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

在这里插入图片描述

在这里插入图片描述

@RestController

@RequestMapping(“/user”)

public class UserController {

//注入Service

技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

[外链图片转存中…(img-vMxLeiIh-1715292857413)]

[外链图片转存中…(img-reTLkeio-1715292857414)]

[外链图片转存中…(img-rx3ouvE5-1715292857414)]

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

[外链图片转存中…(img-eM1oiKmg-1715292857414)]

[外链图片转存中…(img-ZqjbEBa9-1715292857415)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值