nacos+springboot+dubbo微服务整合

1,安装nacos

从 Github 上下载源码方式

git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin

下载编译后压缩包方式
下载地址:https://github.com/alibaba/nacos/releases

  unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
  cd nacos/bin

启动服务器
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

Windows
启动命令:

cmd startup.cmd

或者双击startup.cmd运行文件。

nacos控制台界面
http://ip:port/nacos/index.html
默认用户名:nacos
默认密码:nacos
在这里插入图片描述

2,项目框架结构

在这里插入图片描述

  • api:接口部分,对外提供接口使用
  • provider:服务的提供者
  • consumer:服务的消费者

3,springboot整合dubbo

1,父工程pom

<?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>person.david</groupId>
    <artifactId>springboot-nacos-dubbo</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>
    <modules>
        <module>provider</module>
        <module>consumer</module>
        <module>api</module>
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-parent</artifactId>
        <version>2.2.2.RELEASE</version>
    </parent>

</project>

2,api模块
TestApi.class

/**
 * @author David
 * @className TestApi
 * @date 2020/4/7 16:47
 */
public interface TestApi {

    String sayHello(String name);
}

3,provider提供者模块

SayHelloProvider.class

import org.apache.dubbo.config.annotation.Service;
import person.david.api.TestApi;

/**
 * @author Administrator
 * @create 2020/4/7
 * @since 1.0.0
 */
@Service
public class SayHelloProvider implements TestApi {

    @Override
    public String sayHello(String name) {
        return "收到提供者返回的消息========>Hello,"+name;
    }
}


ProviderStart.class

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author Administrator
 * @create 2020/4/7
 * @since 1.0.0
 */
@SpringBootApplication
public class ProviderStart {

    public static void main(String[] args) {
        SpringApplication.run(ProviderStart.class, args);
    }
}

application.yml

spring:
  application:
    name: nacos-provider
dubbo:
  scan:
    base-packages: person.david.provider
  protocol:
    name: dubbo
    port: 12345
  registry:
    address: nacos://120.75.70.231:8848
server:
  port: 10000

4,consumer消费者模块
SayHelloController.class

import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import person.david.api.TestApi;

/**
 * @author Administrator
 * @create 2020/4/7
 * @since 1.0.0
 */
@RestController
@RequestMapping("/nacos")
public class SayHelloController {

    @Reference
    private TestApi testApi;

    @RequestMapping("/sayHello")
    public String SayHello(){

        return testApi.sayHello("nacos");
    }
}

ConsumerStart.class

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author Administrator
 * @create 2020/4/7
 * @since 1.0.0
 */
@SpringBootApplication
public class ConsumerStart {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerStart.class, args);
    }
}

application.yml

spring:
  application:
    name: nacos-consumer
dubbo:
  registry:
    address: nacos://120.75.70.231:8848
    username: nacos
    password: nacos
server:
  port: 10001

4,启动提供者,消费者服务

在这里插入图片描述

5,测试

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39513430/article/details/105370169