集成 dubbo 微服务

微服务架构近年来非常的火,阿里 的dubbo 是其中的一种解决方案。

dubbo 的微服务主要分为以下几部分:

1.注册中心

2.服务提供者

3.消费者

4.监控平台

1.一般流程服务提供者向注册中心注册服务。

2.客户端向注册中心请求服务。

3.注册中心通知客户端访问提供者。

4.监控负责服务是否可用。

1.注册中心的安装

就是安装zookeeper ,为了测试我们可以简单的安装一台就好,也可以安装多台做集群。

将conf 目录下的 zoo_sample.cfg 改名成为 zoo.cfg 编辑上面两项 就好了。

2.实现微服务的provider 。

实现 服务接口

public interface DemoService {
String sayHello(String name);
}

写个简单的实现

public class DemoServiceImpl implements DemoService {

@Override
public String sayHello(String name) {

return "hello:" + name;
}

}

然后做spring配置。

配置文件如下

<?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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd        http://dubbo.apache.org/schema/dubbo        http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="hello-world-app"  />

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://192.168.31.77:2181" />

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="2088" />

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="demo.DemoService" ref="demoService" />

    <!-- 和本地bean一样实现服务 -->
    <bean id="demoService" class="demo.impl.DemoServiceImpl" />
</beans>

这样provider就玩成了。

需要再平台中引入相关的jar包。

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>

3.安装dubbo WEB 管理

包下载地址 https://github.com/apache/incubator-dubbo-ops/

将项目导入 eclipse

执行 mvn clean package 需要注意的是可能会报错

再pom.xml 中增加

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerId>eclipse</compilerId>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-compiler-eclipse</artifactId>
                        <version>2.2</version>
                    </dependency>
                </dependencies>
            </plugin>

修改配置文件

执行 java -jar dubbo-admin-0.0.1-SNAPSHOT.jar 这样 dubbo 管理控制台就可以运行了。

4.开发客户端

增加配置文件

<?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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd        http://dubbo.apache.org/schema/dubbo        http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="consumer-of-helloworld-app"  />

    <!-- 使用multicast广播注册中心暴露发现服务地址 -->
    <dubbo:registry address="zookeeper://192.168.31.77:2181" />

    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="demoServiceClient" interface="demo.DemoService" />
</beans>

开发java代码如下

public class DubboComsumerTest extends SimpleBaseTestCase{
    @Resource
    DemoService demoService;

    @Test
    public void hello(){
        String rtn=demoService.sayHello("ray");
        System.out.println(rtn);
    }
}
@RunWith(JUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring-test.xml"})
public class SimpleBaseTestCase {

}

  这样执行单元测试就可以看到效果了。

原文地址:https://www.cnblogs.com/yg_zhang/p/9347428.html

时间: 2024-10-08 05:05:29

集成 dubbo 微服务的相关文章

ZooKeeper分布式专题与Dubbo微服务入门

第1章 分布式系统概念与ZooKeeper简介对分布式系统以及ZooKeeper进行简介,使得大家对其有大致的了解1-1 zookeeper简介1-2 什么是分布式系统1-3 分布式系统的瓶颈以及zk的相关特性 第2章 ZooKeeper安装如何安装ZooKeeper以及对ZooKeeper最基本的数据模型进行剖析2-1 JDK的安装2-2 zookeeper下载.安装以及配置环境变量2-3 zookeeper文件夹主要目录介绍2-4 zookeeper配置文件介绍,运行zk 第3章 ZooKe

Dubbo 微服务系列(03)服务注册

Dubbo 微服务系列(03)服务注册 [TOC] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 图1 Dubbo经典架构图 注:本图来源 Dubbo官方架构图 表1 节点角色说明 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器 在 Dubbo 微服务体系中,注册中心是其

微服务集成——《微服务设计》读书笔记

一.理想的集成应该是什么样的? 1.避免破坏性修改 如果在一个微服务的响应中添加一个字段,服务的消费方不应该受到影响. 2.保证API的技术无关性 微服务之间的通信应该是与技术无关的. 3.使服务的消费方易于使用 如果消费方使用该服务比登天还难,那么无论该微服务多漂亮都没用任何意义.但同时,易于使用的服务可能内部封装了很多细节,这会增加耦合. 4.隐藏内部实现细节 消费方与服务方的内部细节应该是分开的,如果与细节绑定,则意味着改变服务内部的一些变化,消费方也要跟着修改,这会增加修改的成本. 二.

开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试

简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能达到对项目质量的保证. 本次环境搭建分为基础环境准备.Dubbo环境搭建.精准测试环境搭建.精准测试与Dubbo环境对接等一整套完整的配置过程,用户可以通过下图中的流程图确认自己所部署过程中进行到的阶段点,从而排查部署中可能遇见的问题. 一 dubbo的工具配置流程 1,使用工具 1, Eclipse Java Photon2, JD

【星云测试】开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试

简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能达到对项目质量的保证. 本次环境搭建分为基础环境准备.Dubbo环境搭建.精准测试环境搭建.精准测试与Dubbo环境对接等一整套完整的配置过程,用户可以通过下图中的流程图确认自己所部署过程中进行到的阶段点,从而排查部署中可能遇见的问题. 一 dubbo的工具配置流程 1,使用工具 1, Eclipse Java Photon2, JD

大厂必会考题:Dubbo+微服务+ZooKeeper+kafka+Linux等(附答案)

24道常见Elasticsearch 面试题(截取部分) 1.客户端在和集群连接时,如何选择特定的节点执行请求的? 2.详细描述一下 Elasticsearch 索引文档的过程. 3.详细描述一下 Elasticsearch 更新和删除文档的过程. 4.详细描述一下 Elasticsearch 搜索的过程. 5.在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的? 6.Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法? 7.对于 GC 方面,在使用

Dubbo 微服务

(一)分布式的优点 1 解决高并发 2 容易定位bug 3 Cart模块部署多份,order只部署一份 4 单独发布 (二)实现分布式有两种实现方法 第一种 : 用httpClient 第二种 : 用dubbo (三) 引入 Zookeeper 3.1 自己把它记为动物园拥有者, 下面来用图解释引入的它的作用 ZooKeeper其实也可以管理tomcat集群和redis集群.但是tomcat用nginx比较合适,redis 用mycat更为合适. 3.2 一张图 ZooKeeper 与 ngin

基于 Docker 的微服务架构实践

本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 DevOps,也见证了 Docker 的技术体系的快速发展.本文主要是结合在公司搭建的微服务架构的实践过程,做一个简单的总结.希望给在创业初期探索如何布局服务架构体系的 DevOps,或者想初步了解企业级架构的同学们一些参考. Microservice 和 Docker 对于创业公司的技术布局,很多声

Java微服务新生代之Nacos

前言 从 2017 年底 Java 开发领域使用最广的 RPC 框架 Dubbo 开启重新更新维护之路开始,阿里巴巴为打造 Dubbo 微服务生态持续开源了 Sentinel,Nacos,Seata 等微服务中间件框架,并且推出了 Spring Cloud Alibaba 来提供微服务开发的一站式解决方案,阿里巴巴在 Java 社区持续活跃起来,也为 Java 微服务开发注入了新的活力. 本篇文章将重点学习微服务组件 Nacos 作为注册中心的功能和用法,Nacos 是阿里巴巴于 2018 年