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,測試

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章