Nacos实现服务注册与消费(入门)

前言

nacos的介绍不用多说了,大家搜索nacos相关文档时,多多少少都有了一定的了解。写这篇博文的原因是:今天刚接触到nacos,在尝试开始配置时,参考网上前辈的各种教程都没能成功,索性放弃,转而参考官网的文档成功了。所以,这篇文章作用就是给我一样刚接触nacos的小白提供一定的参考作用,少走点弯路。

官方nacos手册

一、安装Nacos

安装的文档:https://nacos.io/zh-cn/docs/quick-start.html
window环境下安装好,直接点击startup.cmd就可以启动了在这里插入图片描述

在这里插入图片描述

启动成功界面如上图,注意这个ip地址,之后会用到。

启动好了之后,可以访问:ip地址:8848/nacos/#/login
比如我的就是 http://192.168.91.1:8848/nacos/#/login。
账号和密码都是nacos

登录界面:
在这里插入图片描述
主界面:
在这里插入图片描述

二、创建工程

我用的是SpringBoot创建的工程,可根据自己的喜好,随便创建。创建好的工程目录结构如下:在这里插入图片描述
创建了4个项目,3个service项目模拟服务提供者,1个client模拟消费者。

tip:
可能有小伙伴不会创建同一个项目下多个工程,百度一下就行了,很简单的。
可以参考下这篇文章:https://www.cnblogs.com/oskyhg/p/6649266.html

三、开始编写service工程

1、配置pom.xml
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-alibaba-dependencies</artifactId>
			<version>2.1.0.RELEASE</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

<properties>
	<java.version>1.8</java.version>
</properties>

<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>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

整个nacos的核心就是这两个:在这里插入图片描述

2、配置application.properties

#ip地址信息
spring.cloud.nacos.discovery.server-addr=192.168.91.1:8848
#服务名称(随便起)
spring.application.name=nacos-provider
#端口号
server.port=8002
在这里插入图片描述
==注意:==如果IP地址不是本机的话(比如云服务器),记得在安全组里开启8848端口。

3、在主启动类上添加@EnableDiscoveryClient注解

在这里插入图片描述

四、启动项目测试

启动刚刚写好的服务类,看见这条信息说明配置成功了~
在这里插入图片描述

在Nacos中查看
在这里插入图片描述
这里会显示服务,我这是4个服务都启动了,所以数目有点不一样。

五、创建消费者并测试

1、在服务端创建Controller写个测试代码
@ResponseBody
@RequestMapping("testService")
public String testService(){
    return "这是来自服务端提供的服务~!";
}

在这里插入图片描述

2、多复制几个服务端,等会做下负载均衡的测试

我这复制了两个。
在这里插入图片描述

3、创建消费端

a、 消费端的pom.xml与服务端一致。
b、 application.properties如下:
在这里插入图片描述
c、 主函数加同样的注解
在这里插入图片描述
d、 编写controller做测试
在这里插入图片描述

@Autowired
LoadBalancerClient loadBalancerClient;

@ResponseBody
@RequestMapping("/test")
public String test() {
    // 通过spring cloud common中的负载均衡接口选取服务提供节点实现接口调用
    ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-provider");
    System.out.println(serviceInstance.getUri());
    String url = serviceInstance.getUri() + "/testService";
    RestTemplate restTemplate = new RestTemplate();
    String result = restTemplate.getForObject(url, String.class);
    return "Invoke : " + url + ", return : " + result;
}

}

六、测试

首先把3个服务端都启动,注意一下,这四个项目的端口都不能一样,必须各不相同。 比如我的8001、8002 、8003作为服务端,8004作为消费端。

开始测试!
在这里插入图片描述

在这里插入图片描述
实现了负载均衡~

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值