springcloud-nacos

nacos主要用于服务注册于发现,在第一篇微服务架构中讲解到eureka注册中心,但是euerka它现在已经闭源了,好像是不进行维护了,而且euerka只提供服务注册于发现,它的可视化也是英文的,不利于我们问题分析,nacos就特别适合我们了,它最重要的两大模块为:微服务注册管理,统一配置中心,可视化页面是中文版可操作,并且可以优雅的进行服务上线于下线,同时提供了较为详细的服务状态,集群状态查看等,nacos官网为:https://nacos.io/zh-cn/docs/what-is-nacos.html,大家可以结合我的配置文件于nacos官网的开发文档进行学习。
首先我们需要下载nacos服务包:
在这里插入图片描述
我这边数据存储在mysql所以我会在conf包中的application.properties文件配置数据库连接:
在这里插入图片描述
然后在mysql库中导入对应的表结构,表文件sql在conf包下有一个nacos-mysql.sql文件,导入后的表结构为:

在这里插入图片描述
接下来我们启动nacos:
在这里插入图片描述
启动时会弹出前端显示,我们在看那里详细信息时,可以看到访问地址:
在这里插入图片描述
在这里插入图片描述

进入该页面,有几个列表,我们开始分别介绍一下这些列表的作用啦,首先我们配置nacos客户端,导入jar,注意nacos有版本问题,大家可以跟着我的pom进行导入就好了:

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
    </parent>
    <artifactId>servce-nacos</artifactId>
    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

yml配置:

spring:
  application:
    name: servce-nacos
  cloud:
    nacos:
#      核心配置,大家可以看官网的配置情况
      discovery:
        server-addr: 127.0.0.1:8848
        weight: 2
#      配置中心
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
server:
  port: 9070
#debug: true

启动类的配置:

@SpringBootApplication
@EnableDiscoveryClient
public class ServiceNacosApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServiceNacosApplication.class, args);
    }

    @Bean
    @LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

controller层配置:

@RestController
@RequestMapping("/order")
//自动更新配置
@RefreshScope
public class OrderContoller {

    @Value("${test}")
    private String test;

    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping("getConfig")
    public String getConfig() {
        System.out.println(test);
        return test;
    }

    @GetMapping("/getOrder")
    public Map<String, Object> getOrder(Integer id) {
        Map<String, Object> map = new HashMap<>();
        System.out.println("调用了该服务");
        return map;
    }

    @GetMapping("/getOrders")
    public Map<String, Object> getOrders(Integer id) {
        Map<String, Object> map = restTemplate.getForObject("http://servce-nacos/order/getOrder?id=" + id, Map.class);
        return map;
    }
}

我们开始启动,启动成功后可以在nacos后台查看服务列表:
在这里插入图片描述
我们可以点击详情,我们可以修改它的分组,同时也可以让服务进行下线,那么下线的话,该服务是不可调用的,同时有个权重,也就是调用的优先级,我这边在nacos-service中就注册了一个ip为169.254.179.56的服务,我们可以在nacos-service中注册多个服务同时设置不同的权重进行配合使用:
在这里插入图片描述
这算是第一块服务的管理。
第二块统一配置中心,我这边配置了一条配置数据:
在这里插入图片描述
在这里插入图片描述

这个配置中心需要注意几个点:
1:data ID需要跟你的服务名称相同,.yaml后缀是跟你的项目配置文件bootstrap.yml中的config:
server-addr: 127.0.0.1:8848
file-extension: yaml
一致,同时在配置内容时需要选择YAML文件配置完毕后可以访问ip地址:/order/getConfig地址,我这边配置的test是在这里插入图片描述
我访问的值为,说明我这边已经成功获取到统一配置文件内容了:
在这里插入图片描述
配置管理中还有一个历史版本,历史版本是记录你所有修改前的配置文件,你可以回滚到修改前的配置文件,这边就不继续操作了。整体就这两大块,还是比较简单的,除了配置不同,其它的微服务组件跟eureka使用是一样的,还有一个集群搭建,搭建多个nacos服务,防止nacos宕机导致整个微服务不可用问题,这边直接看文档https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html:
在这里插入图片描述
使用官方文档进行微服务ip端口配置即可,在nacos后台菜单中可以进行管理:
在这里插入图片描述
这边就不继续测试了,大家可以自己玩玩。功能还是十分强悍的。推荐使用哟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
这个错误可能是由于无法建立连接而引起的。根据提供的引用内容,您提到了Spring Cloud中的Nacos服务发现和配置中心以及消息总线功能。通过引用中提到的jar包、API文档和源代码可以看出,您在使用Spring Cloud Alibaba Nacos Discovery作为服务发现和配置中心的解决方案。而引用中的场景描述了如何使用Spring Cloud Bus来触发服务端的配置刷新,并通过发送请求到`/actuator/bus-refresh`端点来更新所有客户端的配置。最后,引用中的命令展示了使用curl命令来发送POST请求到本地主机的3344端口。 根据这些信息,`java.net.ConnectException: Connection refused: connect`错误通常是由于无法与指定的主机建立连接而引起的。这可能是由于以下原因之一导致的: 1. 主机没有在指定的端口上监听连接请求。 2. 防火墙或网络配置阻止了与指定主机的连接。 3. 主机不可达或不可用。 要解决这个问题,您可以采取以下几个步骤: 1. 确保Nacos服务正常运行并监听正确的端口。您可以检查Nacos的配置和日志文件以确认端口和网络配置是否正确。 2. 确保您的应用程序能够访问Nacos服务器所在的主机。您可以尝试通过ping命令或telnet命令来测试与主机的连接。 3. 检查防火墙或网络配置,确保允许与Nacos服务器的通信。 4. 如果您使用的是本地主机进行开发和测试,请检查本地主机上的端口是否被其他应用程序占用。 如果您已经尝试了上述步骤但问题仍然存在,那么可能需要更详细的调试和排查了。您可以查看应用程序的日志文件以获取更多关于连接错误的详细信息,并考虑寻求相关专业人士的帮助来解决该问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [spring-cloud-starter-alibaba-nacos-discovery-2021.1-文档-中文版.zip](https://download.csdn.net/download/qq_36462452/85331688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [java.net.ConnectException: Connection refused: connect](https://blog.csdn.net/qq_40615403/article/details/108951882)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值