玩转微服务
微服务架构已是应用系统架构落地的首选架构,为了更好的驾驭它。将分专题,围绕Java 生态,以SpringCloud 为代表的微服务体系为例,我们一起来玩转微服务。
1. 开发篇
实际开发过程中,我们需要考虑的问题很多,作为基础框架层面,我们需要知道,怎么让后续的变更,问题定位更快捷。
- 怎么快速构建框架底座
- 使用什么数据库线程池
- 日志框架怎么选型,怎么配置,怎么处理敏感信息
- 持久层怎么选型
- 怎么动态修改连接池
- 怎么动态修改静态变量
- 怎么定时刷新本地缓存
- ADD ANYTHING IF NEEDS
2. 测试篇
- 怎么结合做Mock测试
- 怎么做单元测试
- 怎么做自动化测试
- ADD ANYTHING IF NEEDS
3. 部署/发布篇
微服务部署/发布较单体系统粒度更细,我们需要做好部署/发布机制,以更小的试错成本,获得更快的市场响应。
- 怎么选型CI/CD
- 怎么结合容器化发布
- 怎么做灰度发布,怎么做链路灰度发布
- 怎么做到随系统压力弹性扩所容
- ADD ANYTHING IF NEEDS
4. 配置篇
灵活的框架,配置必然比较就多,默认的配置,往往不能迸发出应用最大的性能,我们需要适当的调整,磨合得出最佳配置。
- 数据库连接池怎么配置
- 中间件连接池怎么配置(redis/mongodb)
- Ribbon(httpClient)的配置
- Hystrix 怎么配置
- http 请求客户端各种超时配置说明
- ADD ANYTHING IF NEEDS
5. 监控篇
单体系统拆分后,服务间的调用变的更复杂,服务链路变的更长,发生问题的几率变的更高,怎么保障我们系统的稳定性变得尤为重要。
- 我们需要哪些监控指标
- 我们能用哪些监控工具
- 怎么做到监控指标的自动调整
- 怎么实现调用链的监控
- ADD ANYTHING IF NEEDS
6. 问题分析篇
出问题,根据以前的经验,80%集中在应用CPU,内存上,中间件/DB 连接上等等,这些问题怎么快速恢复,去分析定位,以下能力是必须的。
- 怎么使用arthas
- 怎么结合heapdump 分析thread 阻塞
- 怎么流量复制
- ADD ANYTHING IF NEEDS