无敌的服务注册中心Spring CloudAlibaba Nacos不进来看一看吗?
目录
1、Nacos概述
2、Nacos安装运行
安装
运行
3、Nacos作为服务注册中心
服务提供者order-service
服务消费者user-service
4、Nacos作为配置中心
集群负载均衡配置
Data/Service+Group+Namespace关系
Namespace
Group
Service/Data
Instance
5、常用注册中心的对比
CAP理论
Nacos和其他注册中心比较
6、Nacos集群和持久化
7、Linux环境下进行Nacos配置
安装并运行
1、Nacos概述
Nacos支持发现、配置和管理几乎所有类型的服务。其Key features:Service Discovery And Service Health Check、Dynamic configuration management、Dynamic DNS service、Service governance and metadata management
官网
2、Nacos安装运行
安装
官网下载毕竟在国外网站,下载很慢。准备nacos1.4链接,请自取:
链接:https://pan.baidu.com/s/1wyLqnVRi6si_DOYJHmDm8g?pwd=pqmy
提取码:pqmy
官网nacos2.2.3版本https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.zip
运行
直接将压缩包解压到非中文目录,进入bin目录运行cmd命令:startup.cmd -m standalone
启动成功后直接访问:http://127.0.0.1:8848/nacos,默认账号和密码:nacos
登录成功
3、Nacos作为服务注册中心
父工程cloud-demo
- pom.xml
<!-- spring-cloud-alibaba --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope></dependency>
服务提供者order-service
- pom.xml
<!-- spring-cloud-starter-alibaba-nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
- application.yml
spring:datasource:url: jdbc:mysql://localhost:3306/cloud_order?useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driverapplication:name: order-servicecloud:nacos:server-addr: localhost:8848 # nacos地址
服务消费者user-service
- pom.xml
<!-- spring-cloud-starter-alibaba-nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
- application.yml
spring:datasource:url: jdbc:mysql://localhost:3306/cloud_user?useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driverapplication:name: user-servicecloud:nacos:server-addr: localhost:8848 # nacos地址
nacos注册进两个服务
借助apiPost自测/order/{orderId}和/user/{id}nacos内置了ribbon采用默认的轮询策略。
4、Nacos作为配置中心
集群负载均衡配置
application.yml配置集群名称cluster-name
spring:datasource:url: jdbc:mysql://localhost:3306/cloud_user?useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driverapplication:name: user-servicecloud:nacos:server-addr: localhost:8848 # nacos地址discovery:cluster-name: HZ # 杭州集群
同优先级集群配置轮询规则
user-service:ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
设置请求频率权重,权重越大,访问比率越高。权重值可以设置0-1之间。
Data/Service+Group+Namespace关系
Namespace实现了环境隔离,nacos可以有多个Namespace。不同Namespace的服务互相不可见。默认情况下,Service/Data、Group在public的Namespace下。
Namespace
application.yml给指定命名控制配置
spring:datasource:url: jdbc:mysql://localhost:3306/cloud_order?useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driverapplication:name: order-servicecloud:nacos:server-addr: localhost:8848 # nacos地址discovery:cluster-name: HZ # 杭州集群namespace: d8aa7768-0c2e-4a31-b4ef-f61d0a1bc523 # 命名空间
通过apipost发送localhost:8080/order/101请求跨数据库访问用户出现错误。
Group
Service/Data
- 文件DataId为什么要遵循这种写法?
nacos在读取这个文件Id遵循最终公式:
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
- 文件配置热更新
在具体的接口Controller上加@RefreshScope,通过注入@Value("${pattern.dateformat}")获取yaml或properties配置文件内容。nacos内目前只支持yaml或properties两种格式的配置文件。
通过自定义nacos热部署类通过@Autowired注入自定义类并getXxx属性方法。
config/MyNacosConfigration
@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class MyNacosConfigration {private String dateformat;}
- 环境共享
在bootstrap.yaml文件指定userservice服务是dev环境,但是服务端口8081、8082、8083。其中8082节点userservice是test环境。只要包括userservice的内容都能从nacos里读取。
读取nacos配置文件优先级的公式:
nacos:[实例名称]-[profile].[后缀] > nacos:[实例名称].[后缀] > local:application.yml
Instance
作为nacos中的服务实例分为临时实例和非临时实例。
- 临时实例:当服务宕机停止一段时间后从nacos的服务列表中剔除服务实例。
- 非临时实例:当服务宕机后停止一段时间不会从nacos的服务列表中剔除服务实例。
application.yml
spring:datasource:url: jdbc:mysql://localhost:3306/cloud_order?useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driverapplication:name: order-servicecloud:nacos:server-addr: localhost:8848 # nacos地址discovery:cluster-name: HZ # 杭州集群namespace: d8aa7768-0c2e-4a31-b4ef-f61d0a1bc523 # 命名空间ephemeral: false # false非临时实例 true临时实例
5、常用注册中心的对比
CAP理论
C(Consistency):强一致性
A (Avalibility):可用性
P(Partition Tolerance):分区容忍性
CAP描述的是一个分布式系统最多只能满足CAP中的两个条件,不可能同时满足三个条件。
Nacos和其他注册中心比较
Nacos |
Zookeeper |
Eureka |
Consul |
|
CAP |
CP+AP |
CP |
AP |
CP |
C一般是保证在一定时间内,集群中的各个节点会达到较强的一致性,会牺牲一些响应时间;A是系统一直处于可用状态,所有的请求都会被响应。
CP保证一致性;AP保证可用性。
6、Nacos集群和持久化
官网nacos集群架构图
集群部署的过程:所有发出的请求经过nginx负载均衡分别转发到nacos集群服务的每一个节点上。每一个nacos服务实例连接mysql有主从节点的数据库集群上,以达到数据的持久化。Nacos在单机模式默认数据库Derby
我们准备一个集群结构:
依次修改nacos1、nacos2、nacos3的文件nacos1\conf
nginx/conf文件修改监听端口和代理端口
多节点的nacos集群效果简单看一下哈~
Nacos集群
在实际企业中Nginx采用反向代理,nginx服务器设置一个域名。而Nacos采用一个节点部署到一台服务器上。
7、Linux环境下进行Nacos配置
安装并运行
准备了Nacos1.4版本,可以自取链接~
链接:https://pan.baidu.com/s/1-E4MW0y7k26TC8HjfslPVw?pwd=lqkb
提取码:lqkb
官网nacos2.2.3版本,可以自行下载~
https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz
解压包
tar -zxvf nacos-server-1.4.1.tar.gz
# 删除安装包
rm -rf nacos-server-1.4.1.tar.gz
进入nacos/bin目录输入命令:sh startup.sh -m standalone启动。账号和密码:nacos
无敌的服务注册中心Spring CloudAlibaba Nacos不进来看一看吗?相关推荐
- eureka 之前的服务如何关闭_干货分享 | 服务注册中心Spring Cloud Eureka部分源码分析...
友情提示:全文13000多文字,预计阅读时间10-15分钟 Spring Cloud Eureka作为常用的服务注册中心,我们有必要去了解其内在实现机制,这样出现问题的时候我们可以快速去定位问题.当我 ...
- 使用Nacos搭建微服务注册中心和配置中心(一)
Nacos用于替换Spring Cloud Eureka和Spring Cloud Config,集注册中心和配置中心功能于一体. 本地测试搭建使用的环境为:win10, JDK8, MySQL5.6 ...
- 二、Nacos服务注册中心应用实践
Nacos服务注册中心 文章目录 Nacos服务注册中心 一.Nacos服务注册中心 1. 注册中心简介 2. 构建Nacos服务 2.1 准备工作 2.2 下载与安装 2.3 初始化配置 3. 服务 ...
- java服务注册中心有哪些_Spring Cloud服务注册中心简述
概念 当一个大型系统拥有很多服务时,往往需要一个服务注册中心来管理这些服务,它可以提供如下功能: 登记每个服务提供的功能 检测每个服务是否可用,不可用的服务剔除 服务间互相调用时,通过服务注册中心很容 ...
- 巧玩SpringCloud——使用Eureka搭建服务注册中心与服务发现
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/84549747 本文出自[我是干勾鱼的博客] Ingredient: Java:J ...
- 《微服务(一):微服务组件之服务注册中心》
服务注册中心: Eureka Nacos Consul Zookeeper 文章目录 Eureka 服务注册与发现 一.搭建 Eureka 单点服务 1.搭建注册中心 实现步骤 注意事项 2.服务注册 ...
- Spring Cloud Alibaba教程:使用Nacos作为服务注册中心
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 什么是Nacos? Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易 ...
- 使用Nacos搭建微服务注册中心和配置中心(二)
接着上篇Nacos注册中心搭建之后,开始Nacos配置中心使用. 1.在微服务中pom.xml文件中添加nacos-config引用 <dependency> <groupI ...
- gateway nacos注册服务_使用Nacos作为微服务注册中心和配置中心
使用Nacos作为微服务注册中心和配置中心 一.技术简介 Nacos是阿里系开发的兼容Spring Cloud的服务注册中心组件,是微服务国产化的先驱.Nacos作为与Eureka的对比,不仅具有Eu ...
最新文章
- 不使用fastreport自带的条码组件打印快递单(一款很不错的条码组件下载)
- Fedora 34 Beta发布:引入GNOME 40巨大桌面升级
- 每个程序员都应该知道的8个Linux命令
- Android onTouchEvent, onClick及onLongClick的调用机制
- java,获取微信分享需要的获取 signature、jsapi_ticket和access_token
- python中链表和数组_数据结构笔记(一):数组、链表|python基础教程|python入门|python教程...
- php 继承内核中的基类,继承类上的PHP new self()正在创建一个基类对象
- (XGBoost)提升树入门介绍(Inrtoduction to Boosted Trees)
- NET EF 连接Oracle 的配置方法记录
- 阿里云成为国内首个时序数据库标准工作组成员
- 查看Oracle执行计划的几种常用方法-系列1
- RationalDMIS 2020 叶片检测 -快速定义叶片截面线方法
- IPFS系列 - 默克有向无环图(Merkle DAG)
- 随机切换必应美图html代码,随机显示必应每日一张图片为背景网站技巧教程
- 克拉拉新作品《深爱》七夕上映,独立洒脱实力诠释职场女性
- mysql ogg kafka_ogg实时同步到Kafka
- SpringBoot+Vue实现前后端分离在线视频点播系统
- 环境变量设置export 命令详解
- AV-TEST杀毒软件能力测试(2018年1月-12月)杀毒软件排名
- 规避网络游戏的外挂检测机制