从成本角度看Java微服务

近年来,微服务因其良好的灵活性和伸缩性等特点备受追捧,很多公司开始采用微服务架构或将已有的单体系统改造成微服务。IBM也于近日开源了轻量级Java微服务应用服务器 Open Liberty 。但是采用Java开发微服务真的是最好的选择吗?来自JPmorgan的高级工程师 Elliot Forbes基于自身的经历,从成本角度进行 分析 ,并与其他语言的微服务做了对比,很好地回答了这个问题。

Elliot所在的团队最初使用Java开发了一个单体系统。他们的生产环境总共有12台服务器,每台服务器上部署了20到30个实例,每个实例使用8G内存。这样,总共耗费了1.5T到2.5T内存。后来,他们将单体拆解成5个微服务,并使用容器来部署微服务。每个容器运行一个微服务,因为是基于JVM的,所以至少需要1G内存。原先的一个单体实例使用8G内存,拆成微服务后总共只需要5G到6G内存,省下了至少2G内存。

但事情不会就这么简单。他们当中的一个微服务负责对外提供REST API,是整个系统最为关键的部分。为了提高可用性,他们在欧洲、北美和亚洲分别部署了4个实例。这样一来,这个微服务总共使用了12G内存,所以整体的内存使用反而增加了不少。java交流群669823128

而如果使用Go语言替代Java开发微服务会怎样呢?每个微服务的内存可以从1G降到64M,那么之前那个部署了12个实例的微服务总共只需要768M内存,这比之前的单个Java微服务实例用的内存还要少。

假设微服务是部署在谷歌云平台上的,按照GCP的收费标准,1G内存每小时收费在1美分到2美分之间,一年大概需要87美元到175美元,那么12G内存一年至少要花费1000美元。5个微服务加起来一年至少需要5000美元。而如果使用Go语言,这个数字差不多在500美元左右,可以说是减少了一个数量级。

不过Elliot也解释说,成本只是在采用微服务时需要考虑的众多因素当中的一个。除了成本,还需要考虑开发语言适用性等方面的问题。不过对于大型企业来说,他们拥有大量的微服务,成本仍然是一个重要的考虑因素,毕竟一年下来,有可能为他们节省数百万美元。

java交流群669823128

时间: 2024-07-30 03:50:59

从成本角度看Java微服务的相关文章

Java微服务框架一览

引言:本文首先简单介绍了微服务的概念以及使用微服务所能带来的优势,然后结合实例介绍了几个常见的Java微服务框架. 微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大.更复杂的应用程序,而这些应用程序作为微小服务的组合能够更好地得以开发和管理.这些微小的服务可以组合在一起工作,并实现更大.应用更广泛的功能.现在出现了很多的工具来满足使用逐段法而不是一次性地设计和构建应用程序的所有需求.今天,我们来看一下什么是微服务.使用微服务的好处,以及几个代码示例. 微服务是什么? 微服务是一种面向

最热门的13个Java微服务框架(内附java学习教程分享)

曾经的服务器领域有许多不同的芯片架构和操作系统,经过长期发展,Java的"一次编译,到处运行"使得它在服务器领域找到一席之地,成为程序员们的最爱 本文,我们将和大家分享13个可靠的Java微服务架构最后,如果大家如果在自学遇到困难,想找一个java的学习环境,可以加入我们的java学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题. 1.Spring Boot Java构建Spring应用程序已经有很长一段时间了,Spring Boot是Spring的一个特定版本,它通过

Java微服务新生代之Nacos

前言 从 2017 年底 Java 开发领域使用最广的 RPC 框架 Dubbo 开启重新更新维护之路开始,阿里巴巴为打造 Dubbo 微服务生态持续开源了 Sentinel,Nacos,Seata 等微服务中间件框架,并且推出了 Spring Cloud Alibaba 来提供微服务开发的一站式解决方案,阿里巴巴在 Java 社区持续活跃起来,也为 Java 微服务开发注入了新的活力. 本篇文章将重点学习微服务组件 Nacos 作为注册中心的功能和用法,Nacos 是阿里巴巴于 2018 年

从JVM的角度看JAVA代码--代码优化

从JVM的角度看JAVA代码–代码优化 从JVM的角度看JAVA代码代码优化 片段一反复计算 片段二反复比較 在JVM载入优化为class文件,运行class文件时,会有JIT(Just-In-Time)的介入,它会做进一步优化,这样就须要考虑是否可能被JIT优化. 片段一:反复计算 // 反复计算,这里b()被计算两次 Object a = b() == null ? "" : b(); // 优化代码 Object c = b(); Object a = c == null ? &

java微服务架构的分布式事务解决方案

java微服务架构的分布式事务解决方案 课程目录如下: 1.课程介绍20分钟2.解决方案的效果演示(结合支付系统真实应用场景)45分钟3.常用的分布式事务解决方案介绍47分钟4.消息发送一致性(可靠消息的前提保障)20分钟5.消息发送一致性的异常流程处理16分钟6.常规MQ队列消息的处理流程和特点12分钟7.消息重复发送问题及业务接口的幂等性设计18分钟8.可靠消息最终一致性方案1(本地消息服务)的设计19分钟9.可靠消息最终一致性方案2(独立消息服务)的设计24分钟10.可靠消息服务的设计与实

Java微服务实践—Spring Boot系列

Java微服务实践-Spring Boot系列网盘地址:https://pan.baidu.com/s/1aMqPO4pXLeXDHvRuze-JWw 密码: j62z备用地址(腾讯微云):https://share.weiyun.com/c74335d7e383158ee3c4aaf193d471ed 密码:r5gqsk 原文地址:http://blog.51cto.com/12218470/2088359

JAVA微服务架构视频教程

教程目录:┣━JAVA微服务架构视频教程┃ ┣━Java教程:第1章 微服务简介 4┃ ┃ ┣━Java教程:001构建单体应用┃ ┃ ┣━Java教程:002微服务解决复杂问题┃ ┃ ┣━Java教程:003微服务的优点┃ ┃ ┣━Java教程:004微服务的缺点┃ ┣━Java教程:第2章 Linux使用 19┃ ┃ ┣━Java教程:005Linux 简介┃ ┃ ┣━Java教程:006Linux 与 Windows 比较┃ ┃ ┣━Java教程:007安装 Linux┃ ┃ ┣━Java

随手看的一本书《java微服务》,测试成功了其中的第一个样例

静态语言,JAVA应该多了解,结合微服务,DOCKER,再搞搞SPRING CLOUD,就能跟上时代了. 对了,链一个买书的地址: https://item.jd.com/12089180.html (我有时就不了解,一个程序员的收入,买一些书就那么小心呢?呵呵,收入都作什么去了??:)) pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven

java微服务分布式调用链APM监控

几种分布式调用链监控组件的比较微服务架构下,服务按照不同的维度进行拆分,一次请求请求往往需要涉及到多个服务.互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发.可能使用不同的编程语言来实现.有可能布在了几千台服务器,横跨多个不同的数据中心.因此,就需要一些可以帮助理解系统行为.用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题. 分布式调用链监控组件在这样的环境下产生了.最出名的是谷歌公开的论文提到的 Dapper .开发Dapper是为了收集更多的复杂分