经验谈:什么是微服务?
以下仅为一家之言,不一定科学。以下仅为参考!
微服务,是一组分布式开发的架构模式。像经典的23种设计模式,也是有很多模式:
- 配置服务模式
- 注册与发现服务模式
- 日志服务模式
- 事件总线模式
- 等
微服务开发,主要做两个事情:
- 使用时,选择需要的模式组件即可。就像平时那样,需要哪个包加哪个(没必要全堆上)
- 尽量让服务可独立,服务间用事件总线交互(没有或极少 RPC 依赖)
开发演进:
- 单体引入微服务模式组件(比如,配置服务)
- 不同的业务内容,拆分成多个模块。每个模块,尽量是独立的(即不依赖别的模块)
- 如果人很多,可以让各模块独立为服务。服务之间尽量用事件总线交互(如果没有集群环境,不要独立为服务)
顺带,推荐一本不错的书: