网站首页 > 博客文章 正文
1. 安装nacos,这里采用docker安装,不清楚docker,请移步centos8.0 docker演示
1) 拉取最新版本nacos
docker pull nacos/nacos-server
2) 查看镜像
docker images
3) 启动nacos,这里做了端口映射,映射为8080
docker run --env MODE=standalone --name nacos -d -p 8080:8848 nacos/nacos-server
4) 访问nacos,默认用户名和密码均为nacos,http://127.0.0.1:8080/nacos/#/login
2. 测试服务注册于发现
1) 创建maven父项目nacos-test,删除src目录
2) 引入POM依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--服务注册与发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
<!--配置中心-->
<dependency>
groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
<!--feign调用,RPC通讯,集成ribbon辅助均衡-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
</dependencies>
3) 创建生产者
A. 在父项目nacos-test下创建module,此处命名为nacos-service
B. 创建启动类NacosServiceApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class NacosServiceApplication {
public static void main(String[] args) {
SpringApplication.run(NacosServiceApplication.class,args);
}
}
C. 创建配置文件bootstrap.yml,因为加载顺序的问题,此处必须是bootstrap.yml,而不是application.yml,否则引入了nacos config会启动失败
server:
port: 8091
spring:
application:
#定义服务名
name: nacos-service
cloud
nacos:
discovery:
#注册中心地址
server-addr: http://127.0.0.1:8080
config:
#配置中心地址
server-addr: http://127.0.0.1:8080
#组别
group: DEFAULT_GROUP
#文件类别
file-extension: yaml
#使用环境
profiles:
active: dev
D. 创建类NacosService.java提供服务
import com.alex.nacosconfigfile.ProducerConfigInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class NacosService {
@Value("${server.port}")
private String serverPort;
@Autowired
private ProducerConfigInfo producerConfigInfo;
@GetMapping("/sayHello")
@RefreshScope
public String sayHello(){
return "我是生产者,我的端口号为:"+serverPort+",nacos-config配置内容为:"+producerConfigInfo.getProducerContent();
}
}
E. 创建配置文件ProducerConfigInfo.java类,用于测试nacos config
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
@Configuration
@RefreshScope
public class ProducerConfigInfo {
@Value("${producer.content}")
private String producerContent;
public String getProducerContent() {
return producerContent;
}
public void setProducerContent(String producerContent) {
this.producerContent = producerContent;
}
}
F. 在控制台创建配置文件nacos-service-dev.yaml
G. 分别用8091和8092两个端口启动生产者项目,创建集群,以便验证负载均衡,查看nacos服务列表是否注册成功
4) 创建消费者
A. 在父项目nacos-test下创建module,此处命名为nacos-customer
B. 创建启动类NacosCustomerApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
/***开启openfeign客户端*/
@EnableFeignClients
public class NacosCustomerApplication {
public static void main(String[] args) {
SpringApplication.run(NacosCustomerApplication.class,args);
}
}
C. 创建配置文件bootstrap.yml,因为是在父pom中引入的依赖,只要引入了nacos config的依赖,配置文件名称都必须是bootstrap.yml,且必须配置nacos config相关信息,否则启动失败
server:
port: 9001
spring:
application:
#定义服务名
name: nacos-customer
cloud:
nacos:
discovery:
#注册中心地址
server-addr: http://127.0.0.1:8080
config:
#配置中心地址
server-addr: http://127.0.0.1:8080
#组别
group: DEFAULT_GROUP
#文件类别
file-extension: yaml
D. 创建openfeign客户端,NacosServiceFeign.java
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient("nacos-service")
public interface NacosServiceFeign {
@GetMapping("sayHello")
String sayHello();
}
E. 创建消费者NacosCustomerService.java调用生产者接口
import com.alex.feign.NacosServiceFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class NacosCustomerService {
@Autowired
private NacosServiceFeign nacosServiceFeign;
@GetMapping("/getTestResult")
public String getTestResult() {
String result = nacosServiceFeign.sayHello();
return "我是消费者,通过ribbon负载均衡调用sevice返回结果:" + result;
}
}
F. 启动消费者,并调用http://127.0.0.1:9001/getTestResult
动态均衡演示:
动态配置修改演示,修改配置文件值为2222,旧值为1111,如图:
猜你喜欢
- 2024-10-01 微服务学习笔记(微服务怎么学)
- 2024-10-01 干货:SpringBoot集成Nacos,填坑篇
- 2024-10-01 记一次把Nacos做成服务并开机启动
- 2024-10-01 Nacos 配置中心与注册中心(nacos配置中心连接超时)
- 2024-10-01 小白入门必知必会-Nacos单机安装(nacos入门教程)
- 2024-10-01 windows系统 安装nacos服务注册与发现中心
- 2024-10-01 网络环境问题导致的nacos集群故障
- 2024-10-01 分布式服务限流降级熔断解决方案Nacos之Dashboard界面配置含义
- 2024-10-01 Nacos你真的理解了吗(nacos百科)
- 2024-10-01 java微服务环境配置——注册中心 配置中心Nacos
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 357℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)