做Java,绕不开Spring。用Java做微服务开发,也绕不开Spring Cloud。随着Dubbo的重启,并交给Apache开源社区维护后,Dubbo生态越来越完善。虽然拿Spring Cloud与Dubbo作比较不合适,但不少朋友在技术选型时会纠结选择Dubbo还是Spring Cloud,Spring Cloud Alibaba的出现,将Dubbo生态完美的与Spring Cloud生态融合在一起。你不用再纠结选择Dubbo还是Spring Cloud,两者可以兼容的很好。
下面罗列下可能会使用到的技术栈:
1. 反向代理:nginx,可做动静分离部署
2. 统一网关:基于spring-cloud-gateway,配合JWT进行的简单的验权操作
3. 分布式事务:Spring Cloud Alibaba Seata,阿里内部分布式事务产品不断迭代演进而来。
4. 降级、限流:hysrix/Spring Cloud Alibaba Sentinel
5. 服务注册\发现:Spring Cloud Alibaba Nacos
6. 分布式配置中心:Spring Cloud Alibaba Nacos
7. 客户端负载均衡:openFeign
8. 异步消息:RocketMQ,阿里开源,交由Apache孵化
9. 链路跟踪:Skywalking,华为开源,交由Apache孵化
10. 分布式缓存:Redis,基础数据缓存
11. 健康监控:spring-boot-admin
12. 分布式锁:Redission
13. 代码简化:Lambok,mybatis-plus,mybatis-generator
14. RPC框架:apache dubbo
微服务近两年的火热,也将很多公司的架构慢慢转向微服务,但要直接上手微服务,还需要能过实操演练,不断提升,才能在工作中游刃有余。
网络上相关资源很多,但大多散乱无章,不成体系,不利于系统性掌握,无法一步步的深入其中,更不能深刻掌握各个组件在项目中实际融合情况。
虽然也有一些案例,但缺少相关的文档细节描述,对初学者而言,仅靠阅读代码,难免会一知半解。于是,我就琢磨写一个贴合实际场景的小例子,业务无须很复杂,能将这一套技术体系串连起来,自己可以跟着动手实操,通过一步一步的上手,加深对技术栈的理解。