千错万错都是没有服务治理的错之----一篇搞懂所有的注册中心(下)

上一节我们介绍了Eureka,Zookeeper和Cansul这三个老朋友,这一节我们就重点的介绍由阿里巴巴出品的Nacos
他也是国内用于替换Eureka 最好的神器 我个人理解他和Cansul有异曲同工之妙

什么是 Nacos

服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理;
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos 的关键特性包括:

  • 服务发现和服务健康监测
  • 动态配置服务
  • 动态 DNS 服务
  • 服务及其元数据管理

也就是说Nacos就是注册中心 + 配置中心的组合 <===> Nacos = Eureka+Config +Bus

Nacos 地图

在这里插入图片描述

Nacos 生态图

在这里插入图片描述
从Nacos 全景图可以看出,Nacos 可以无缝支持一些主流的开源生态,我们也能看出来Nacos 的强大

以上的介绍也都来自于Nacos的 官方文档 有兴趣的小伙伴可以自行查看

安装并运行Nacos

首先我们要保证本地Java8+Maven环境已经OK

先从官网下载Nacos https://github.com/alibaba/nacos/releases 选择一个你要使用的版本下载即可;

解压安装包,直接运行bin目录下的startup.cmd;

命令运行成功后直接访问 http://localhost:8848/nacos 默认账号密码都是nacos

以上一个单机版的Nacos 就已经安装完毕了,是不是巨简单。
在这里插入图片描述

牛刀小试

搭建基于Nacos的服务提供者

① 创建模块(注册中心)

② 引入相关依赖

    <dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

③ 完成相关配置

server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

management:
  endpoints:
    web:
      exposure:
        include: '*'

④ 编写启动类

@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain9001
{
    public static void main(String[] args) {
            SpringApplication.run(PaymentMain9001.class, args);
    }
}

⑤ 编写业务类

