nacos作为服务注册中心

nacos

    • nacos简介
    • nacos 作为服务注册中心demo
      • 基于Nacos的服务提供者
      • 基于Nacos的服务消费者
      • nacos切换ap和cp 模式

nacos简介

  • 为什么叫nacos
前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service。
  • 是什么
一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心
Nacos:Dynamic Naming and Configuration Service
Nacos就是注册中心+配置中心的组合
Nacos = Eureka+Config+Bus
  • 能干吗
 - 注册中心- 配置中心
  • 下载
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 然后账号密码都是nacos

nacos 作为服务注册中心demo

基于Nacos的服务提供者

  • pom

<!--spring cloud alibaba 2.1.0.RELEASE--><dependencyManagement><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>
</dependencyManagement><!-- 上面是父pom --><dependencies><!-- nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</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的客户端
@EnableDiscoveryClient
  • rest 接口省略,暴露接口地址,给消费者访问
  • 按照上面的可还搭建一个服务提供者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;// 读取yaml@Value("${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?entry=serverMode&value=CP'# ap
curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=AP'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(1294):相对路径和绝对路径

const fs require(fs); const path require(path); console.log(__dirname); console.log(path.join(__dirname, ./demo01.js)); fs.readFile(path.join(__dirname, ./demo01.js), utf8, (err, doc) > {console.log(err);console.log(doc); }) 运行结果

layui 数据表格代码

一套增删改查&#xff0c;打完收工。 layui版本&#xff1a;2.4.5 默认请求,分页。 /rest_address?page1&limit1json数据格式要求. 参数说明文档 https://www.layui.com/doc/modules/table.html#cols <!DOCTYPE html> <html lang"en" xmlns:th"…

[BZOJ 1085] [SCOI2005] 骑士精神 [ IDA* 搜索 ]

题目链接 : BZOJ 1085 题目分析 : 本题中可能的状态会有 (2^24) * 25 种状态&#xff0c;需要使用优秀的搜索方式和一些优化技巧。 我使用的是 IDA* 搜索&#xff0c;从小到大枚举步数&#xff0c;每次 DFS 验证在当前枚举的步数之内能否到达目标状态。 如果不能到达&#xff0…

nacos服务配置中心演示

config centerNacos作为配置中心-基础配置Nacos作为配置中心-分类配置nacos将配置持久化到mysql新型技术&#xff0c;替代spring config center & bus Nacos作为配置中心-基础配置 ⑴ module cloudalibaba-config-nacos-client3377 (2) pom <dependencies><!--n…

前端学习(1296):第三方模块nodemon

修改保存重新执行 如何断开ctrlc

core java 8~9(GUI AWT事件处理机制)

MODULE 8 GUIs--------------------------------GUI中的包&#xff1a; java.awt.*; javax.swing.*; java.awt.event.*; 要求:1)了解GUI的开发流程&#xff1b;2&#xff09;掌握常用的布局管理器 开发GUI图形界面的步骤-------------------------------1.选择容器 1&#xff0…

note.. redis五大数据类型

redis 五大数据类型使用nosql介绍&#xff0c;由来什么是nosql阿里巴巴的架构nosql 四大分类redis入门概述redis 安装 &#xff08;docker&#xff09;基础的知识redis五大数据类型Redis-KeyStringList (列表)Set &#xff08;集合&#xff09;Hash(哈希)Zset 有序集合nosql介绍…

Arcengine 基本操作(待更新)

/// <summary>/// 删除fieldName属性值为1的弧段/// </summary>/// <param name"fieldName"></param>/// <param name"t"></param>public void DelectPolyline(string fieldName, int t){ILayer pLayer axMapControl…

redis 三种特殊数据类型

三种特性数据类型 geospatial 定位&#xff0c;附近的人&#xff0c;打车距离计算。 redis的geo在redis3.2版本就推出了。可推算地理位置的信息&#xff0c;两地之间的距离&#xff0c;方圆几里的人。 6个命令。 GEOADD GEODIST GEOHASH GEOPOS GEORADIUS GEORADIUSBYMEMB…

前端学习(1298):gulp使用

第一步安装 第二步建立文件夹 第三部 src放源代码 第四步 输入代码 执行

Sentinel 分布式系统的流量防卫兵

sentinelsentinel base服务编写关键名词解释sentinel base 官网&#xff1a; https://github.com/alibaba/Sentinel https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D 是什么&#xff1f; 是一款优秀的限流&#xff0c;降级&#xff0c;熔断的框架。 Sentinel …

php查询mysql返回大量数据结果集导致内存溢出的解决方法

web开发中如果遇到php查询mysql返回大量数据导致内存溢出、或者内存不够用的情况那就需要看下MySQL C API的关联,那么究竟是什么导致php查询mysql返回大量数据时内存不够用情况&#xff1f; 答案是: mysql_query 和 mysql_unbuffered_query 两个函数 首先来分析一个典型的实例:…

前端学习(1299):gulp插件

第一步 下载 第二步 const gulp require(gulp); const htmlmin require(gulp-htmlmin);gulp.task(first, () > {console.log(第一次执行);}); gulp.task(htmlmin, () > {gulp.src(./src/*.html)//压缩去其中的代码.pipe(htmlmin({ collapseWhitespace: true })).pipe(…

前端学习(1300)报错:无法加载文件 D:\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本...

解决报错&#xff1a; &#xff08;1&#xff09;以管理员身份运行命令行设置即可 &#xff08;2&#xff09;在终端执行&#xff1a;get-ExecutionPolicy&#xff0c;显示Restricted&#xff08;表示状态是禁止的&#xff09; &#xff08;3&#xff09;在终端执行&#xff…

动态规划系列 | 最长上升子序列模型(上)

文章目录 最长上升子序列回顾题目描述问题分析程序代码复杂度分析 怪盗基德的滑翔翼题目描述输入格式输出格式 问题分析程序代码复杂度分析 登山题目描述输入格式输出格式 问题分析程序代码复杂度分析 合唱队形题目描述输入格式输出格式 问题分析程序代码复杂度分析 友好城市题…

docker 安装部署nacos

docker 安装nacospull镜像配置mysql挂载运行单机nacos部署。考虑到nacos比较耗费性能&#xff0c;使用docker部署学习。 pull镜像 1.3.1 是github上说明的稳定版本. 至少现在是。 docker pull nacos/nacos-server:1.3.1配置mysql 1. mysql创建nacos_config 数据库2. 数据sq…

ASP.NET(c#)实现重定向的三种方法的总结

(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器. (2)Server.Execute方法: Server.Execute("m2.aspx")…