一、Nacos注册中心的部署
1、下载
GitHub下载地址:https://github.com/alibaba/nacos/releases (一些原因,下载速度较慢)。
百度网盘下载路径:https://pan.baidu.com/s/1186nmlqPGows9gUZKAx8Zw 验证码:rest。
提供了两个版本,一个基于Linux版本的,一个基于Windows版本的,如下所示:
-
Windows nacos-server-1.3.2.zip
-
Linux nacos-server-1.3.2.tar.gz
2、解压,运行
#解压
tar -zxvf nacos-server-1.3.2.tar.gz
#运行(单机模式)
./bin/startup.sh -m standalone
运行结果如下:
3、访问http://127.0.0.1:8848/nacos/,默认用户名密码均为:nacos,如下:
登录后,出现如下界面,说明nacos部署成功了。
二、实现一个服务提供者和消费者,验证注册中心的注册与发现
构建了注册服务中心,实现一个服务提供者和消费者(Spring Boot应用),验证注册中心的注册与发现功能。
Demo的地址:传送门。其中,nacos-service是服务提供者,nacos-consumer是服务消费者。
1、nacos-service服务提供者
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、启动该项目,再刷新注册中心页面,发现该服务已经在服务列表中了,说明服务注册成功了。
注:服务提供者和消费者都已经启动了。
2、nacos-consumer消费者
消费者应用和服务提供者类似,只是实现了一个调用服务者提供者接口的方法,如下所示:
@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如何为一个项目启动多个项目实例》。
启动多实例后,在注册中心的展示如下:
然后点开详情,可以看到如下信息,可以看到有两个实例的信息:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/68783.html