devcloud-go

module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2024 License: Apache-2.0

README

Devcloud-go

Devcloud-go provides a sql-driver for mysql, a redis client and a kafka consumer which named dms, you can use the driver and redis client with MAS or use them separately, at the same time, they also support use cases with injection faults for scenario simulation. The driver is developed based on go-sql-driver/mysql v1.6.0, the redis client is developed based on go-redis v8.11.3. The kafka consumer is developed based on github.com/Shopify/sarama v1.29.1. The mock package provides the simulation of MySQL, redis and etcd services, and realizes the fault injection function of MySQL and redis through TCP. This document introduces how to obtain and use Devcloud-go.

Requirements

  • To use devcloud-go multi datasource disaster recovery capability, you need to create an MAS application in huaweicloud.
  • Devcloud-go requires go 1.14.6 or later, run command go version to check the version of Go.

Install

Run the following command to install Devcloud-go:

go get github.com/huaweicloud/devcloud-go

Code Example

ChangeLog

Detailed changes for each released version are documented in the CHANGELOG.md.

License

This project is under the Apache 2.0 license. See the LICENSE file for details.

Directories

Path Synopsis
common
etcd
Package etcd defines EtcdClient interface, and use "go.etcd.io/etcd/client/v3" implements the interface.
Package etcd defines EtcdClient interface, and use "go.etcd.io/etcd/client/v3" implements the interface.
password
Package password defines Decipher interface, which is used to decode password, user can set customize decipher by SetDecipher function.
Package password defines Decipher interface, which is used to decode password, user can set customize decipher by SetDecipher function.
util
Package util provides some util function, such as ValidateHostPort.
Package util provides some util function, such as ValidateHostPort.
dms
Package dms implements a kafka consumer based on sarama, user can consume messages asynchronous or synchronous with dms, and ensure message not lost.
Package dms implements a kafka consumer based on sarama, user can consume messages asynchronous or synchronous with dms, and ensure message not lost.
example
Package example provides an example for user how to use dms.
Package example provides an example for user how to use dms.
Package mas contains mas properties configuration.
Package mas contains mas properties configuration.
Package mock introduce three mock methods for interface, mysql and redis.
Package mock introduce three mock methods for interface, mysql and redis.
proxy
Package proxy TCP-based fault injection
Package proxy TCP-based fault injection
proxy/proxy-mysql
Package proxymysql Mysql TCP-based fault injection
Package proxymysql Mysql TCP-based fault injection
proxy/proxy-redis
Package proxyredis Redis TCP-based fault injection
Package proxyredis Redis TCP-based fault injection
proxy/utils
Package utils Test tool
Package utils Test tool
Package redis defines DevsporeClient which implements all redis commands in https://github.com/go-redis/redis/blob/master/commands.go and it provides read-write separation and etcd multi-data source disaster tolerance switching capabilities, user can create a DevsporeClient by yaml configuration file or by code, see details in README.md.
Package redis defines DevsporeClient which implements all redis commands in https://github.com/go-redis/redis/blob/master/commands.go and it provides read-write separation and etcd multi-data source disaster tolerance switching capabilities, user can create a DevsporeClient by yaml configuration file or by code, see details in README.md.
config
Package config defines a series of devspore redis configuration, include configuration from yaml and remote etcd.
Package config defines a series of devspore redis configuration, include configuration from yaml and remote etcd.
file
Package file Double-write of files
Package file Double-write of files
strategy
Package strategy defines different route strategy mode.
Package strategy defines different route strategy mode.
sql-driver
mysql
Package mysql provides a DevsporeDriver for Go's database/sql package.
Package mysql provides a DevsporeDriver for Go's database/sql package.
rds/config
Package config defines a series of configuration, include yaml configuration, remote configuration and integration configuration which contains the above two configurations.
Package config defines a series of configuration, include yaml configuration, remote configuration and integration configuration which contains the above two configurations.
rds/datasource
Package datasource defines datasource interface, and implements the interface by ClusterDataSource, NodeDataSource, and ActualDataSource.
Package datasource defines datasource interface, and implements the interface by ClusterDataSource, NodeDataSource, and ActualDataSource.
rds/router
Package router which will route an actual datasource according to route strategy and sql type.
Package router which will route an actual datasource according to route strategy and sql type.
rds/util
Package util provides the function IsOnlyRead to check sql is only read, and provides a LRUCache.
Package util provides the function IsOnlyRead to check sql is only read, and provides a LRUCache.
web
dao

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL