WHAT - 简单服务发现
文章目录
- 简单理解
- 举个例子
- 简单服务发现方式
- 1. 静态配置(最简单,但不灵活)
- 2. DNS 发现
- 3. 使用服务注册中心(稍高级)
- 总结
“简单服务发现”(Simple Service Discovery)通常指的是一种让系统中的服务自动找到彼此的机制,特别在 微服务架构 和 分布式系统 中非常常见。
简单理解
服务发现就像一个“电话本”或“联系人列表”,让服务A知道如何找到服务B,而不需要硬编码IP或端口。
举个例子
假设你有两个服务:
- 用户服务(User Service)
- 订单服务(Order Service)
订单服务需要请求用户服务的数据,但用户服务的 IP 地址可能会变化(比如在容器环境中重启后)。
这时候就需要 服务发现系统 来告诉订单服务:“用户服务现在在这里”。
简单服务发现方式
1. 静态配置(最简单,但不灵活)
直接在配置文件里写死服务的地址:
userService: http://192.168.1.10:8080
缺点:服务 IP 变了就要手动更新。
2. DNS 发现
服务注册在一个域名下,通过 DNS 查找:
curl http://user-service.default.svc.cluster.local
常用于 Kubernetes。
3. 使用服务注册中心(稍高级)
服务启动时自动向注册中心注册自己的地址:
-
注册中心:Consul、Eureka、etcd、Zookeeper
-
查询流程:
- 服务A向注册中心注册:我在
10.0.0.1:8080
- 服务B查询注册中心:用户服务在哪?
- 注册中心返回地址:
10.0.0.1:8080
- 服务A向注册中心注册:我在
这种方式可以动态感知服务上下线,更适合大型系统。
总结
类型 | 描述 | 适合场景 |
---|---|---|
静态配置 | 写死服务地址 | 小型项目、测试 |
DNS 服务发现 | 通过服务名称解析 | Kubernetes 等平台 |
注册中心服务发现 | 服务自动注册和发现 | 微服务架构、大型系统 |