收录网站是什么意思,wordpress自动排版,初学者做网站的软件,wordpress文章图片全屏浏览nacosnacos简介nacos 作为服务注册中心demo基于Nacos的服务提供者基于Nacos的服务消费者nacos切换ap和cp 模式nacos简介
为什么叫nacos
前四个字母分别为Naming和Configuration的前两个字母#xff0c;最后的s为Service。是什么
一个更易于构建云原生应用的动态服务发现最后的s为Service。是什么
一个更易于构建云原生应用的动态服务发现配置管理和服务管理中心
NacosDynamic Naming and Configuration Service
Nacos就是注册中心配置中心的组合
Nacos EurekaConfigBus能干吗 - 注册中心- 配置中心下载
https://github.com/alibaba/Nacos# 文档
https://nacos.io/zh-cn/index.htmlhttps://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_nacos_discovery各种服务注册中心的对比
服务注册与发现框架cap模型控制台管理社区活跃度eurekaap支持2.x闭源zkcp不支持中consulcp支持高nacosap或者cp切换支持高
ps: ap 为高可用, cp 为数据必须一致。 安装并运行nacos
1. Java maven ok
2. https://github.com/alibaba/nacos/releases/tag/1.1.4 下载
3. 解压startup.cmd双击
4. 访问http://localhost:8848 然后账号密码都是nacosnacos 作为服务注册中心demo
基于Nacos的服务提供者
pom !--spring cloud alibaba 2.1.0.RELEASE--dependencyManagementdependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.1.0.RELEASE/versiontypepom/typescopeimport/scope/dependency
/dependencyManagement!-- 上面是父pom --dependencies!-- nacos --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies
yaml
server:port: 9001spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: localhost:8848 #配置Nacos地址management:endpoints:web:exposure:include: *
作为nacos的客户端
EnableDiscoveryClientrest 接口省略暴露接口地址给消费者访问按照上面的可还搭建一个服务提供者9002
基于Nacos的服务消费者
pom 同上yaml
server:port: 83spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848# 这里将服务消费者的地址写到了配置文件方便更改
service-url:nacos-user-service: http://nacos-payment-provider
作为nacos的客户端 消费者,主启动
EnableDiscoveryClient配置restTemplate类。 并且负载均衡。消费者controller
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;RestController
Slf4j
public class OrderNacosController
{Resourceprivate RestTemplate restTemplate;// 读取yamlValue(${service-url.nacos-user-service})private String serverURL;GetMapping(value /consumer/payment/nacos/{id})public String paymentInfo(PathVariable(id) Long id){// 服务提供者暴露的rest接口地址 /payment/nacosreturn restTemplate.getForObject(serverURL/payment/nacos/id,String.class);}}
测试
发现83调用9001,9002成功并且支持沦陷。
nacos切换ap和cp 模式
# cp
curl -X PUT $NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entryserverModevalueCP# ap
curl -X PUT $NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entryserverModevalueAP