Spring boot 应用引入 Spring cloud alibaba nacos

news/2024/9/23 20:14:12/

Spring boot 应用引入 Spring cloud alibaba nacos

  • 1. 引入pom依赖
  • 2. 配置文件(bootstrap.yml)
  • 3. 配置中心配置建议
  • 4. 注册中心
    • 4.1 服务注册
    • 4.2 服务发现

1. 引入pom依赖

要在Spring Boot应用中引入Spring Cloud Alibaba的依赖以及Nacos的依赖,您可以按照以下步骤在pom.xml文件中添加相应的依赖:

首先,在pom.xml文件中添加Spring Cloud Alibaba BOM(Bill of Materials)依赖管理,这将统一管理Spring Cloud Alibaba的依赖版本:

<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.3.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

然后,在dependencies部分中,添加Spring Cloud Alibaba的具体依赖,以及Nacos的依赖:

<dependencies><!-- Spring Cloud Alibaba Nacos Discovery --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- Spring Cloud Alibaba Nacos Config --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- 其他Spring Cloud Alibaba的依赖 -->
</dependencies>

通过这些步骤,您的Spring Boot应用就可以成功引入Spring Cloud Alibaba的依赖,并且使用Nacos作为服务发现和配置中心。记得执行mvn clean install来下载依赖并构建项目。

2. 配置文件(bootstrap.yml)

配置文件配置nacos集群地址,注册中心和配置中心相关配置

server:port: 8001spring:profiles:active: devapplication:#项目名称必填,在注册中心唯一#最好和之前域名规范、kubernetes service名等保持一致(会作为调用)name: appcloud:nacos:config:file-extension: yamlnamespace: app-${spring.profiles.active}group: app-groupshared-configs:- data-id: app-common.yamlgroup: app-grouprefresh: truediscovery:namespace: app-${spring.profiles.active}server-addr: your-nacos-cluster-server-ip1:8848,your-nacos-cluster-server-ip2:8848,your-nacos-cluster-server-ip3:8848

3. 配置中心配置建议

  • 命名空间:用于设置项目
  • Group: 用于设置应用
  • Data ID: 具体配置,可以按profile设置不同的文件

4. 注册中心

4.1 服务注册

启用Nacos服务注册:在Spring Boot应用程序的启动类上添加@EnableDiscoveryClient注解,以启用Nacos服务注册功能。

java">@SpringBootApplication
@EnableDiscoveryClient
public class YourApplication {public static void main(String[] args) {SpringApplication.run(YourApplication.class, args);}
}

运行你的应用程序,它将会自动注册到Nacos注册中心。
如果使用tomcat方式启动应用,应用无法自动注册到nacos,可参考Spring Boot 构建war 部署到tomcat下无法在Nacos中注册服务解决。

4.2 服务发现

使用OpenFeign调用服务可以简化REST API的调用过程。以下是使用OpenFeign调用服务的基本步骤:

  1. 添加依赖:确保在项目中添加OpenFeign的依赖。在Maven项目中,可以添加如下依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
  1. 创建Feign客户端接口:定义一个接口,用于声明需要调用的远程服务的方法。
java">import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;@FeignClient(name = "service-name") // 指定要调用的服务名称
public interface MyFeignClient {@GetMapping("/endpoint") // 定义需要调用的接口路径String getEndpointData();
}
  1. 注入Feign客户端接口:在需要调用服务的类中注入Feign客户端接口。
java">import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class MyService {@Autowiredprivate MyFeignClient feignClient;public String fetchDataFromService() {return feignClient.getEndpointData();}
}
  1. 调用远程服务:在需要调用远程服务的地方使用注入的Feign客户端接口来调用服务。
java">String data = myService.fetchDataFromService();

通过上述步骤,你可以使用OpenFeign轻松地调用远程服务。OpenFeign会处理负载均衡、服务发现等工作,使得远程服务调用变得更加简单和方便。


http://www.ppmy.cn/news/1446361.html

相关文章

小程序地理位置权限如何申请?

这篇内容会教大家如何快速申请“获取当前的地理位置&#xff08;onLocationChange&#xff09;”接口&#xff0c;以便帮助大家顺利开通接口。以下内容是本人经历了多次的申请经历得出来的经验&#xff0c;来之不易&#xff0c;望大家给予鼓励&#xff01; 小程序地理位置接口有…

在 H5 页面和 uniapp 小程序之间进行数据通信

在 H5 页面和 uniapp 小程序之间进行数据通信可以使用以下方法&#xff1a; URL 参数传递 在 H5 页面中使用 URL 参数来传递数据&#xff0c;然后在小程序中使用 uni.getLaunchOptionsSync() 或者 onLaunch/onShow 生命周期函数来获取 URL 参数中的数据。 在 H5 页面中&…

nodejs写接口(一)

一、新手上路十大步 &#xff08;1&#xff09;先建一个常用的文件夹 &#xff08;2&#xff09;使用code打开 &#xff08;3&#xff09;在里面新建一个index.js文件 &#xff08;4&#xff09;新建项目 npm init -y //用于自己搭建一个项目框架&#xff08;写框架&#xf…

ChatGPT向付费用户推“记忆”功能,可记住用户喜好 | 最新快讯

4月30日消息&#xff0c;人工智能巨头OpenAI宣布&#xff0c;其开发的聊天机器人ChatGPT将在除欧洲和韩国以外的市场全面上线“记忆”功能。这使得聊天机器人能够“记住”ChatGPT Plus付费订阅用户的详细信息&#xff0c;从而提供更个性化的服务。 OpenAI早在今年2月就已经宣布…

【Camera KMD ISP SubSystem笔记】CAM SYNC与DRQ①

在android系统中fence用于不同模块需要访问同一块buffer的同步&#xff0c;例如camera和graphic。对于preview buffer, camera是生产者graphic是消费者。 camera需要生产图像数据到preview buffer时需要等待preview buffer的 fence可用。 camera sync是高通camx框架里面用于各个…

electron中主进程和渲染进程通信

在 Electron 中&#xff0c;通过使用 IPC &#xff08;Inter-Process Communication&#xff09;机制&#xff0c;ipcMain 和 ipcRenderer 模块可以在主线程&#xff08;主进程&#xff09;和渲染线程&#xff08;渲染进程&#xff09;之间进行消息通信。当你想要从主线程发送数…

Fastadmin 日常项目常见用法整理

ps&#xff1a;自己使用笔记备用&#xff0c;不间断更新&#xff0c;常见功能点 一&#xff0c;数据库后缀 结尾字符示例类型要求字段说明timerefreshtimebigint/datetime识别为日期时间型数据&#xff0c;自动创建选择时间的组件imagesmallimagevarchar识别为图片文件&#…

为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…