既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
蓝色方框内: Spring cloud/Netflix OSS提供的支持系统,或者其他服务,比如zipkin
黄色方框/白色方框: 一个微服务。
运行资源消耗
为什么我们要用go来写微服务?除啦有意思和有效率,另一个主要原因是go在运行时消耗的内存非常小。下面这张图对比了Spring boot,Spring cloud和go.(都是基于运行在docker swarm上的微服务)
quotes-service是基于spring boot.compservice和accountservice是基于go.两个都是基于http服务器并且有许多库来和spring cloud集成。
但是内存消耗现在还要考虑么?我们现在不是有GB级别的RAM能轻松负载一个java应用么?
可以这么说,但是对于一个大企业,他们不止运行几十个微服务,甚者成百上千的微服务。这样的话减少资源消耗就能省下很多钱。
来看一下亚马逊主机的价格:
第二列为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
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新