You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tubemq.apache.org by "charleli (Jira)" <ji...@apache.org> on 2020/06/22 06:28:00 UTC

[jira] [Updated] (TUBEMQ-3) C++ SDK support in TubeMQ

     [ https://issues.apache.org/jira/browse/TUBEMQ-3?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

charleli updated TUBEMQ-3:
--------------------------
    Description: 
I will contribute the SDK of C + +, which is currently being sorted out. Without changing the server-side interaction protocol, the semantics will be the same as the Java implementation.

 

Task
1.io thread management
2. Connection interface
3. Connection pool management
4.IO Buffer
5.Futrue/Promise support
6.Codec interface and TubeMQ interactive encoding
7. Functionalization of service interface parameter settings
8.Futrue service interface
9.Master implementation, metadata acquisition and reading interface
10. Consumer realization
11. Producer Realization
12.Client configuration
13. Producer API package
14. Consumer API package

Plan
Phase 1 (Available)-Implement basic functions and ensure unit test coverage
RPC support
Message consumption (pull mode)
Write message (synchronous)
Connection pool implementation-automatic reconnection of broken links, automatic recovery of idle connections, shared according to sessionFactory
Test case and specification construction-



Phase 2 (Practical)-Realize the features of each function and be able to adapt to a certain level of pressure measurement
Asynchronous production 
Authentication and authentication && Prevent production and consumption around the master 
Accurately specify offset partition consumption 
Frequency control
Consumption of multiple topics in a single group 
Server filter consumption 



Phase 3 (Easy to use)-Continuous iteration, full-featured implementation, realizing the latest function points according to priority
Inactive for more than specified minutes, mainly at the production end, such as 3 minutes 
Automatically shield the dead pixels, detect the dead pixels through the algorithm, and automatically shield the fault Broker's data transmission 
TLS 
push consumption

 

Featrue
1.rpc development
Pre-research--asio development
Connection interface
Connection pool management-connection reuse, automatic reconnection of broken links, automatic recovery of idle connections, sharing according to sessionFactory
Streaming request support-based on serialNo
Futrue/Promise interface
Codec interface
Log
Config
Buffer

2. Service interface development
API service interface, such as heartbeat package variable function
Request Futrue/Promise function encapsulation
Config: client, consumer, producer, Master, rpc
Message id

3.Client
turn stop
Configuration input
Consumer API
Producer API

4.Master
Authentication
Prevent the production and consumption around the Master: get the token from the Master and update it to the local metadata
Metadata management: Topic, Group, Master
Master Heartbeat

5. Consumer
User interface
Heartbeat support
pull consumption
Consumption of multiple topics in a single group
Authentication
Precisely specify offset partition consumption

6. Producer
User interface
Simultaneous production
Asynchronous production
Load balancing algorithm: polling
Load balancing algorithm: hash

7. Advanced features
Master disconnects and reconnects, traversing dns to obtain Master host IP
Limiting
Effectively-Once
tls:asio+openssl
Filter consumption
Inactive for more than the specified minutes, mainly at the production end, for example 3 minutes
Fuse: Automatically shield the dead spots, detect the dead spots through the algorithm, automatically shield the fault Broker's data transmission
Reporting time-consuming, failure; static weight (number of partitions), dynamic weight
Connection pool management-automatic recovery of idle connections, shared according to sessionFactory
Push consumption

 

 

  was:
I will contribute the SDK of C + +, which is currently being sorted out. Without changing the server-side interaction protocol, the semantics will be the same as the Java implementation.

 

 


> C++ SDK support in TubeMQ
> -------------------------
>
>                 Key: TUBEMQ-3
>                 URL: https://issues.apache.org/jira/browse/TUBEMQ-3
>             Project: Apache TubeMQ
>          Issue Type: New Feature
>            Reporter: zhangguocheng
>            Assignee: charleli
>            Priority: Normal
>
> I will contribute the SDK of C + +, which is currently being sorted out. Without changing the server-side interaction protocol, the semantics will be the same as the Java implementation.
>  
> Task
> 1.io thread management
> 2. Connection interface
> 3. Connection pool management
> 4.IO Buffer
> 5.Futrue/Promise support
> 6.Codec interface and TubeMQ interactive encoding
> 7. Functionalization of service interface parameter settings
> 8.Futrue service interface
> 9.Master implementation, metadata acquisition and reading interface
> 10. Consumer realization
> 11. Producer Realization
> 12.Client configuration
> 13. Producer API package
> 14. Consumer API package
> Plan
> Phase 1 (Available)-Implement basic functions and ensure unit test coverage
> RPC support
> Message consumption (pull mode)
> Write message (synchronous)
> Connection pool implementation-automatic reconnection of broken links, automatic recovery of idle connections, shared according to sessionFactory
> Test case and specification construction-
> Phase 2 (Practical)-Realize the features of each function and be able to adapt to a certain level of pressure measurement
> Asynchronous production 
> Authentication and authentication && Prevent production and consumption around the master 
> Accurately specify offset partition consumption 
> Frequency control
> Consumption of multiple topics in a single group 
> Server filter consumption 
> Phase 3 (Easy to use)-Continuous iteration, full-featured implementation, realizing the latest function points according to priority
> Inactive for more than specified minutes, mainly at the production end, such as 3 minutes 
> Automatically shield the dead pixels, detect the dead pixels through the algorithm, and automatically shield the fault Broker's data transmission 
> TLS 
> push consumption
>  
> Featrue
> 1.rpc development
> Pre-research--asio development
> Connection interface
> Connection pool management-connection reuse, automatic reconnection of broken links, automatic recovery of idle connections, sharing according to sessionFactory
> Streaming request support-based on serialNo
> Futrue/Promise interface
> Codec interface
> Log
> Config
> Buffer
> 2. Service interface development
> API service interface, such as heartbeat package variable function
> Request Futrue/Promise function encapsulation
> Config: client, consumer, producer, Master, rpc
> Message id
> 3.Client
> turn stop
> Configuration input
> Consumer API
> Producer API
> 4.Master
> Authentication
> Prevent the production and consumption around the Master: get the token from the Master and update it to the local metadata
> Metadata management: Topic, Group, Master
> Master Heartbeat
> 5. Consumer
> User interface
> Heartbeat support
> pull consumption
> Consumption of multiple topics in a single group
> Authentication
> Precisely specify offset partition consumption
> 6. Producer
> User interface
> Simultaneous production
> Asynchronous production
> Load balancing algorithm: polling
> Load balancing algorithm: hash
> 7. Advanced features
> Master disconnects and reconnects, traversing dns to obtain Master host IP
> Limiting
> Effectively-Once
> tls:asio+openssl
> Filter consumption
> Inactive for more than the specified minutes, mainly at the production end, for example 3 minutes
> Fuse: Automatically shield the dead spots, detect the dead spots through the algorithm, automatically shield the fault Broker's data transmission
> Reporting time-consuming, failure; static weight (number of partitions), dynamic weight
> Connection pool management-automatic recovery of idle connections, shared according to sessionFactory
> Push consumption
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)