搭建项目学习框架(二,安装Dubbo监控中心,maven的安装一配置创建服务提供者)

Posted 韶光不负

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建项目学习框架(二,安装Dubbo监控中心,maven的安装一配置创建服务提供者)相关的知识,希望对你有一定的参考价值。

根据项目的进度,继续向下学习搭建服务Dubbo与在IDEA下创建服务提供者与消费者。

目录

安装maven镜像加速度器

配置镜像加速器:

配置镜像源:

 配置maven的本地仓库(当我们拿到别人的包的时候,可能爆红,就应该是maven安装有问题):

搭建监控Dubbo监控中心(作用:查看注册中心(ZooKeeper)上,是否有服务启动)

安装Dubbo监控中心:

1,先上传dubbo包到Tomcat下webapps文件夹,

2,刷新,使用xshll软件刷新自动解压war包(Tomcat必须是启动这的)

3,进入webapps,删除ROOT文件,更改监控中心解压包为ROOT文件(重新启动tomcat)

maven创建服务提供者

创建maven过程:

 maven目录结构: 

配置maven依赖(核心配置)

 spring架构图(spring的生态):

spring二大特征:

maven的四个主要核心依赖:

配置dubbo监控中心的tomcat依赖与Tomcat的插件

创建服务提供者(:返回服务问候人名称,舔狗接口就行调用)

创建服务消费者(与服务提供者有相似之处)

现象:

springmvc的执行流程图(服务消费者向服务提供者进行服务的过程,面试爱问!!!)


安装maven镜像加速度器

        maven的安装地址:Maven Repository: maven (mvnrepository.com)

配置镜像加速器:

首先先解压maven的压缩包,打开包——>找到conf文件夹——>打开setting.xml文件

找到配置行<172行左右>

配置镜像源:

//华为源
<mirror>
    <id>huaweicloud</id>
    <mirrorOf>*</mirrorOf>
    <url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>

//阿里源
<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror> 

 配置maven的本地仓库(当我们拿到别人的包的时候,可能爆红,就应该是maven安装有问题):

打开IDEA,打开file——>打开setting——>打开Bulid....——打开bulid Tools——>打开maven——>配置安装路径

搭建监控Dubbo监控中心(作用:查看注册中心(ZooKeeper)上,是否有服务启动)

搭建项目学习框架(一,Linux下Java的安装,安装Tomcat与搭建Zookeeper)_韶光不负的博客-CSDN博客

安装Dubbo监控中心:

1,先上传dubbo包到Tomcat下webapps文件夹,

2,刷新,使用xshll软件刷新自动解压war包(Tomcat必须是启动这的)

Tomcat端口访问:当我们访问8080端口时其实访问的是Tomcat\\webapps\\ROOT\\index.jsp页面。

3,进入webapps,删除ROOT文件,更改监控中心解压包为ROOT文件(重新启动tomcat)

