【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析
Spring Cloud Alibaba Nacos Discovery
Spring Boot 应用程序在服务注册与发现方面提供和 Nacos 的无缝集成。 通过一些简单的注解,您可以快速来注册一个服务,并使用经过双十一考验的 Nacos 组件来作为大规模分布式系统的服务注册中心。
服务注册发现: Nacos Discovery Starter
服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于 服务的动态扩缩容。Nacos Discovery Starter 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery Starter 也将服务实例自身的一些元数据信息-例如 host,port,健康检查URL,主页等-注册到 Nacos 。Nacos 的获取和启动方式可以参考 Nacos 官网。
Nacos快速开始
这个快速开始手册是帮忙您快速在您的电脑上,下载、安装并使用 Nacos。
版本选择
Nacos 1.X 是老版本,将来会停止维护。 建议您使用2.X版本。
预备环境准备
Nacos 依赖Java环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置Maven环境,请确保是在以下版本环境中安装使用:
- 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
- 64 bit JDK 1.8+的下载地址:https://www.oracle.com/java/technologies/downloads/#java8
- Maven 3.2.x+的下载地址:https://maven.apache.org/download.cgi
下载源码或者安装包
你可以通过源码和发行包两种方式来获取 Nacos。
从Github上下载源码方式
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
下载编译后压缩包方式
您可以从 最新稳定版本 下载 nacos-server-$version.zip 包。
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
启动服务器
注:Nacos的运行需要以至少2C4g60g * 3的机器配置下运行。
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
Windows
启动命令(standalone代表着单机模式运行,非集群模式):
startup.cmd -m standalone
服务注册
服务注册
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
服务发现
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
关闭服务器
Linux/Unix/Mac
sh shutdown.sh
Windows
shutdown.cmd
或者双击shutdown.cmd运行文件。
Dubbo 融合 Nacos 成为注册中心
对于Nacos服务进行了简单的介绍和部署后,我们就可以使用其作为我们的注册中心使用,Nacos 作为 Dubbo 生态系统中重要的注册中心实现,本文将会介绍如何进行 Dubbo 对接 Nacos 注册中心的工作。
Dubbo 融合 Nacos 成为注册中心的操作步骤非常简单,大致步骤可分为“增加 Maven 依赖”以及“配置注册中心“。
前提准备
请确保后台已经启动Nacos服务
增加 Maven 依赖
只需要依赖Dubbo客户端即可,关于推荐的使用版本,请参考Dubbo官方文档或者咨询Dubbo开发人员:
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>3.0.10</version>
</dependency>
<!-- Dubbo Nacos registry dependency -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>3.0.10</version>
</dependency>
<!-- Alibaba Spring Context extension -->
<dependency>
<groupId>com.alibaba.spring</groupId>
<artifactId>spring-context-support</artifactId>
<version>1.0.11</version>
</dependency>
</dependencies>
使用 Nacos 注册中心
Spring的xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="dubbo-provider-xml-demo" />
<!-- 使用 Nacos 注册中心 -->
<dubbo:registry address="nacos://${nacos.address:localhost}:8848" />
<!-- 如果要使用自己创建的命名空间可以使用下面配置 -->
<!-- <dubbo:registry address="nacos://${nacos.address:localhost}:8848?namespace=5cbb70a5-xxx-xxx-xxx-d43479ae0932" /> -->
</beans>
设置指定命名空间
默认使用的为public命名空间
<dubbo:registry address="nacos://${nacos.address:localhost}:8848" />
指定对应的命名空间
如果要使用自己创建的命名空间可以使用下面配置
<dubbo:registry address="nacos://${nacos.address:localhost}:8848?namespace=5cbb70a5-xxx-xxx-xxx-d43479ae0932" />
Spring的yaml配置文件
dubbo.application.name=dubbo-provider-yaml-demo
dubbo.registry.address=nacos://${nacos.address:localhost}:8848
dubbo.consumer.timeout=3000
重启 Dubbo 应用后,您同样也能发现服务提供方和消费方的注册元信息呈现在 Nacos 控制台中:
最新文章
- linux 主机名
- linux 安装nginx
- WinPcap4.13无法安装解决方法
- jQuery ->; 获取元素的各种过滤器
- 删除ubuntu旧版本内核
- hdu3746 KMP
- unity StreamingAssets路径
- 递推DP URAL 1353 Milliard Vasya&#39;s Function
- 【C语言学习】-03 循环结构
- 基于 unity ngui 上的滚动加载__UiVirtual
- LA 3704 (矩阵快速幂 循环矩阵) Cellular Automaton
- VS2010无法断点调试解决办法
- mysql--存储过程(入门篇)
- 假设写一个android桌面滑动切换屏幕的控件(一)
- JavaSE(一) IO类层次关系和各种IO流的用法总结
- BZOJ 4665
- 【译】第40节---EF6-命令监听
- mac 使用
- PPP interface for lwIP
- bzoj2699 更新
热门文章
- 使用pip的方式安装docker-compose
- win10系统应用商店打开后无法联网 代码: 0x80131500 的解决办法
- PPR的断管
- 我的 Kafka 旅程 - Consumer
- 洛谷P4304 TJOI2013 攻击装置 (二分图匹配)
- mujoco d4rl 安装问题
- Linux实战笔记_ 如何远程访问Kali?
- 如何用webgl(three.js)搭建一个3D库房,3D仓库,3D码头,3D集装箱可视化孪生系统——第十五课
- Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification
- Django Admin save 重写 保存