微服务入门指南
1. 应对复杂性
大型企业系统需求众多,微服务的出现旨在通过遵循适当的架构准则和既定模式,将额外的复杂性封装在多个小型微服务中,共同实现系统目标。理想情况下,服务开发者大部分时间可免受整个系统的干扰,但要实现适当的隔离并支持在整个系统环境中进行测试和调试,需要付出大量努力。
1.1 使微服务自治
应对复杂性的最佳方法之一是让微服务自治。自治服务不依赖系统中的其他服务或第三方服务,它管理自己的状态,很大程度上无需了解系统的其他部分。可以将自治微服务类比为不可变函数,它们不会改变系统中其他组件的状态。这种服务的优势在于,无论系统的其他部分如何演变,以及其他服务如何使用它们,其复杂性始终保持不变。
1.2 使用接口和契约
接口是软件工程师的得力工具。一旦将某个功能暴露为接口,就可以自由更改其背后的实现。接口是在单个进程中使用的结构,对于测试与其他组件的交互非常有用,而在基于微服务的系统中,这种交互十分频繁。
以下是示例应用程序的一个接口:
type UserManager interface {
Register(user User) error
Login(username string, authToken string) (session string, err error)
Logout(username string, session string) error
}
UserManager 接口定义了几个方法及其输入和输出,但未指
超级会员免费看
订阅专栏 解锁全文
894

被折叠的 条评论
为什么被折叠?



