文章目录 1.什么是Nacos?2.Nacos Server 单机部署配置2.1. 相关文件2.2. 配置流程2.3. 搭建Nacos-client 服务 3.Nacos Server 集
官方简介:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )
、服务配置(Nacos Config)
和服务管理平台。
Nacos的关键特性包括:
Nacos的核心功能:
服务注册
:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。服务心跳
:在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防服务同步
:Nacos Server集群之间会互相同步服务实例,用来保证服务信息的一致性。服务发现
:服务消费者(Nacos Client)在调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面服务健康检查
:Nacos Server会开启一个定时任务用来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳安装包下载地址:https://github.com/alibaba/Nacos/releases
官方文档: https://nacos.io/zh-cn/docs/deployment.html
版本关系说明: https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
集群
模式,需修改为单机
模式(1)引入依赖
父Pom中支持spring cloud&spring cloud alibaba, 引入依赖
<!--项目依赖管理,父项目只是声明依赖,子项目需要写明需要的依赖(可以省略版本信息)--> <dependencyManagement> <dependencies> <!--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> <!--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> <!--SpringBoot 版本管理器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>${spring.boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
子Pom中引入依赖
<!--nacos 服务注册与发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--负载均衡器--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> <version>3.1.1</version> </dependency>
(2) application.yml中配置
server: port: 8020# 应用名称 (nacos会将该名称当做服务名称)spring: application: name: order-service cloud: nacos: server-addr: 172.16.10.132:8848 # 服务地址 discovery: username: nacos passWord: nacos# namespace: public# ephemeral: false # 永久实例 哪怕宕机了也不会删除该实例?# service: # 默认取${spring.application.name}的值,也可以通过该选项配置 服务名称# group: #默认DEFAULT_GROUP 分组管理
更多Nacos相关配置: https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
(3) 启动springboot应用,nacos管理端界面查看是否成功注册
(4)代码
@RestController@RequestMapping("/order")public class OrderController { @Autowired RestTemplate restTemplate; @RequestMapping("/add") public String add() { System.out.println("下单成功"); String msg = restTemplate.getForObject("Http://stock-service/stock/reduct", String.class); return "Hello World" + msg; }}
注意!!! 需要加上@LoadBalanced
@Bean @LoadBalanced public RestTemplate restTemplate(RestTemplateBuilder builder){ RestTemplate restTemplate = builder.build(); return restTemplate; }
(5) 测试
(1) jdk1.8+
(2) Maven 3.3+
(3) Nginx 作为负载均衡
(4) Mysql
集群部署架构图
(1) 复制 Nacos安装包,修改为 nacos8840、nacos8850、nacos8860
(2) 以nacos8840为例,进入nacos8840目录
(2.1) 修改conf\application.properties的配置,使用外置数据源 要使用mysql5.7+(包括)
(2.2) 将conf\cluster.conf.example复制一份,并改名为cluster.conf,添加节点配置
nacos8850,nacos8860 按同样的方式配置。
(3) 创建mysql数据库,sql文件位置:conf\nacos mysql.sql
(4)如果出现内存不足:修改启动脚本(bin\startup.sh)的JVM参数
5) 分别启动nacos8840,nacos8850,nacos8860
(6) 测试,出现以下界面,则表示Nacos集群已创建成功
登录 http://172.16.10.132:8840/nacos/index.html ,用户名和密码都是nacos
(7) 使用Nginx实现负载均衡
(1) 配置同上。
(2) application.yml中配置
server: port: 8020# 应用名称 (nacos会将该名称当做服务名称)spring: application: name: order-service cloud: nacos: server-addr: 172.16.10.132:8848 # nginx 服务地址 discovery: username: nacos password: nacos# namespace: public# ephemeral: false # 永久实例 哪怕宕机了也不会删除该实例?# service: # 默认取${spring.application.name}的值,也可以通过该选项配置 服务名称# group: #默认DEFAULT_GROUP 分组管理
来源地址:https://blog.csdn.net/pi_tiger/article/details/128544944
--结束END--
本文标题: Nacos Server 部署配置详解
本文链接: https://www.lsjlt.com/news/384535.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0