Nacos
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
参考资料:https://nacos.io/en-us/docs/what-is-nacos.html
注册中心对比
服务注册于发现框架 | CAP模型 | 控制台支持 | 社区活跃度 |
Eureka | AP | 支持 | 低(2.x版本闭源) |
Zookeeper | CP | 不支持 | 中 |
Consul | CP | 支持 | 高 |
Nacos | AP/CP | 支持 | 高 |
下载、安装Nacos注册中心服务器
参考资料:https://nacos.io/en-us/docs/quick-start-spring-cloud.html
Nacos服务端:
到Nacos的github官网下载就好了,我这里下载的1.1.4(https://github.com/alibaba/nacos/tags)。解压到本地,直接运行:startup.cmd
访问:http://localhost:8848/nacos(默认端口8848,默认密码账号:nacos)
接下来我们配置Nacos的client端(SpringCloudAlibaba的pom依赖和NacosClient的pom依赖):
(我这里创建了三个服务,其中一个调用另外两个来实现负载均衡小效果:cloudalibaba-consumer-order-11001来调用cloudalibaba-provider-payment-10001和cloudalibaba-provider-payment-10002)
<!--spring cloud 阿里巴巴--><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>
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
接下来就是我们在配置文件中配置注册中的地址等等(和Eureka一样的):
server:port: 10002spring:application:name: cloud-alibaba-payment-service#nacos注册地址cloud:nacos:discovery:server-addr: localhost:8848
由于nacos-discovery集成了ribbon,所以我们使用RestTemplate(需要加上注解:@LoadBalanced)就能实现负载均衡的功能了。
@Configuration
public class Config {@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();}
}
启动三个服务我们在Nacos后台界面就能看到三个服务实例已经注册到上面:
接下来就是模拟业务逻辑去调用了(参考示例代码)。
其他
1.参考代码:https://github.com/TianLuhua/springCloud2020.git
2. Nacos注册中心:需要自己下载、部署
3. 服务调用:cloudalibaba-consumer-order-11001
4. 服务提供:cloudalibaba-provider-payment-10001和cloudalibaba-provider-payment-10002