Go 语言选手学写 Java SpringCloud 一周的体会

查看 60|回复 3
作者:Nitroethane   
我组目前的技术栈是 Go + Python + C++,人数在十人以下。本人只在上大学时学过一段时间 Java 和 SpringBoot (不超过一个月)。
因为业务需要,需要把老项目中的一个功能独立出来做成微服务。老项目是用 Python 2 写的屎山,没有微服务一说。
这个功能很简单,目前主要有以下几点:
  • 接收客户端发送的数据,简单处理之后发送到 Kafka 中。数据量比较大,而且该功能要独立出来,所以计划用 gRPC 协议实现,且计划后续其它功能在此基础上开发。
  • 服务端给客户端实时推送配置。这个功能计划用 consul 或者 etcd 实现,每个客户端 watch 自己的 key ,value 有变动之后自动获取最新配置数据。
  • 实时监控客户端的连接状态,如果有客户端掉线,需要发送告警信息。
  • 后续还会有数据处理和数据打点相关的需求。

    因为涉及到微服务,就想到 SpringCloud 挺有名的,花了一天时间了解了下。然后觉得不错,用了三天实现了第一个需求。用 SpringCloud 的感觉真爽,比如第一个功能,只需要写一个类,就把客户端发来的数据处理后写到 Kafka 里;再写一个类实现 gRPC server ,通过 Spring 的依赖注入把前面的数据处理类注入到 gRPC server 中,就完事了。如果用 Go 写,操作 Kafka 得写一大坨,实现 gRPC Server 得写一大坨,读取配置文件得写一大坨。不仅写起来繁琐,而且还要考虑使用的三方库有没有问题,是否经常维护。
    当然不可否认的是后续会踩到一些坑。
    但是今天下午老板告诉我说 Java 不符合当前技术栈,还是用 Go 写比较好。虽然大概率得用 Go 重写,但下周我还是想再争取一下。
    另外求各位 V 友推荐下 Go 语言中是否有类似 SpringCloud 这种比较全能的微服务框架,如果老板不同意的话得用 Go 重写了。
    请不要评论「老板说什么就是什么」、「折腾这么多干嘛」之类,因为我组不存在这些问题。

    grpc, 客户端, Kafka, Server

  • putaozhenhaochi   
    goframe 好像走的这种路线
    lanlanye   
    都微服务了,要不整个 k8s 吧……也算 Go 技术栈,后面你说的这些需求甚至可能不怎么需要写代码就能解决了。
    Nitroethane
    OP
      
    @lanlanye 只要是我经手的项目都上 k8s ,所以这个功能做出来后肯定上 k8s 。而且我计划用微服务架构,慢慢把老项目的功能往过来迁。因为人手少,原来的老项目目前不太可能进行优化,虽然有很多问题。这个老项目也不可能上 k8s ,因为负责这个老项目的老前辈不喜欢折腾 k8s 这种东西 🙈
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部