@RestController
public class PaymentController
{
    @Value("${server.port}")
    private String serverPort;
    @GetMapping(value = "/payment/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id)
    {
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}

查看控制台
在这里插入图片描述

搭建基于Nacos的服务消费方

① 创建消费方模块

② 引入相关依赖

    <dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

③ 完成相关配置

server:
  port: 83

spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
  nacos-user-service: http://nacos-payment-provider 

④ 编写启动类

@EnableDiscoveryClient
@SpringBootApplication
public class OrderNacosMain83
{
    public static void main(String[] args)
    {
        SpringApplication.run(OrderNacosMain83.class,args);
    }
} 

⑤ 编写业务类

@RestController
public class PaymentController
{
    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/{id}")
    public String getPayment(@PathVariable("id") Integer id)
    {
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}
@Configuration
public class ApplicationContextBean
{
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate()
    {
        return new RestTemplate();
    }
}

@RestController
public class OrderNacosController
{
    @Resource
    private RestTemplate restTemplate;

    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @GetMapping("/consumer/payment/nacos/{id}")
    public String paymentInfo(@PathVariable("id") Long id)
    {
        return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
    }

}

此处为了演示nacos的负载均衡,参照9001新建9002服务
在这里插入图片描述
访问 http://localhost:83/consumer/payment/nacos/13 会发现轮询负载已生效(jar包里包含了Ribbon)

各种注册中心对比
在这里插入图片描述
从上面我们可以看出 Nacos 支持CP和AP的切换
一般来说,
如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如 Spring cloud 和 Dubbo 服务,都适用于AP模式,AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。

如果需要在服务级别编辑或者存储配置信息,那么 CP 是必须,K8S服务和DNS服务则适用于CP模式。
CP模式下则支持注册持久化实例,此时则是以 Raft 协议为集群运行模式,该模式下注册实例之前必须先注册服务,如果服务不存在,则会返回错误。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《数据湖治理中心-数据治理方法论(2021)(22页)》是一本介绍数据湖治理方法的文件。数据湖治理是管理和维护数据湖的过程,以确保数据湖中的数据质量、安全性和可用性。该方法论提供了几个关键的数据治理方法: 首先,数据分类和标准化是数据湖治理的重要步骤。通过对数据进行分类,可以根据其用途和属性确定相应的数据治理策略。同时,标准化数据格式和命名规范可以提高数据的一致性和可理解性。 其次,数据访问和权限管理是数据湖治理的核心。通过定义合适的数据访问权限,可以控制数据的使用范围和操作权限,从而保护数据安全和隐私。同时,数据访问日志和审计机制可以跟踪数据的使用记录,确保数据使用的合规性。 此外,数据质量管理也是数据湖治理的重要环节。通过数据质量评估和监控,可以及时发现和纠正数据质量问题,确保数据的准确性、完整性和一致性。数据质量指标和数据质量规则可以作为评估和监控数据质量的依据。 最后,数据生命周期管理是数据湖治理的关键环节。数据湖中的数据可能会不断变化和演化,因此需要定义数据的生命周期,包括数据的采集、存储、清洗、转换和删除等不同阶段。同时,数据备份和灾备策略也是确保数据可用性和可恢复性的重要措施。 综上所述,《数据湖治理中心-数据治理方法论(2021)(22页)》提供了一套系统的数据湖治理方法,包括数据分类和标准化、数据访问和权限管理、数据质量管理和数据生命周期管理等关键步骤,有助于提升数据湖的管理和维护水平。 ### 回答2: 《数据湖治理中心-数据治理方法论(2021)(22页).pdf》是关于数据湖治理中心和数据治理方法论的一篇论文或者文档。 数据湖治理中心是一个机构或者平台,负责管理和监督数据湖的建设和运营。数据湖是指一个集中存储各种结构化和非结构化数据的大型存储系统,其中数据以原始的、未经处理的形式保存。数据湖治理中心的主要任务是确保数据湖中的数据质量、数据安全和数据可用性。 数据治理方法论是指一套用于管理和治理数据的方法和原则。它包括数据质量管理、数据安全管理、数据隐私管理、数据备份恢复等方面的内容。这些方法和原则可以帮助组织建立有效的数据管理框架和策略,以保证数据的准确性、完整性和可靠性。 在《数据湖治理中心-数据治理方法论(2021)(22页).pdf》中,可能会介绍以下内容: 1. 数据湖治理中心的组织结构和职责,包括数据湖的架构设计、数据采集和数据处理流程,以及数据湖的监控和维护工作。 2. 数据治理方法论的基本原则和步骤,例如制定数据策略、数据分类和分级、数据标准化、数据质量管理、数据安全管理等。 3. 数据湖治理中心与业务部门的协作和沟通,以便更好地与业务需求和业务流程对接,以实现数据的深度利用和价值挖掘。 4. 数据湖治理中心的技术和工具,例如数据湖平台、数据集成工具、数据质量工具、数据安全工具等,用于支持数据湖的建设和管理工作。 综上所述,《数据湖治理中心-数据治理方法论(2021)(22页).pdf》是一份关于数据湖治理中心和数据治理方法论的文档,主要介绍了数据湖治理中心的职责和组织结构,以及数据治理方法论的基本原则和步骤。通过这份文档,读者可以了解如何有效地管理和治理数据湖,以实现数据的准确性、完整性和可靠性。 ### 回答3: 《数据湖治理中心-数据治理方法论(2021)(22页).pdf》是一份介绍数据湖治理方法论的文档。数据湖治理是指对数据湖中的数据进行有效管理和治理,以确保数据的质量、准确性和安全性。 该文档主要包含以下内容: 1. 数据湖概述:介绍了数据湖的基本概念和特点,以及数据湖治理的必要性和重要性。 2. 数据湖治理框架:提出了一个完整的数据湖治理框架,包括决策层、管理层、执行层和监控层。每一层都有具体的职责和任务,以确保数据湖的有效管理和治理。 3. 数据治理方法论:介绍了数据治理的一些基本原则和方法。其中涉及到数据质量管理、元数据管理、数据安全管理、数据访问和权限管理等方面的内容。 4. 数据湖治理工具和技术:介绍了一些常用的数据湖治理工具和技术,包括数据质量工具、元数据管理工具、数据安全工具等。通过使用这些工具和技术,可以更好地进行数据湖治理工作。 5. 治理案例分析:提供了一些实际案例分析,展示了如何应用数据湖治理方法论解决实际问题。这些案例可以帮助读者更好地理解和应用数据湖治理方法论。 总的来说,《数据湖治理中心-数据治理方法论(2021)(22页).pdf》是一份系统、全面地介绍数据湖治理方法论的文档。通过学习和应用其中的内容,可以帮助组织更好地管理和治理数据湖,提高数据的质量和价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zyyn_未来可期

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

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

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

打赏作者

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

抵扣说明:

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

余额充值