Dubbo

今日内容

  1. 私服(了解)
  2. dubbo
    1. zookeeper安装
    2. 入门案例
    3. 高级内容

1,私服

1.1 私服启动

nexus /run nexus

1.2 仓库分类

宿主仓库 : 我们自己开发的资源、第三方非开源

代理仓库 : 和中央仓库中的一样

仓库组 : 管理

1.3 仓库操作

  • 创建

在这里插入图片描述

在这里插入图片描述

  • 将我们创建的仓库放在仓库组中

在这里插入图片描述

  • 上传组件(jar包)

在这里插入图片描述

1.4 本地仓库访问私服的配置

在settings.xml配置文件中找servers标签,在标签的内部添加如下内容:

<server>
    <id>heima-release</id>
    <username>admin</username>
    <password>admin</password>
</server>
<server>
    <id>heima-snapshots</id>
    <username>admin</username>
    <password>admin</password>
</server>

在settings.xml配置文件中找mirrors标签,在标签的内部添加如下内容:

<mirror>
    <id>nexus-heima</id>
    <mirrorOf>*</mirrorOf>
    <url>http://localhost:8081/repository/maven-public/</url>
</mirror>

1.5 在idea中的项目的pom.xml文件

<distributionManagement>
  <repository>
    <id>heima-release</id>
    <url>http://localhost:8081/repository/heima-release/</url>
  </repository>
  <snapshotRepository>
    <id>heima-snapshots</id>
    <url>http://localhost:8081/repository/heima-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

2,dubbo(重点掌握)

2.1 概述

apache高效轻量级rpc的框架。

2.2 架构

在这里插入图片描述

dubbo要想正常运行,必须保证 服务提供者、服务消费者、注册中心。
服务提供者和服务消费者的代码有我们开发。

2.3 入门案例

2.3.1 服务提供者

service工程就是服务提供者工程。该工程为web工程。

  • 引入dubbo的坐标

     <!--Dubbo的起步依赖,版本2.7之后统一为rg.apache.dubb -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.7.4.1</version>
            </dependency>
            <!--ZooKeeper客户端实现 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>4.0.0</version>
            </dependency>
            <!--ZooKeeper客户端实现 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>4.0.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.9</version>
            </dependency>
    
  • 配置

    在spring的配置文件中进行配置(applicationContext.xml)

    <!--dubbo的配置-->
    	<!--1.配置项目的名称,唯一-->
    	<dubbo:application name="dubbo-service"/>
    	<!--2.配置注册中心的地址-->
    	<!--<dubbo:registry address="zookeeper://192.168.149.135:2181"/>-->
    	<dubbo:registry address="zookeeper://localhost:2181"/>
    	<!--3.配置dubbo包扫描-->
    	<dubbo:annotation package="com.itheima.service.impl" />
    
  • 在web.xml配置文件中进行配置

    <!-- spring -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:spring/applicationContext*.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    
  • 在service类上添加@Service注解

    @Service注解是dubbo提供的

    @Service//将这个类提供的方法(服务)对外发布。将访问的地址 ip,端口,路径注册到注册中心中
    public class UserServiceImpl implements UserService {
    
        public String sayHello() {
            return "hello dubbo hello!~";
        }
    }
    

2.3.2 服务消费方

  • 引入jar包的坐标

    <!--Dubbo的起步依赖,版本2.7之后统一为rg.apache.dubb -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.7.4.1</version>
            </dependency>
            <!--ZooKeeper客户端实现 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>4.0.0</version>
            </dependency>
            <!--ZooKeeper客户端实现 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>4.0.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.9</version>
            </dependency>
    
  • springmvc的配置文件

    <!--dubbo的配置-->
        <!--1.配置项目的名称,唯一-->
        <dubbo:application name="dubbo-web" >
            <dubbo:parameter key="qos.port" value="33333"/>
        </dubbo:application>
        <!--2.配置注册中心的地址-->
    <!--    <dubbo:registry address="zookeeper://192.168.149.135:2181"/>-->
    
        <dubbo:registry address="zookeeper://localhost:2181"/>
        <!--3.配置dubbo包扫描-->
        <dubbo:annotation package="com.itheima.controller" />
    
  • 依赖注入

    @RestController
    @RequestMapping("/user")
    public class UserController {
    
        //注入Service
        //@Autowired//本地注入
    
        /*
            1. 从zookeeper注册中心获取userService的访问url
            2. 进行远程调用RPC
            3. 将结果封装为一个代理对象。给变量赋值
    
         */
    
        @Reference//远程注入
        private UserService userService;
    
    
        @RequestMapping("/sayHello")
        public String sayHello(){
            return userService.sayHello();
        }
    }
    

注意:

将service接口提取成一个新的模块。service工程依赖该模块,controller工程依赖该模块。

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页