测试现象(注册账号与密码默认都是root

maven创建服务提供者

创建maven过程:

 file——New——Project——Maven—— 选择名称与位置

 maven目录结构: 

配置maven依赖(核心配置)

     <!-- 打包方式 打包为web包。web文件就行标注-->
    <packaging>war</packaging>

     <!-- 打包方式 打为jar包-->
    <packaging>jar</packaging>

 spring架构图(spring的生态):

spring二大特征:

IOC :控制翻转

        在Java中对象我们一般这样使用(Test test = new Test();),在spring中对象的创建由spring的容器自动创建,当我们需要spring会自动注入(依赖注入:DI),注解@AutoWire  作用:自动注入spring创建的对象

AOP :面向切面编程

         为项目扩展提供一种方式;因为系统不能满足需求,就行系统升级(在1.0系统上开发)。不修改原有的代码,添加新代码,新代码在原代码上执行(这个叫切面),在原方法上运行叫切入点。在切入点的执行叫增强处理,(切入点前面增强叫前置增强,后面叫后置增强,前后都执行叫环绕增强, 最终增强是代码不管出不出错都会执行)

maven的四个主要核心依赖:

<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>untitled</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 打包方式 -->
    <packaging>war</packaging>


    <!--配置框架版本spring-->
    <properties>
        <spring.version>4.3.10.RELEASE</spring.version>
    </properties>


<!--    导人spring的依赖-->
    <dependencies>
        <dependency>
<!--            spring的组件的依赖-->
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>$spring.version</version>
<!--     使用变量 <spring.version>4.3.10.RELEASE</spring.version> 相当于   4.3.10.RELEASE  -->
        </dependency>

        <dependency>
<!--            spring的核心依赖-->
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>$spring.version</version>
        </dependency>

        <dependency>
        <!-- spring上下文的依赖           -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>$spring.version</version>
        </dependency>

        <dependency>
        <!-- spring的web编程的包           -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>$spring.version</version>
        </dependency>

    </dependencies>




</project>

配置dubbo监控中心的tomcat依赖与Tomcat的插件



<dependencies>
<!--  安装dubbo依赖     -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.4</version>
        </dependency>

<!--        zookeeper 根据安装来选择版本-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
        </dependency>

<!--        导让监控依赖包-->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.0.1</version>
        </dependency>


    </dependencies>
    <!--        导入插件 : 方便直接启动项目-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>

        </plugins>
    </build>

tomcat的插件增加

 <!--        导入插件 : 方便直接启动项目-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
<!--                加强tomcat的配置-->
                <configuration>
<!--                    配置目录-->
                    <path>/</path>
<!--                    配置端口-->
                    <port>8080</port>
                </configuration>
            </plugin>

        </plugins>
    </build>

显示现象(显示爆红:1,依赖写错了  2,本地仓库没有出现问题):

创建服务提供者(:返回服务问候人名称,舔狗接口就行调用)

pom.xml:

<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>untitled</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 打包方式 -->
    <packaging>war</packaging>


    <!--配置框架版本spring-->
    <properties>
        <spring.version>4.3.10.RELEASE</spring.version>
    </properties>


<!--    导人spring的依赖-->
    <dependencies>
        <dependency>
<!--            spring的组件的依赖-->
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>$spring.version</version>
<!--     使用变量 <spring.version>4.3.10.RELEASE</spring.version> 相当于   4.3.10.RELEASE  -->
        </dependency>

        <dependency>
<!--            spring的核心依赖-->
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>$spring.version</version>
        </dependency>

        <dependency>
        <!-- spring上下文的依赖           -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>$spring.version</version>
        </dependency>

        <dependency>
        <!-- spring的web编程的包           -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>$spring.version</version>
        </dependency>

<!--  安装dubbo依赖     -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.4</version>
        </dependency>

<!--        zookeeper 根据安装来选择版本-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
        </dependency>

<!--        导让监控依赖包-->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.0.1</version>
        </dependency>


    </dependencies>
    <!--        导入插件 : 方便直接启动项目-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
<!--                加强tomcat的配置-->
                <configuration>
<!--                    配置目录-->
                    <path>/</path>
<!--                    配置端口-->
                    <port>8080</port>
                </configuration>
            </plugin>
        </plugins>
    </build>





</project>

applicationContext-service.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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"
       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://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--    配置dubbo应用名称-->
    <dubbo:application name ="untitled"></dubbo:application>

<!--    配置服务注册地址-->
    <dubbo:registry address="zookeeper://192.168.188.133:2181"></dubbo:registry>

<!--    配置服务所在的包-->
    <dubbo:annotation package="com.openlab.service"></dubbo:annotation>


</beans>

web.xml(必须放在WEB/INF文件夹下,防止报错)

<?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">

<!--    配置Spring的配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext-service.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextCleanupListener</listener-class>
    </listener>
</web-app>

接口

package com.openlab.service;

public interface UserService 
    public String getName();

实现类

package com.openlab.service.Impl.UserService.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.openlab.service.UserService;

@Service  //@Service 注解 标记这个类为服务类,发表到监控中心
//导的是这个包  :import com.alibaba.dubbo.config.annotation.Service;
public class UserServiceimpl implements UserService 
    public String getName() 
        return "小_罗";
    

现象(服务的提供者就上去了,红色表示日志,8080端口显示表示启动成功):

创建服务消费者(与服务提供者有相似之处)

结构图:

pom.xml配置

<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.openlab</groupId>
    <artifactId>Dubbo_consumer0319</artifactId>
    <version>1.0</version>

    <!--打包打成war包-->
    <packaging>war</packaging>
    <!--配置框架的版本-->
    <properties>
        <spring.version>4.3.10.RELEASE</spring.version>
    </properties>

    <!--导入spring的依赖-->
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>$spring.version</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>$spring.version</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>$spring.version</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>$spring.version</version>
        </dependency>

        <!--配置Dubbo的依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.4</version>
        </dependency>

        <!--配置zookeeper的注册中心依赖-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
        </dependency>

        <!--导入监控依赖的包-->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.0.1</version>
        </dependency>
    </dependencies>

    <!--导入Maven的tomcat插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <path>/</path>
                <!-- 给服务消费者提供端口                   -->
                    <port>9091</port>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

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">
    
<!--加载Spring的配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext-service.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--配置前端请求的前端控制器-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
    </servlet>

    <!-- springmvc的映射   -->
    
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

接口的实现类:

package com.openlab.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.openlab.service.UserService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

//@Controller
@RestController
@RequestMapping("/user")
public class UserController 

    @Reference
    private UserService userService;


    @RequestMapping("/getName")
    //@ResponseBody
    public String getName()
        return "欢迎"+userService.getName()+"学习框架微服务开发....";
    

现象:

日志启动

测试

查看Doubbo监控记录

springmvc的执行流程图(服务消费者向服务提供者进行服务的过程,面试爱问!!!)

 

创作挑战赛 新人创作奖励来咯,坚持创作打卡瓜分现金大奖

以上是关于搭建项目学习框架(二,安装Dubbo监控中心,maven的安装一配置创建服务提供者)的主要内容,如果未能解决你的问题,请参考以下文章

Dubbo篇--Dubbo框架的使用

dubbo在项目有啥作用

分布式架构--Dubbo项目实战学习文档

dubbo学习dubbo监控中心

Dubbo-搭建微服务(注解版本)

dubbo开发环境搭建与tomcat集成DEMO示例(最完整版本带管理控制台监控中心zookeeper)