常州溧阳网站建设/成功的网络营销案例及分析
文章目录
- Nacos Server
- 下载
- 启动
- 登录
- 创建命名空间
- Nacos Client
- 启动样例
- Nacos 服务发现配置项
- 集成 OpenFeign 远程接口调用
- 添加 OpenFeign 依赖
- 开启 @EnableFeignClients 注解
- 编写远程服务接口
- 远程接口调用
- 集成 Sentinel 熔断降级
- 添加 Sentinel 依赖
- 开启 Sentinel 熔断降级
- 编写降级回调类
- 添加 fallback 属性
- 集成 GateWay 动态路由
Nacos 官网:https://nacos.io
Nacos GitHub 地址:https://github.com/alibaba/nacos
spring-cloud-alibaba GitHub 地址:https://github.com/alibaba/spring-cloud-alibaba
Spring Cloud Alibaba 组件版本说明:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
Nacos(Naming and Configuration Service,命名和配置服务)是一个动态服务发现、配置管理和服务治理的一站式解决方案,致力于快速构建、部署和管理微服务平台。
Nacos的主要功能包括:
- 服务发现:Nacos提供了一个基于DNS和HTTP的服务发现机制,使得服务之间能够轻松地找到对方并建立连接。
- 服务治理:Nacos提供了丰富的服务治理功能,包括熔断、限流和负载均衡等,帮助您构建稳定、可靠的微服务系统。
- 配置管理:Nacos支持中心化、外部化和动态化的配置管理,可以为微服务应用提供实时的配置更新,允许在不重启应用的情况下更新配置。
Nacos Server
下载
查看 Spring Cloud Alibaba 的各组件版本:
Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Dubbo Version | Seata Version |
---|---|---|---|---|---|
2022.0.0.0-RC2 | 1.8.6 | 2.2.1 | 4.9.4 | ~ | 1.7.0-native-rc2 |
2021.0.5.0 | 1.8.6 | 2.2.0 | 4.9.4 | ~ | 1.6.1 |
2.2.10-RC1 | 1.8.6 | 2.2.0 | 4.9.4 | ~ | 1.6.1 |
2022.0.0.0-RC1 | 1.8.6 | 2.2.1-RC | 4.9.4 | ~ | 1.6.1 |
2.2.9.RELEASE | 1.8.5 | 2.1.0 | 4.9.4 | ~ | 1.5.2 |
进入 Nacos GitHub,点击【Tags】:
进入对应的【Tag】,下载对应的版本文件:
Nacos 下载完成:
启动
将压缩文件进行解压,目录如下:
创建数据库【nacos】:
导入 \nacos\conf
目录下的 nacos-mysql.sql
数据库文件:
查看数据库内容,包含和配置文件,命名空间,用户有关的数据表:
修改 \nacos\conf
目录下的 application.properties
配置文件:
修改启动模式,将集群模式【cluster】改为单机模式【standalone】:
Windows 运行 nacos\bin
目录下的 startup.cmd
文件:
登录
访问链接:http://localhost:8848/nacos,使用默认账号密码登录【nacos
:nacos
】:
创建命名空间
依次点击左侧菜单【命名空间→新建命名空间】,输入表格内容,点击【确定】即可:
Nacos Client
启动样例
创建对应版本的 SpringBoot 项目:
选择相关依赖,如 web、Nacos Service Discovery
:
Pom.xml 中依赖如下:
<properties><!--spring-boot 版本--><spring-boot.version>2.3.12.RELEASE</spring-boot.version><!--spring-cloud-alibaba 版本--><spring-cloud-alibaba.version>2.2.9.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencies><!--web 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--spring-cloud-alibaba-nacos 依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
</dependencies>
<dependencyManagement><dependencies><!-- spring-boot 依赖管理--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><!-- spring-cloud-alibaba 依赖管理--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
YAML 配置如下:
server:port: 8080
spring:application:name: nacos-client-acloud:nacos:server-addr: localhost:8848 # nacos server 的地址 默认localhost:8848username: nacospassword: nacosdiscovery: # 注册相关配置namespace: 9889d187-8b66-41f9-a554-d3d0635c0ee9 # 命名空间的 idgroup: A_GROUP # 分组名称,默认为:DEFAULT_GROU
启动项目,显示 nacos 注册, 默认组 nacos-client-a 192.168.152.1:8080 注册完成
:
查看 Nacos Server 中的服务列表:
Nacos 服务发现配置项
nacos.discovery
是 Nacos 中与服务注册与发现相关的配置项前缀,包含以下配置:
配置项 | Key | 默认值 | 说明 |
---|---|---|---|
服务注册中心地址 | spring.cloud.nacos.discovery.server-addr | 无 | 多个地址可以使用逗号隔开 |
命名空间 | spring.cloud.nacos.discovery.namespace | 实现多租户的注册与发现(区分隔离) | |
服务名 | spring.cloud.nacos.discovery.service | ${spring.application.name} | 服务列表的服务名称 |
服务分组 | spring.cloud.nacos.discovery.group | DEFAULT_GROUP | 服务的分组信息 |
权重 | spring.cloud.nacos.discovery.weight | 1 | 取值范围1-100,数值越大,权重越大 |
网卡名 | spring.cloud.nacos.discovery.network-interface | 无 | 当 IP 未配置时,注册的 IP 为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址 |
注册 IP 地址 | spring.cloud.nacos.discovery.ip | 无 | 优先级最高 |
注册端口 | spring.cloud.nacos.discovery.port | -1 | 默认情况下不用配置,会自动探测 |
阿里云账号 | spring.cloud.nacos.discovery.access-key | 无 | 当要上阿里云时,阿里云上面的一个云账号名 |
阿里云密码 | spring.cloud.nacos.discovery.secret-key | 无 | 当要上阿里云时,阿里云上面的一个云账号密码 |
元数据 | spring.cloud.nacos.discovery.metadata | 无 | 服务实例的元数据信息,使用 Map 格式配置 |
日志文件名 | spring.cloud.nacos.discovery.log-name | 无 |
集成 OpenFeign 远程接口调用
添加 OpenFeign 依赖
添加 spring-cloud 和 spring-cloud-openfeign 依赖:
<properties><!--spring-cloud 版本--><spring-cloud.version>Hoxton.SR12</spring-cloud.version>
</properties>
<dependencies><!--spring-cloud-openfeign 依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
</dependencies>
<dependencyManagement><dependencies><!-- spring-cloud 依赖管理--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
开启 @EnableFeignClients 注解
@EnableFeignClients //开启 Feign
@EnableDiscoveryClient //开启服务发现
@SpringBootApplication
public class NacosApplication {public static void main(String[] args) {SpringApplication.run(NacosApplication.class, args);}}
编写远程服务接口
@FeignClient(value = "nacos-user-service") //调用服务的服务名称
public interface UserFeignService {@GetMapping("info") //调用的服务接口String getInfo();}
远程接口调用
编写 UserController 接口调用服务:
@RestController
public class UserController {@Autowiredprivate UserFeignService userFeignService;@GetMapping("userInfo")public String getUserInfo(){return userFeignService.getInfo();}}
注:服务之前需要在同一个命名空间和分组下,否则不能发现服务(环境隔离)。
集成 Sentinel 熔断降级
添加 Sentinel 依赖
<!--sentinel 依赖-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
开启 Sentinel 熔断降级
在 YAML 配置文件中开启 Sentinel 熔断降级:
feign:sentinel:enabled: true
编写降级回调类
编写 UserFeignService 服务的接口实现类 UserFeignFallbackService
:
/*** UserFeignService 降级回调类*/
@Component
public class UserFeignFallbackService implements UserFeignService {public String getInfo() {return UUID.randomUUID().toString();}
}
注:当 UserFeignService
中的接口调用出现异常或服务提供者下线时,就会调用 UserFeignFallbackService
类中对应得方法进行降级处理。
添加 fallback 属性
在 UserFeignService
接口的注解 @FeignClient
上添加 fallback 属性,指定降级回调类:
@FeignClient(value = "nacos-user-service",fallback = UserFeignFallbackService.class) //调用服务的服务名称
public interface UserFeignService {@GetMapping("info")String getInfo();}
集成 GateWay 动态路由
添加 Gateway 依赖:
<!--gateway 依赖-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
YAML 文件中添加配置:
server:port: 8081spring:application:name: nacos-client-bcloud:nacos:server-addr: localhost:8848 # nacos server 的地址username: nacos # Nacos 用户名password: nacos # Nacos 密码discovery: # 注册相关配置namespace: 9889d187-8b66-41f9-a554-d3d0635c0ee9 # 命名空间的 idgroup: A_GROUP # 分组名称,默认为:DEFAULT_GROUPgateway:discovery:locator:enabled: true # 开启动态路由lower-case-service-id: true
添加 @EnableDiscoveryClient
注解:
@EnableDiscoveryClient
@SpringBootApplication
public class NacosGateWayApplication {public static void main(String[] args) {SpringApplication.run(NacosGateWayApplication.class, args);}}
相关文章:

Spring Cloud Alibaba — Nacos 构建服务注册中心
文章目录 Nacos Server下载启动登录创建命名空间 Nacos Client启动样例Nacos 服务发现配置项 集成 OpenFeign 远程接口调用添加 OpenFeign 依赖开启 EnableFeignClients 注解编写远程服务接口远程接口调用 集成 Sentinel 熔断降级添加 Sentinel 依赖开启 Sentinel 熔断降级编写…...

4.2 Spark SQL数据源 - 基本操作
一、默认数据源 案例演示读取Parquet文件 查看Spark的样例数据文件users.parquet 1、在Spark Shell中演示 启动Spark Shell 查看数据帧内容 查看数据帧模式 对数据帧指定列进行查询,查询结果依然是数据帧,然后通过write成员的save()方法写入HDF…...

事件相关功能磁共振波谱技术(fMRS)
导读 质子磁共振波谱(MRS)是一种非侵入性脑成像技术,用于测量不同神经化学物质的浓度。“单体素”MRS数据通常在几分钟内采集,然后对单个瞬态进行平均,从而测量神经化学物质浓度。然而,这种方法对更快速的神经化学物质的时间动态…...

跨境电商客户服务五步法
互联网技术的革新与升级对商务客服产生了巨大的影响,过去由在线客服与客户直接电联的单一服务形式被全渠道客服系统所替代。在电子商务时代,商家与客户之间的互动变得尤为重要:一方面,卖家通过分析客户喜好及消费趋向来针对性处理…...

hadoop环境配置及HDFS配置
环境与配置 ubuntu 20.04.6 /centos8hadoop 3.3.5 指令有部分不一样但是,配置是相同的 安装步骤 创建一个虚拟机,克隆三个虚拟机,master内存改大一点4G,salve内存1Gj修改主机名和配置静态ip(管理员模式下)) hostnamectl set-hostname node1 # 修改主机名 sudo passwd root …...

