请问有没有一个完整的微服务项目可供学习参考呢 #1344
-
请问有没有一个完整的微服务项目可供学习参考呢 希望能够是企业级一套解决方案 1、服务注册和发现 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
你好,感谢关注Workflow及生态项目,这是个非常好的主题。目前Workflow线上作为一套企业级的方案,有许多模块和生态项目可以分享,如下列出: 1、服务注册和发现取决于用什么服务发现系统。以下是Workflow支持的几种:
2、统一配置中心目前没有默认配置,因为各团队配置系统往往差别很大,而配置又是一个和模块交互相对较少的事项。目前Workflow的默认配置项很少,参考 about-config.md ,所以线上用法都是各团队用当前的配置系统把配置读出来之后设置到Workflow上接即可,这是最方便的解决办法。 3、路由网关如果只需要基本的转发功能,可以参考:tutorial-05-http_proxy.md,只要是Workflow或生态项目支持的协议,都可以做协议转换。不知道是否有其他需求呢? 4、远程调用可以看看 SRPC :目前也是 CNCF landscape 项目,是一个高性能轻量级RPC框架,支持protobuf、thrift,协议层面支持SRPC、BRPC、tRPC、Thirft协议及其对应的Http版本,也是截至目前唯一一个tRPC协议的开源版实现。 5、熔断降级限流熔断等处理分两类:进城内和服务整体。前者在Workflow内自带,后者取决于你用什么服务发现与治理系统(参考第1点)。 6、分布式文件 Minio和上述多种外部系统一样,只要协议支持,Workflow就可以做基本的对接。Minio是S3协议,基于HTTP,你可以对WFHttpTask进行简单的封装就可以接入Minio了。 7、统一权限控制Workflow目前要做权限控制可以在Server创建新链接时判断;生态项目SRPC有埋点,可以开发插件做鉴权。 8、服务监控目前Workflow支持两种协议的监控上报:
9、链路跟踪 Skywalking目前Workflow使用SRPC里的插件,就可以上报到OpenTracing和Jaeger,也就是后来合并到OpenTelemetry的trace部分,参考:docs-08-tracing.md 即使不使用RPC,只用Http,也可以用这些模块,需要参考这个文档:docs-10-http-with-modules.md 10、消息中间件 RabbitMQ 和 13、分布式日志 elk + kafka分布式消息队列支持Kafka,接入方式参考:tutorial-13-kafka_cli.md,应该是最好用的C++异步Kafka客户端了。 11、分布式任务上述Kafka例子内部实现就是一个分布式任务,你可以用Workflow实现任何分布式任务,当然Workflow是一个单进程内的概念,对于tensorflow这类分布式任务需要你针对自己的场景做封装。 12、分布式事务 和 15、CAS 单点登录这两个不属于Workflow的功能内,可以参考上一条。 14、支持 docker-compose、k8s、jenkins容器和框架本身是没有任何耦合关系的,Workflow和k8s的交互最多就是接入其API Server动态查找Pod,参考第一条。 16、路由限流内部自带基本的路由功能,如果想用更灵活的RESTFul的API可以参考 wfrest 。 限流支持了连接数限制,可以通过配置修改。另外还有很多限制并发的做法,比如使用资源池,参考文档: about-resource-pool.md 。欢迎多翻翻issue:#1319 |
Beta Was this translation helpful? Give feedback.
你好,感谢关注Workflow及生态项目,这是个非常好的主题。目前Workflow线上作为一套企业级的方案,有许多模块和生态项目可以分享,如下列出:
1、服务注册和发现
取决于用什么服务发现系统。以下是Workflow支持的几种:
2、统一配置中心
目前没有默认配置,因为各团队配置系统往往差别很大,而配置又是一个和模块交互相对较少的事项。目前Workflow的默认配置项很少,参考 about-config.md ,所以线上用法都是各团队用当前的配置系统把配置读出来之后设置到Workflow上接即可,这是最方便的解决办法。
3、路由网关
如果只需要基本的转发功能,可以参考:tutorial-05-http_proxy.md,只要是Workflow或生态项目支持的协议,都可以做协议转换。不知道是否有其他需求呢?
4、远程调用
可以看看 SRPC :目前也是 CNCF landscape 项目,是一个高性能轻量级RPC框架,支持protobuf、thrift,协议层面支持SRPC、BRPC、tRPC、Thirft协议及其对应的Http版本,也是截至目前唯一一个tRPC协议的开源版实现。
5、熔断降级限流
熔断等处理分两类:进城内和服务整体。前者在Workflow内自带,后者取决于你用什么服务…