下载地址:https://github.com/alibaba/nacos/releases 这个地址是在Github上,有时候一些原因,下载速度较慢。也可以使用百度网盘的下载路径:https://pan.baidu.com/s/1186nmlqPGows9gUZKAx8Zw 验证码:rest。
提供了两个版本,一个基于Linux版本的,一个基于Windows版本的,如下所示:
Windows nacos-server-x.x.x.zip
Linux nacos-server-x.x.x.tar.gz
我这里选择了Linux环境下的1.3.2版本。
#解压
tar -zxvf nacos-server-1.3.2.tar.gz
#运行
./bin/startup.sh -m standalone
运行结果如下:
登录后,出现如下界面,说明nacos部署成功了。
构建了注册服务中心,实现一个服务提供者和消费者(Spring Boot应用),验证注册中心的注册与发现功能。
Demo的地址:传送门。其中,nacos-service是服务提供者,nacos-consumer是服务消费者。
1.1、引入nacos的依赖(省略了文件的其他内容)
<!--引入Nacos的服务注册与发现依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
1.2、定义启动类(普通的Spring Boot启动类),添加注册发现注解@EnableDiscoveryClient
@SpringBootApplication
@EnableDiscoveryClient
public class NacosServiceApplication {
public static void main(String[] args) {
SpringApplication.run(NacosServiceApplication.class, args);
}
}
1.3、配置文件application.properties
spring.application.name=qriver-nacos-server
server.port=8001
#注册服务中心的地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
1.4、定义一个API接口(对外提供服务),就是一个普通的Controller类。
@RestController
public class ServiceController {
@GetMapping("/service")
public String service(@RequestParam String name) {
return "hi," + name;
}
}
1.5、启动该项目,再刷新注册中心页面,发现该服务已经在服务列表中了,说明服务注册成功了。
注:服务提供者和消费者都已经启动了。
消费者应用和服务提供者类似,只是实现了一个调用服务者提供者接口的方法,如下所示:
@RestController
public class ConsumerController {
@Autowired
private LoadBalancerClient loadBalancerClient;
@GetMapping("/consumer")
public String consumer(@RequestParam String name) {
// 通过spring cloud common中的负载均衡接口选取服务提供节点实现接口调用
ServiceInstance serviceInstance = loadBalancerClient.choose("qriver-nacos-server");
String url = serviceInstance.getUri() + "/service?name=" + name;
RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.getForObject(url, String.class);
return "选用服务实例 : " + url + ", 返回结果 : " + result;
}
}
启动消费者应用(也会注册到注册中心中),然后通过浏览器或者postman访问http://127.0.0.1:8100/consumer?name=hsh,会返回方法的调用情况,并显示调用了服务提供者的实例。
其中,使用了LoadBalancerClient接口,实现了负载均衡,当有多个服务提供者实例时,就会轮询的方式访问各个服务提供者实例。
启动多实例的方式请参考《IntelliJ Idea如何为一个项目启动多个项目实例》。
启动多实例后,在注册中心的展示如下:
然后点开详情,可以看到如下信息,可以看到有两个实例的信息:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。