Dubbo---简单上手使用

1 篇文章 0 订阅

分布式系统??

 

若干独立计算机的集合,,,

 

架构演进--

orm  mvc  rpc  soa

单一架构:扩展困难,协同开发困难

mvc:垂直架构----页面和应用    应用之间交互的问题

分布式: 多个web,多个应用  ,远程过程调用rpc---问题解决

 

RPC ?

远程过程调用

原理:

A client-------------------------------------B server    

A 与 B 先建立连接   序列化 参数   再调用B的接口  B处理之后返回  反序列化

 

 

Dubbo

特性

面向接口:

负载均衡:资源最大化利用

服务注册中心:管理服务

高可扩展

流量调度,灰度发布:先局部更新,逐步全局

可视化服务治理与运维治理:

 

Zookeeper注册中心:

下载https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/

解压之后可以在windows下使用。

 

 

 

monitor

图形化界面管理服务。

从github下载源码,是spring boot项目,可以打包直接使用:

git clone https://github.com/apache/incubator-dubbo-ops

 

mvn package

E:\Java\MyGitHub\personalCode\dubbo-admin\dubbo-admin-master\dubbo-admin\target\dubbo-admin-0.0.1-SNAPSHOT.jar

application.properties  看到服务端端口号是7001    运行jar包就可以访问。

 

提供者服务注册:

导入dubbo

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>
 zookeeper
  <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.14</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

<!--        zookeeper客户端-->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

 

提供服务:

service编写并通过注解自动注册服务:

@Service  ----import org.apache.dubbo.config.annotation.Service;

package com.wang.service;


import com.wang.pojo.Ticket;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

@Component
@Service
public class TicketServiceImpl implements TicketService {
    @Override
    public String  buyTickets() {
        return "西游记";
    }
}

dubbo配置

server.port = 8001
#应用名称
dubbo.application.name=TicketProvider
#扫描范围配置
dubbo.scan.base-packages=com.wang.service  
#服务远程注册地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

启动应用之后注册成功

 

 消费者使用服务

 

pom.xml  和提供者相同

 

配置

server.port= 8002


dubbo.application.name=Dubbo-consumer
dubbo.scan.base-packages=com.wang.service
dubbo.registry.address=zookeeper://127.0.0.1:2181

调用远程服务

package com.wang.service;

import org.apache.catalina.User;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;

//spring容器
@Service
public class UserServiceImpl implements UserService {

    //消费者使用远程的服务
    @Reference
    //定义了一个服务端相同路径的接口,以调用
    private TicketService ticketService;
    @Override
    public void butTickets() {
        System.out.println(ticketService.buyTickets().toString());
    }
}

调用成功:获得远程服务返回的对象。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值