HTML中 meta的基本应用
meta 标签的定义 meta 标签是 head 部分的一个辅助性标签,提供关于 HTML 文档的元数据。它并不会显示在页面上,但对于机器是可读的。可用于浏览器(如何显示内容或重新加载页面),搜索引擎(SEO)或…...

docker compose 下 Redis 主备配置
1、准备两台虚拟机或者物理机 node1 IP:192.168.123.78 node2 IP:192.168.123.82 2、安装docker和docker compose 3、安装node1,配置docker-compose.yml version: 3services:redis-rs1:container_name: redis_node1image: redis:5.0.3rest…...

Tomcat ServletConfig和ServletContext接口概述
ServletConfig是一个接口,是Servlet规范中的一员 WEB服务器实现了ServletConfig接口,这里指的是Tomcat服务器 一个Servlet对象中有一个ServletConfig对象,Servlet和ServletConfig对象是一对一 ServletConfig对象是Tomcat服务器创建的…...

linux内核open文件流程
打开文件流程 本文基本Linux5.15 当应用层通过open api打开一个文件,内核中究竟如何处理? 本身用来描述内核中对应open 系统调用的处理流程。 数据结构 fdtable 一个进程可以打开很多文件, 内核用fdtable来管理这些文件。 include/linu…...

遗传算法讲解
遗传算法(Genetic Algorithm,GA) 是模拟生物在自然环境中的遗传和进化的过程而形成的自适应全局优化搜索算法。它借用了生物遗传学的观点,通过自然选择、遗传和变异等作用机制,实现各个个体适应性的提高。 基因型 (G…...

PostgreSQL修炼之道之高可用性方案设计(十六)
20 高可用性方案设计(一) 在一个生产系统中,通常都需要用高可用方案来保证系统的不间断运行。本章将详细介绍如何实现PostgreSQL数据库的高可用方案。 20.1 高可用架构基础 通常数据库的高可用方案都是让多个数据库服务器协同工作࿰…...

Bybit面经
缘起 V2EX有广告内推,看描述还挺不错 贴主5 年半工作经验,有两年大厂工作经历,20 年 11 月来到新加坡分公司开始工作 后来是猎头Jeff找的我 0318 主面 主要一个面试官是后端开发金融背景 某条金融线的负责人;其余是交叉面试。面…...

GORM---创建
目录 模型定义使用Create创建记录一次性创建多条数据批量插入数据时开启事务默认值问题 模型定义 定义一个PersonInfo结构体。 type PersonInfo struct {Id uint64 gorm:"column:id;primary_key;NOT NULL" json:"id"UserName string gorm:"co…...

高级查询 — 分组汇总
关于分组汇总 1.概述 将查询结果按某一列或者多列的值分组。 group by子句 分组后聚合函数将作用于每一个组,即每一组都有一个函数值。 语法 select 字段列表 from 表名 where 筛选条件 group by 分组的字段;select 字段列表 from 表名 group by 分组的字段 hav…...

【多线程】阻塞队列
1. 认识阻塞队列和消息队列 阻塞队列也是一个队列,也是一个特殊的队列,也遵守先进先出的原则,但是带有特殊的功能。 如果阻塞队列为空,执行出队列操作,就会阻塞等待,阻塞到另一个线程往阻塞队列中添加元素(…...

python2升级python3
查看当前版本 [roottest-01 node-v18.16.0]# python -V Python 2.7.5 安装依赖 [roottest-01 node-v18.16.0]# yum install -y gcc gcc-c zlib zlib-devel readline-devel 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base…...

Apache Hudi初探(八)(与spark的结合)--非bulk_insert模式
背景 之前讨论的都是’hoodie.datasource.write.operation’:bulk_insert’的前提下,在这种模式下,是没有json文件的已形成如下的文件: /dt1/.hoodie_partition_metadata /dt1/2ffe3579-6ddb-4c5f-bf03-5c1b5dfce0a0-0_0-41263-0_202305282…...

Java之旅(九)
Java 循环语句 Java 中的循环语句包括 for、while 和 do-while,它们都可以用于实现循环结构。 for 语句用于循环执行一段代码块,直到给定的条件表达式的布尔值为 false。 for 语句的一般格式如下: for (initialization; condition; update…...

6年测试经验之谈,为什么要做自动化测试?
一、自动化测试 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。 个人认为,只要能服务于测试工作,能够帮助我们提升工作效率的,不管是所谓的自动化工具,还是简单的SQL 脚本、批处理脚本,还是自己编写…...

二分法的边界条件 2517. 礼盒的最大甜蜜度
2517. 礼盒的最大甜蜜度 给你一个正整数数组 price ,其中 price[i] 表示第 i 类糖果的价格,另给你一个正整数 k 。 商店组合 k 类 不同 糖果打包成礼盒出售。礼盒的 甜蜜度 是礼盒中任意两种糖果 价格 绝对差的最小值。 返回礼盒的 最大 甜蜜度。 记录一…...

java设计模式(十六)命令模式
目录 定义模式结构角色职责代码实现适用场景优缺点 定义 命令模式(Command Pattern) 又叫动作模式或事务模式。指的是将一个请求封装成一个对象,使发出请求的责任和执行请求的责任分割开,然后可以使用不同的请求把客户端参数化&a…...

[运维] iptables限制指定ip访问指定端口和只允许指定ip访问指定端口
iptables限制指定ip访问指定端口 要使用iptables限制特定IP地址访问特定端口,您可以使用以下命令: iptables -A INPUT -p tcp -s <IP地址> --dport <端口号> -j DROP请将 <IP地址> 替换为要限制的IP地址,将 <端口号&g…...

JS学习笔记(3. 流程控制)
1. 分歧 1.1 if条件 if (条件) {...} // 为真则执行,单条语句可省略大括号 if (条件) {...} else {...}// 为真则执行if,否则执行else if (条件1) {...} else if (条件2) {...} else {...} // 条件1为真则,条件2为真则,否则执…...

遥感云大数据在灾害、水体与湿地领域典型案例及GPT模型教程
详情点击链接:遥感云大数据在灾害、水体与湿地领域典型案例及GPT模型教程 一:平台及基础开发平台 GEE平台及典型应用案例; GEE开发环境及常用数据资源; ChatGPT、文心一言等GPT模型 JavaScript基础; GEE遥感云重…...

什么是文件描述符以及重定向的本质和软硬链接(Linux)
目录 1 什么是文件?什么是文件操作?认识系统接口open 什么是文件描述符认识Linux底层进程如何打开的文件映射关系重定向的本质理解软硬链接扩展问题 1 什么是文件?什么是文件操作? 文件 文件内容 文件属性(文件属性…...

LVM逻辑卷元数据丢失恢复案例 —— 筑梦之路
Lvm常见的故障主要是pv出现异常,有以下几种情况 一个是pv所在的磁盘发生了lvm的元数据损坏一个是系统无法识别到pv所在的磁盘一个是系统异常,断电等导致重启后盘符发生变化,也就是系统识别的磁盘uuid发生变化,但是wwid还是可以对应…...

Java技术规范概览
Java技术规范 目录概述需求: 设计思路实现思路分析1.Java JSR的部分2.JSR-000373.JSR-0000394.JSR-000337 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a bet…...

【OpenMMLab AI实战营第二期】二十分钟入门OpenMMLab笔记
OpenMMlab 主页:openmmlab.com 开源地址:https://github.com/open-mmlab 学习视频地址:https://www.bilibili.com/video/BV1js4y1i72P/ 概述 开源成为人工智能行业发展引擎 时间轴 theano:2007 Caffe:2013 Ten…...

docker-compose单机容器集群编排
docker-compose dockerfile模板文件可以定义一个独立的应用容器,如果需要多个容器就需要服务编排。服务编排有很多技术方案 docker-compose开源的项目实现对容器集群的快速编排 docker-compose将所管理的容器分为三层,分别为工程,服务&#…...

CentOS7 安装Gitlab
1、安装依赖 sudo yum install -y curl openssh-server ca-certificates tzdata perl libsemanage-devel 2、安装邮件服务工具 sudo yum install -y postfix 3、配置GitLab 软件源镜像 curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash …...