阿里云:
Go的微服务框架,在哪里?
天象,调用链路监控(非常重要),开源的如opentracing
RPC,Dubbo
为啥要微服务?
源自业务的复杂度提升,团队的应对策略也在发生相应调整,微服务架构的引入比较自然。
dubbo不适合数据量很大的情况,因为它是用单个的长连接
阿里云某团队编程语言构成
dubbo的interface IDL是java定义的,这是一个缺点
go-torch用于性能调优,比较好用
gRPC
专门强调了Http/2
go-kit,微服务工具箱
Tips:设计respones的时候,把http做一个很好的映射,便于与gRPC配合
微服务实践经验
CoreOS:
有状态的部署比较困难
CoreOS提供了Operator来做这事,模拟一个运维人员(咋模拟?写规则,用一系列API来做这些规则?)
陈述式的Cloud Native式的API,说明要怎样,而不是怎么做
Operator未来应当是以应用和服务为中心的自动化
哔哩哔哩:
Go微服务实战
- 搞清楚业务的边界
- 农村包围城市,先搞周边的业务
- 考虑升级兼容性
怎样隔离?
- 先买服务器,重新部署
- 内外网隔离
- 搞清业务的逻辑单元
RPC框架
为减少gc的压力,将调用方式由指针修改为其它
高可用
-
先做隔离
-
超时
-
限流
-
降级
-
容错
中间件
-
配置中心
-
调用链跟踪
- 平级依赖变为层级依赖,可减少一些连接数
持续集成和交付
服务版本号在RPC或http的url中会包含
使用GitLab
运维
DevOps是微服务必须的,也需要各部门共同努力