最全php调用go微服务,基于go搭建微服务实践教程 (一)(2),2024年最新阿里技术专家

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

为什么我们要用go来写微服务?除啦有意思和有效率,另一个主要原因是go在运行时消耗的内存非常小。下面这张图对比了Spring boot,Spring cloud和go.(都是基于运行在docker swarm上的微服务)

bV9ZP7?w=1744&h=154

quotes-service是基于spring boot.compservice和accountservice是基于go.两个都是基于http服务器并且有许多库来和spring cloud集成。

但是内存消耗现在还要考虑么?我们现在不是有GB级别的RAM能轻松负载一个java应用么?

可以这么说,但是对于一个大企业,他们不止运行几十个微服务,甚者成百上千的微服务。这样的话减少资源消耗就能省下很多钱。

来看一下亚马逊主机的价格:

bV9ZQb?w=861&h=335

第二列为cpu数量,第四列为RAM大小。

我们看到当RAM增加一倍,价钱也随着增加一倍。如果你的cpu足够,就不必为缺少内存而要多花一倍的钱,后面我们也会看到go的服务在处理请求时甚至比spring boot 在闲置的时候少。

微服务非功能性要求

这篇博客不仅仅关于go搭建微服务,更是如何在spring cloud环境下运行和搭建符合真正用于生产环境的微服务产品。包括:

中心化配置

服务发现

日志

分布式探寻

熔断

负载均衡

边缘

监测

安全

这些内容都应该在为服务里实现,不仅仅是用go,其他的语言,例如,java,python,写微服务产品时也应该实现这些功能.在这篇博客中我会尽量从go语言角度覆盖这些内容。

另一方面要考虑的是关于微服务的实现,你可能听过:

HTTP/RPC/REST/SOAP/任何形式的APIS

持久化数据的API (DB clients, JDBC, O/R mappers)

消息处理API (MQTT, AMQP, JMS)

测试 (单元测试,integration, system, acceptance test)

编译工具/CI/CD

我会讲解这其中的一些。

在docker swarm上运行

概览中我们看到我们的服务会运行在docker swarm中,这意味着我们所有的服务,包括支持服务(服务器配置,边缘等)和微服务程序都会运行在docker swarm中。在这个项目结束时,我们运行:

docker service ls

我们会看到下面这些服务

![图片上传中…]

注意:上面这些服务远多于我们在第五章里搭建的s

bV9ZQc?w=1376&h=584

go微服务占用很小的内存-但是性能怎么样?对编程语言做有意义的基测很难。从基测网站上提交的算法上看,go比java8大部分时间会快。go大部分情况和c++差不多快,但在一些基测上,要慢很多。就是说,对于普通的微服务工作-负载HTTP/RPC,序列化/反序列化数据结构,网络吞吐方面,go可以表现的不错。

另一个重要的特性是go具有垃圾回收功能,在go 1.5GC的垃圾回收中只需要停顿几微秒。go的垃圾回收也许不是那么成熟,但是在1.2之后,他表现的很稳定。更为惊奇的是,你可以更改通过更改整个栈相对于类的大小,来更改垃圾回收的性能。

然而,我们在测试性能的同时会写我们的第一个微服务,之后我们会加入熔断,追踪,日志等功能。在我们加入越来越多的功能之后,我们会用Gatling来测试我们的性能。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值