服务器 > 服务器 > 微服务

Nacos Server部署配置全过程

18人参与 2025-10-16 微服务

1.什么是nacos?

官方简介:一个更易于构建云原生应用的动态服务发现(nacos discovery )服务配置(nacos config)和服务管理平台。

nacos的关键特性包括

nacos的核心功能

2.nacos server 单机部署配置

2.1. 相关文件

2.2. 配置流程

2.3. 搭建nacos-client 服务

(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) 测试

3.nacos server 集群部署配置(windows环境)

3.1.环境准备

(1) jdk1.8+

(2) maven 3.3+

(3) nginx 作为负载均衡

(4) mysql

3.2. 配置流程

(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实现负载均衡

3.3. 搭建nacos-client 服务

(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  分组管理

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

JPA+Enum枚举实现步骤流程

10-16

Jpa中自定义枚举映射方式

10-16

使用Nacos打造微服务配置中心详解

10-16

解决若依微服务框架启动报错的问题

08-08

微服务:一篇博客带你学会Feign(远程调用、自定义配置、性能优化、常用方式)

08-06

入门级微服务项目搭建:六、集成Gateway

08-06

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论