nacos实现了服务注册和负载均衡调用
1、整体情况
2、是什么?
前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service
Nacos = Eureka+ribbion+restTemplate+Config+Bus(本篇文章展示Nacos = Eureka+ribbion+restTemplate,下篇文章展示Nacos = Config+Bus)
替代Eureka做服务注册中心
替代Config做服务配置中心
官方文档:
Spring Cloud Alibaba Reference Documentation
3、mac下载安装
安装成功测试:http://localhost:8848/nacos/index.html 用户名、密码都是nacos
nacos默认端口为8848。
4、nacos之服务提供者注册
(1)、父工程添加
<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>
(2)、子工程添加
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
(3)、建立工程cloudalibaba-provider-payment9001
(4)、修改yml文件,进行服务注册(实现了服务注册)
(5)、添加controler
@RestController
public class PaymentController {
@Value("${server.port}")
private String serverPort;
@GetMapping(value = "/payment/nacos/{id}")
public String getPayment(@PathVariable("id") Integer id) {
return "nacos registry, serverPort: " + serverPort + "\t id" + id;
}
}
(6)、访问地址和展示成功
5、nacos之服务消费者
(1)、建立工程cloudalibaba-consumer-nacos-order83
(2)、同样还是服务先注册(实现了服务注册)
(3)、nacos天生自带负载均衡,因为它整合了ribbon,整合了ribbon就可以用restTemplate进行负载均衡的远程调用(实现微服务间的负载均衡调用)。
(4)、注入远程调用工具和ribbon(即@loadBalanced)
(5)消费服务83可以实现轮询访问9001和9002两个生产服务
6、CAP理论,在springCloud里面应该是AP
为了保证服务的可用性降低了服务的一致性