kratos 框架的问题

字节织梦者
• 阅读 1086

优点

  • 啥都有,类似 PHP 的各种框架。
  • 开箱即用,给你整上各种现代化的工具,甭管用不用,需要不需要全整齐。依赖注入、http、gRPC、MySQL、Redis 都“搞里头“。

问题

  • 结构混乱。proto 文件散到各个目录,甚至 proto 的版本都没管理好。
  • 依赖注入纯粹是为了用而用,没有用依赖注入解决任何实际问题,也没做到代码抽象和隔离。
  • 对微服务的理解有问题。微服务的核心问题是服务发现、服务注册,官方 demo 居然没有这个模块。文档中的 registry 实现也丑到不行。
  • 不知道作者想解决的核心问题是什么?

    • proto 的自动管理问题?第三方包的语义版本化问题显然没想清楚。而且居然丑陋到每个项目都要复制一份 google 的 proto 文件。
    • 内部调用的 rpc / http 灵活切换?直接用 grpc-gateway 就可以了,自己封装一层也很容易。
    • 依赖注入?先想清楚为什么要依赖注入,想解决什么问题?
    • 微服务?先想清楚为什么要做微服务?是不是用上了 grpc 就是微服务了?
    • Go 项目开发的脚手架?你提供了哪些脚手架的功能?跟 django 比、ruby on rails 比有啥特色?
    • 云原生?服务网格?就完全不沾边了。

代码细节

  • demo 项目 main.go 文件中的变量名: flagconf 看着 idea 的绿线。好尬!

结论

四不像的东西,不知所谓。纯属 YY,各位大神当我是小白。

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
数据存储-大数据的三种存储方式
互联网时代各种存储框架层出不穷,眼花缭乱,比如传统的关系型数据库:Oracle、MySQL;新兴的NoSQL:HBase、Cassandra、Redis;全文检索框架:ES、Solr等。如何为自己的业务选取合适的存储方案,相信大家都思考过这个问题,本文简单聊聊我对Mysql、HBase、ES的理解,希望能和大家一起探讨进步,有不对的地方还请指出。MySQL:
peter peter
4年前
Go-GRPC 初体验
grpc跟常见的clientserver模型相似(dubbo)grpc编码之前需要准备以下环境:安装protobuf,grpc的client与server之间消息传递使用的protoc格式消息,比起json,xml速度快安装grpc的源码包下面开始编写grpc示例代码:1.首先编写proto文件,示例:helloworld
Wesley13 Wesley13
4年前
Java中使用GRPC(带TLS认证)
0.编写.protosyntax"proto3";optionjava_multiple_filestrue;optionjava_package"io.grpc.examples.helloworld";optionjava_outer_classname"HelloWorl
Wesley13 Wesley13
4年前
gRPC官方文档(gRPC基础:C++)
文章来自gRPC官方文档中文版(http://doc.oschina.net/grpc?t56831)本教程提供了C程序员如何使用gRPC的指南。通过学习教程中例子,你可以学会如何:在一个.proto文件内定义服务.用protocolbuffer编译器生成服务器和客户端代码.使用gRPC的C
Stella981 Stella981
4年前
ProtoBuf练习(五)
表类型protobuf语言的maps字段类型相当于C语言的std::map类型工程目录结构$lsproto/sample_maps.protoproto文件$catproto/sample_maps.protosyntax"proto3";
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
JS函数高级
原型与原型链所有函数都有一个特别的属性:prototype:显式原型属性所有实例对象都有一个特别的属性:__proto__:隐式原型属性显式原型与隐式原型的关系函数的prototype:定义函数时被自动赋值,值默认为{},即用为原型对象
Wesley13 Wesley13
4年前
ThinkPHP5.0 build 自动生成模块
提示:首先,下载的完整框架或者Composer运行创建命令生成的框架中,build.php文件默认存放于根目录下。需要复制build.php文件到application目录,并对该文件进行修改,举例如下:return//生成应用公共文件
Wesley13 Wesley13
4年前
JSON格式化以及JSON验证工具
最近项目中遇到JSON格式验证的问题,由于请求接口中可能存在新旧版本兼容问题,老版本的客户端,情况就不说了,糟透了,各种格式都有,看起来像JSON,但是……呵呵。所以需要做兼容,就得把之前不规范的东西规范一下,并且验证其正确性;工具类如下:/  Project Name:v3ab2c  File Name:Jso
Wesley13 Wesley13
4年前
Java多线程导致的的一个事物性问题
业务场景我们现在有一个类似于文件上传的功能,各个子站点接受业务,业务上传文件,各个子站点的文件需要提交到总站点保存,文件是按批次提交到总站点的,也就是说,一个批次下面约有几百个文件。      考虑到白天提交这么多文件会影响到子站点其他系统带宽,我们将分站点的文件提交到总站点这个操作过程独立出来,放到晚上来做,具体时间是晚上7:00到早上7:00。