Java微服务 vs Python微服务 PK
微服务能力 | Java微服务生态 | Python微服务生态 | 备注 |
---|---|---|---|
后台框架/微服务框架 | spring boot/cloud | django/Nameko | java有完整微服务框架方案 |
多环境配置 | 有 | 无 | |
微服务注册发现 | euerka | 无 | 三方注册中心也比较成熟,可以对接,如:nacos、consul |
是否支持REST | 是,基于Ribbon支持多种可插拔的序列化选择 | drf | |
API网关 | Spring Cloud Gateway | 无 | api网关亦可采用三方成熟 |
配置中心 | Spring Cloud Config | 无 | 三方注册中心也比较成熟,可以对接,如:Apollo、Nacos |
-
多环境配置
在Spring Cloud微服务中,我们可以通过spring.profile.active这个参数来指定不同环境的配置,从而实现多环境适配,而在Python中因为没有像Spring Boot这样的框架。我们只能自己来实现了。 -
服务注册与发现
目前微服务注册发现中间件分别有:Etcd、Eureka、Consul、ZooKeeper,四者的比较如下:
微服务注册发现中间件 Consul 是 Google 开源的一个使用 Go 语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等)。 -
Spring Cloud Gateway
Spring Cloud Gateway 是Spring Cloud 生态全新项目,基于Spring 5、Spring Boot 2.X、Project Reactor实现的API网关,旨在为微服务提供简单高效的API路由管理方法。
Spring Cloud Gateway 作为Spring Cloud 生态中的网关,目标是代替Zuul 1.X。 -
nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。nacos官网
总结: 微服务框架这块java生态比较完善和成熟。python生态自身并没有相关一整套解决方案,需要适配结合三方服务或模块。
python也有一些微服务框架,都不太完善和成熟,目前python更普遍的做法常用web框架(如flask、django等)和grpc实现微服务。
参考
关于Python构建微服务的思考(一)
参考URL: https://www.cnblogs.com/yushenglin/p/10838253.html
python为什么不出微服务框架_面试官几个 Dubbo 微服务框架问题,把我整懵了?
参考URL: https://blog.csdn.net/weixin_39709194
Java微服务 vs Go微服务,究竟谁更强!?
参考URL: https://zhuanlan.zhihu.com/p/344280055