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
还没有评论,来说两句吧...