You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2020/05/21 12:41:12 UTC

[GitHub] [rocketmq-externals] RongtongJin opened a new issue #569: [Asoc] Apache RocketMQ Channel for Knative

RongtongJin opened a new issue #569:
URL: https://github.com/apache/rocketmq-externals/issues/569


   Knative is a kubernetes based platform for building, deploying and managing modern serverless applications. Knative to provide a set of middleware components that are essential to building modern, source-centric, and container-based applications that can run anywhere: on-premises, in the cloud, or even in a third-party data centre. Knative consists of the Serving and Eventing components. Eventing is a system that is designed to address a common need for cloud-native development and provides composable primitives to enable late-binding event sources and event consumers. Eventing also defines an event forwarding and persistence layer, called a Channel. Each channel is a separate Kubernetes Custom Resource.
   
   RocketMQ Channel is  to provide data persistence and event distribution for the Knative platform. The main functions of RocketMQ Channel are RocketMQ Cluster management (including cluster parameter configuration and topic maintenance), event reception, event storage, and event distribution. Instead of storing events directly, RocketMQ Channel stores events to the rocketmq cluster by calling the RocketMQ Go client. RocketMQ Channel is Kubertenes CRD and can be deployed through kubectl apply. RocketMQ Channel  includes three components: controller, dispatcher and clent go.
   
   This topic requires you to implement RocketMQ Channel, including
   1. Before implementing RocketMQ Channel, you need to learn RocketMQ Go Client and implement the required admin tool instructions.
   2. Implement RocketMQ Channel for Knative based on Apache RocketMQ.
   
   Knative是一个基于kubernetes用于构建,部署和管理现代的无服务器应用程序的平台。Knative提供了一组中间件组件,这些组件对于构建可在任何地方运行以源为中心和基于容器的应用程序必不可少。Knative由服务和事件组件组成。事件处理旨在满足云原生开发的普遍需求,并提供可组合的原语以实现后期绑定事件源和事件使用者。事件还定义了事件转发和持久层,称为Channel。每个Channel都是一个单独的Kubernetes自定义资源。
   
   RocketMQ Channel主要定位是为Knative平台提供数据持久化以及事件分发。RocketMQ Channel主要功能有RocketMQ集群管理(包括集群参数配置、Topic维护)、事件接收、事件存储以及事件分发。RocketMQChannel不会直接存储事件,而是通过调用RocketMQ Go 客户端将事件存储到RocketMQ集群。RocketMQChannel是Kubertenes的CRD,可以通过kubectl apply 部署。RocketMQChannel具体包括Controller、Dispatcher、Clent-Go三个组件。
   
   本题目希望你能实现一个RocketMQ Channel,包括
   1.根据RocketMQ Channel的需求,学习RocketMQ Go Client,并实现需要的Admin Tool指令
   2.实现RocketMQ Channel的相关组件。
   
   ![image](https://user-images.githubusercontent.com/21963954/82560047-3dfa2680-9ba3-11ea-959f-070d9ac5e033.png)
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq-externals] Yiyiyimu commented on issue #569: [ASoC] Apache RocketMQ Channel for Knative

Posted by GitBox <gi...@apache.org>.
Yiyiyimu commented on issue #569:
URL: https://github.com/apache/rocketmq-externals/issues/569#issuecomment-650103028


   Hi @RongtongJin , sorry for the delayed reply, I've been caught by the graduation project a bit. 
   
   I just get myself familiar with RocketMQ & Go Client and Knative. I want to make clear that if I could say the two requirements are:
   1. migrating topic&cluster client tools from the original [java version](https://github.com/apache/rocketmq/blob/master/docs/en/CLITools.md), since right now go client could only support operations on producer and consumer. Do I need to migrate all of them or will there be some preferences?
   2. build the channel with reference of **Kafka channel for Knative** like [this](https://github.com/knative/eventing-contrib/tree/master/kafka/channel). Since I think the structure and also the aim of them are quite alike, I guess I could use the Kafka one as a reference. Also does 'Clent-Go' mean 'client go' and represent the client of the channel? Since it is not shown on the graph, I'm a bit confused about this part. 
   
   Thank you for your reply and hope I could finish my proposal on time!


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq-externals] Yiyiyimu commented on issue #569: [ASoC] Apache RocketMQ Channel for Knative

Posted by GitBox <gi...@apache.org>.
Yiyiyimu commented on issue #569:
URL: https://github.com/apache/rocketmq-externals/issues/569#issuecomment-650207242


   Thank you @RongtongJin for your prompt reply!


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq-externals] RongtongJin commented on issue #569: [ASoC] Apache RocketMQ Channel for Knative

Posted by GitBox <gi...@apache.org>.
RongtongJin commented on issue #569:
URL: https://github.com/apache/rocketmq-externals/issues/569#issuecomment-650193507


   Hi @Yiyiyimu  Glad to hear from you again. For two questions: 1. You do not need to migrate all but only the functions you need to use. 2. Sorry for the misspelling of words misled you. 'Clent-Go' means 'client go’ and is part of rocketmq channel. In addition, you can certainly refer toimplemention of Kafka channel for Knative. Finally, looking forward to your proposal.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq-externals] RongtongJin commented on issue #569: [ASoC] Apache RocketMQ Channel for Knative

Posted by GitBox <gi...@apache.org>.
RongtongJin commented on issue #569:
URL: https://github.com/apache/rocketmq-externals/issues/569#issuecomment-641007249


   @Yiyiyimu, Welcome to the RocketMQ community. It is recommended that you learn [RocketMQ Go Client]( https://github.com/apache/rocketmq-client-go). You need to understand the basic concepts of RocketMQ and how to use it. In addition, you need to learn and understand Knative for this project. Looking forward to your participation.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq-externals] Yiyiyimu commented on issue #569: [ASoC] Apache RocketMQ Channel for Knative

Posted by GitBox <gi...@apache.org>.
Yiyiyimu commented on issue #569:
URL: https://github.com/apache/rocketmq-externals/issues/569#issuecomment-640994953






----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org