(运维篇)MySQL 主从复制探秘
(高级篇)MySQL 并发控制—— MVCC 与锁
初识 Nacos
前言
随着技术的不断发展,后端领域慢慢摒弃传统的单体架构,转而开始流行微服务架构模式。
微服务中将服务按业务拆分的理念确实不错,但福祸相依,单体架构转换为微服务架构的过程中,不可避免的会遇到一些问题。
我们首先遇到的一个问题就是——如何去管理这些拆分出来的服务?
假设现在一个系统存在 A、B、C 三个应用,每个应用部署三份,则现在存在了 A1、A2、A3、B1、B2、B3、C1、C2、C3 共九个应用。
这些应用并非各为孤岛,而是彼此联系,需要相互调用,比如 A –> B –> C( A 应用需要调用 B,B 调用 C)。
在调用的时间轴中,不得不考虑以下问题:
- A 应当去调用谁,哪个 B?B 调用 C 同理,人为手动的去管理调用关系吗?这明显不科学
- A 调用 B 的时候,应当选择 B1、B2,还是 B3?不可能一直调用一个吧?那么应当采取什么路由策略?
- 若调用后某个应用宕机了,再次调用时必然失败,此时是否只允许调用可用的呢?
经以上分析,我们发现——微服务中迫切需要一个组件来管理大量微服务,这个组件一般被称为注册中心。
除此之外,我们还发现多应用中,冗余了大量重复的的配置属性,比如说:
- 数据库的连接信息
- 定时任务的启动信息
- 某些特定功能的开关属性
- ……
这些属性部分重复且应用一经发布若想二次修改,则必须重启应用才能生效,另外,不同环境的各种属性配置又不一样。
那么,思考这些问题:
- 类似 Java 的继承特性,重复的属性能否抽离共用?
- 配置热部署,属性是否支持修改不重启即可生效?
- 能否支持多环境,甚至异地?
经以上分析,我们发现——微服务中迫切需要一个组件来管理大量微服务的配置属性,这个组件一般被称为配置中心。
那么,市面上有没有一个框架,既可当成注册中心,又可充当配置中心,两全其美的解决上面我们遇到的问题呢?
当然是有滴啦,Nacos 就可以充当这两个角色,并且其更加强大。