专栏首页IT笔记SpringBoot开发案例之Nacos注册中心管理

SpringBoot开发案例之Nacos注册中心管理

前言

在之前的 Dubbo 服务开发中,我们一般使用 Zookeeper 作为注册中心,同时还需要部署 Dubbo 监控中心和管理后台。

Nacos 注册中心

Nacos 是阿里巴巴的开源的项目,全称 Naming Configuration Service ,专注于服务发现和配置管理领域。

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 生态图

如 Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如

Spring Cloud Apache Dubbo and Dubbo Mesh TODO Kubernetes and CNCF TODO。 使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。

Nacos Spring Boot 快速开始

<!-- Dubbo Nacos registry dependency -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo-registry-nacos</artifactId>
    <version>2.6.7</version>
</dependency>
<!-- Dubbo dependency -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.6.5</version>
</dependency>
<!-- Alibaba Spring Context extension -->
<dependency>
    <groupId>com.alibaba.spring</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>1.0.2</version>
</dependency>
<!--Dubbo 依赖-->
<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.32.Final</version>
</dependency>

配置文件:

## application
dubbo.application.name = spring-boot-pay
dubbo.registry.address = nacos://47.104.197.9:8848
dubbo.protocol.name=dubbo
dubbo.protocol.port=-1

启动类引入 Dubbo 注解:

@EnableDubbo
@SpringBootApplication
public class Application {

    private static final Logger logger = LoggerFactory.getLogger(AliPayServiceImpl.class);

    public static void main(String[] args){
        SpringApplication.run(Application.class, args);
        logger.info("启动成功");
    }
}

接口实现:

//省略部分代码
import com.alibaba.dubbo.config.annotation.Service;
@Service(group = "itstyle-nacos", retries = 1, timeout = 10000)
public class AliPayServiceImpl implements IAliPayService {

}

打包接口:

<!-- 打包接口 https://blog.52itstyle.vip -->
       <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <id>service</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <classesDirectory>${project.build.directory}/classes</classesDirectory>
                            <finalName>pay-service</finalName>
                            <outputDirectory>${project.build.directory}</outputDirectory>
                            <includes>
                                <include>com/itstyle/modules/alipay/service/*.*</include>
                                <include>com/itstyle/modules/unionpay/service/*.*</include>
                                <include>com/itstyle/modules/weixinpay/service/*.*</include>
                                <include>com/itstyle/common/model/*.*</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
        </plugin>

服务引用:

/**
 * 支付宝支付
 * 创建者 爪哇笔记 https://blog.52itstyle.vip
 * 创建时间    2019年7月20日
 */
@Controller
@RequestMapping(value = "alipay")
public class AliPayController {
    @Reference
    private IAliPayService aliPayService;
    
}

启动项目,登录到管理控制中心,如果发现有数据,说明注册成功。

小结

一个 Nacos 就轻松搞定了,还捎带着配置管理中心,一举两得,何乐不为。

参考案例

https://gitee.com/52itstyle/spring-boot-pay/tree/spring-boot-nacos-pay

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringBoot 2.0 开发案例之百倍级减肥瘦身之旅

    为了存我的小黄图,最近在做一款图床服务,集成了各种第三方云存储服务,目前正在内部测试阶段。项目是以Jar的形式运行在腾讯云上,不要问我为什么使用腾讯云了,因为阿...

    小柒2012
  • Maven初探-如何快速入手一个项目

    这已是一个工具的时代,而不是一个到处搜集JAR的年代,如果还在为搭建一个项目而到处找依赖,那你就彻底OUT了。下面,跟各位一起重温学习下Maven。 什么是Ma...

    小柒2012
  • SpringBoot开发案例之整合Dubbo提供者(一)

    既然是开发案例,显然不会扯那么多老婆舌,有不清楚这两个东东的请自行百度。 ? 0.jpg 开发环境 JDK1.7、Maven、Eclipse、SpringBoo...

    小柒2012
  • 微服务中使用Maven BOM来管理你的服务版本

    BOM(Bill of Materials) 是由Maven提供的功能,它通过定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心的使用...

    JAVA日知录
  • CVE-2019-12384漏洞分析及复现

    近期关于Jackson的RCE漏洞CVE-2019-12384爆出,漏洞的复现以及依赖,这里已经给出,我这里就使用虚拟机里的java的环境重新复现了一下...

    洛米唯熊
  • 基于Spring Mvc实现的Excel文件上传下载

    最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库。因此为了更好的理解公司框架,我就自己先用spring mvc实现了一个样例。 基...

    用户1154259
  • SSM项目搭建之xfire 原

    XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单...

    尚浩宇
  • 商城项目-搭建购物车服务

    cwl_java
  • java.lang.NoClassDefFoundError: javax/el/ELManager

    朱季谦
  • Retrofit进行post提交json数据

    引入retrofit相关依赖 <dependency> <groupId>com.squareup.retrofit2</groupId> <artifa...

    24-丰总

扫码关注云+社区

领取腾讯云代金券