暂无个人介绍
2022年05月
Properties properties = new Properties(); properties.setProperty(PropertyKeyConst.SERVER_ADDR, "mse-xxxx-p.nacos-ans.mse.aliyuncs.com:8848");
String serviceName = "nacos.test.service.1"; String instanceIp = InetAddress.getLocalHost().getHostAddress(); int instancePort = 8080;
namingService.registerInstance(serviceName, instanceIp, instancePort);
System.out.println(namingService.getAllInstances(serviceName));
Dubbo。将接口三元组(接口名+分组名+版本号)映射为 Service,将实例 IP 和端口号定义为 Instance。一个典型的注册在 Nacos 中的 Dubbo 服务:providers:com.alibaba.mse.EchoService:1.0.0:DUBBO。 Spring Cloud。将应用名映射为 Service,将实例 IP 和端口号定义为 Instance。一个典型的注册在 Nacos 中的 Spring Cloud 服务:helloApp。
Service 和 Instance
Nacos 设计了自己的「服务模型」保障了使用者在正确地使用 Nacos。
一是用户视角,一个内核视角
服务注册发现(Naming)和配置中心(Config)
阿里云的 Kubernetes 集群,是在 VPC 网络,也就是虚拟局域网上创建的。
API 分组就是集群 API 的分类机制,比如网络相关的 API 就在 networking 这个组里。而通过网络 API 分组创建出来的资源就属于这个组。
Proxy 负责把服务的定义落实成具体的 iptables 或者 ipvs 规则。
Kubelet 负责管理工作节点,包括应用在节点上启动和停止之类的工作。
vvKubernetes 集群用到了 ECS 云服务器,VPC 虚拟网络,负载均衡,安全组,日志服务,云监控,中间件产品像 ahas 和 arms,服务网格,弹性伸缩等等大量云产品。
包括了内核,虚拟化,容器,软件定义网络 SDN,存储,安全,甚至可信计算等,绝对可以称得上全栈技术。
Kubernetes 实际上源自 Google 的集群自动化管理和调度系统 Borg,也就是这本书里讲的运维方法所针对的对象。
我们也可以把它理解为一个操作系统。这个操作系统说白了也是一个抽象层,它向下管理的硬件,不是内存或者 CPU 这种硬件,而是多台计算机组成的集群
healthy 实例健康状态。标识该实例是否健康,一般心跳健康检查会自动更新该字段。 enable 是否启用。它跟 healthy 区别在于,healthy 一般是由内核健康检查更新,而 enable 更多是业务语义偏多,可以完全根据业务场景操控。例如在 Dubbo 中,一般使用该字段标识某个实例 IP 的上下线状态。 ephemeral 临时实例还是持久化实例。非常关键的一个字段,需要对 Nacos 有较为深入的了解才能够理解该字段的含义。区别在于,心跳检测失败一定时间之后,实例是自动下线还是标记为不健康。一般在注册中心场景下,会使用临时实例。这样心跳检测失败之后,可以让消费者及时收到下线通知;而在 DNS 模式下,使用持久化实例较多。在《一文详解 Nacos 高可用特性》中我也介绍过,该字段还会影响到 Nacos 的一致性协议。 metadata 元数据。一个 map 结构,可以存储实例的自定义扩展信息,例如机房信息,路由标签,应用信息,权重信息等。
healthy 实例健康状态。标识该实例是否健康,一般心跳健康检查会自动更新该字段。 enable 是否启用。它跟 healthy 区别在于,healthy 一般是由内核健康检查更新,而 enable 更多是业务语义偏多,可以完全根据业务场景操控。例如在 Dubbo 中,一般使用该字段标识某个实例 IP 的上下线状态。 ephemeral 临时实例还是持久化实例。非常关键的一个字段,需要对 Nacos 有较为深入的了解才能够理解该字段的含义。区别在于,心跳检测失败一定时间之后,实例是自动下线还是标记为不健康。一般在注册中心场景下,会使用临时实例。这样心跳检测失败之后,可以让消费者及时收到下线通知;而在 DNS 模式下,使用持久化实例较多。在《一文详解 Nacos 高可用特性》中我也介绍过,该字段还会影响到 Nacos 的一致性协议。 metadata 元数据。一个 map 结构,可以存储实例的自定义扩展信息,例如机房信息,路由标签,应用信息,权重信息等。
Nacos 的服务随着实例的注册而存在,并随着所有实例的注销而消亡
Cluster 集群隔离 Group 分组隔离 Namespace 命名空间隔离
一个是查询所有注册的实例,一个是只查询健康且上线的实例,还有一个是获取一个健康且上线的实例。
Y组合子是Lambda演算的一部分,也是函数式编程的理论基础。