云服务器内容精选
-
版本依赖 下面是MAS-Redis-SDK中引的依赖及依赖版本: 所属模块 依赖名称 依赖版本 scope devspore-dcs com.huaweicloud.devspore:devspore-mas-common latest compile com.fasterxml.jackson.core:jackson-core 2.13.2 compile com.fasterxml.jackson.core:jackson-databind 2.14.0.rc1 compile com.fasterxml.jackson.dataformat:jackson-dataformat-yaml 2.13.2 compile org.projectlombok:lombok 1.18.20 provided redis.clients.jedis 3.7.0 compile org.apache.commons.commons-pool2 2.10.0 compile devspore-mas-common org.slf4j:slf4j-api 1.7.36 compile io.etcd:jetcd-core 0.5.7 compile com.google.errorprone:error_prone_annotations 2.5.1 compile spring-cloud-starter-huawei-devspore-dcs com.huaweicloud.devspore:devspore-dcs latest compile org.springframework.boot:spring-boot-autoconfigure 2.5.4 compile org.projectlombok:lombok 1.18.20 provided org.springframework.boot:spring-boot-autoconfigure-processor 2.5.4 compile org.springframework.boot:spring-boot-configuration-processor 2.5.4 compile javax.annotation:javax.annotation-api 1.3.2 compile 依赖选取推荐: 依赖项 推荐版本 spring依赖 4.1.3-RELEASE及以上版本 spring-boot依赖 1.2.0.RELEASE及以上版本 jedis客户端: redis.clients:jedis 3.7及以上版本 MAS-Redis-SDK使用的spring-boot版本为2.5.4版本,用户使用的spring-boot版本可能和该版本不一致,如果用户使用的spring-boot版本高于2.5.4版本则无需做修改,如果低于2.5.4版本需要用户将spring-boot-autoconfigure依赖修改为用户自己使用的spring-boot版本。 由于依赖漏洞和超期问题MAS-Redis-SDK使用的snakeyaml为2.0版本,spring-boot需要2.7.10以上版本才能使用snakeyaml2.0版本。用户可根据自身spring-boot版本确认是否使用snakeyaml2.0版本。如不使用snakeyaml2.0,需自行指定snakeyaml版本。 父主题: 约束
-
约束 MAS-ElasticSearch-SDK的多活容灾能力需要MAS服务支持,SDK的故障动态切换数据源能力需要配合MAS实例一起使用。 在使用MAS-ElasticSearch-SDK进行开发前,需要先做好如下准备: 已创建MAS实例。 在实例下已创建对应的监控器。 请参考ElasticSearch监控管理,配置多活容灾ElasticSearch监控。 父主题: MAS-ElasticSearch-SDK使用手册
-
MAS-DB-SDK MAS-DB-SDK是一个DataSource的实现,可替代spring-boot-starter-jdbc为Spring注入一个DataSource对象,通过与MAS服务对接从而实现多数据源管理的工具,具有以下特性: 多活容灾能力。 多活容灾能力是指在同城场景下实现多活故障自动切换,由SDK和MAS服务配合完成。 读写分离。 读写分离由SDK实现,支持随机、轮询的负载均衡算法。 自定义指定数据源进行数据访问。 用户也可以通过注解方式指定数据源以及主从数据库进行数据读写。 注解中source是指定选择哪个节点的数据源,从YAML配置中的router.nodes中选取,如果不设置,请使用当前DCG仲裁的数据中心(MAS平台上激活的数据中心,如果未对接MAS平台,则选取本地配置中的active,即yaml配置中的router.active)。 DCG为多活实例的仲裁中心,提供端到端(流量-应用-数据)仲裁和统一多活切换管控能力。 注解中的HintType用于查询时指定主从数据库,适用于读写分离场景,当前支持的配置值有:HintType.READMASTER(从master库读取)、HintType.READSLAVE(从slave库读取)、HintType.NONE(不指定),不指定时,默认从slave库读取。HintType只针对读操作有效,写操作HintType无效。 SDK本身不支持数据源间的数据同步,数据源同步需要依赖DRS服务。 SDK不支持分布式事务,同一个事务处理过程中,不支持切换数据库。
-
本地读单边写 本地读单边写模式应在配置文件中配置routeStrategy为"local-read-single-write"。在这种路由模式下,读操作在本地进行,不受MAS指示的活跃节点影响。根据配置文件中的AZ信息判断本地属于哪个AZ,读操作时从本地AZ进行读取,写操作仍然根据MAS指示的活跃节点进行操作。(本地指的是当Mongo数据源和props中所配置的AZs为同一AZ时,此Mongo数据源被视为本地) 本地读单边写模式,配置文件中props.azs信息和sources.dcx.azs信息必须填写。 如果对接MAS平台,Mongo数据源所属AZ信息,以MAS平台上的AZs信息为准,MAS平台此项选填。 如果两个Mongo数据源的AZ信息与props.azs均相同,则会随机选取其中一个作为本地数据源进行读操作,所以需要尽量保证两个Mongo数据源的AZ信息,一个与props.azs相同,一个不同。 配置示例: devspore: dds: # 基础信息 - 可选,当配置etcd后必选 props: version: v1 #项目版本号,自定义 app-id: xxxx #应用id,从MAS服务实例页面查询获取 monitor-id: xxxx #监控器id,从MAS服务实例页面查询获取MAS监控id databaseName: xxxx #MAS监控的Mongo数据库 azs: az1 #项目所属AZ,本地读单边写模式下,此项必填 # etcd配置,对接MAS服务关键配置,如不对接MAS则无需配置 etcd: address: 127.0.0.1:2379 #etcd地址,从MAS服务实例页面查询获取 api-version: v3 #etcd版本,v3 username: etcduser #etcd用户名,从MAS服务实例页面查询获取 password: etcdpwd #etcd密码,从MAS服务实例页面查询获取 https-enable: true #是否启用https,默认为false certificatePath: xxx #当启用https时证书路径,实例未开启双向认证或者不启用https场景,此项可不填 # mongo数据源配置 - 必选 sources: dc1: username: dc1user #mongo用户名 password: dc2pwd #mongo密码 url: mongodb://127.0.0.1:29017/mongo1 #mongo连接串(注意不能带用户名密码) azs: az1 #此mongo数据库所属AZ dc2: username: dc2user #mongo用户名 password: dc2pwd #mongo密码 url: mongodb://127.0.0.1:29018/mongo1 #mongo连接串(注意不能带用户名密码) azs: az2 #此mongo数据库所属AZ active: dc1 routeStrategy: local-read-single-write #路由策略 父主题: 使用场景
-
配置项说明 表1 配置参数详解 参数名称 是否必选 参数类型 取值范围 描述 props 否 PropertiesConfiguration 请参考PropertiesConfiguration数据结构说明。 MAS监控配置,配合etcd使用。 etcd 否 EtcdConfiguration 请参考EtcdConfiguration数据结构说明。 etcd配置,如配置,则会从远端拉取。 redis 是 RedisConfiguration 请参考RedisConfiguration数据结构说明。 RedisServer配置。 routeAlgorithm 是 string single-read-write local-read-single-write double-write 路由算法。 active 是 string 只能是“dc1”或“dc2”。 激活的Redis。 chaos 否 InjectionProperties 请参考InjectionProperties数据结构说明 故障注入相关配置。 表2 RedisConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 nearest 否 string 只能是“dc1”或“dc2”。 指明哪个是近端Redis。 asyncRemoteWrite.retryTimes 否 int 默认为3。 异步写远端操作重试次数。 connectionPool.enable 否 bool true/false默认true。 是否启用连接池。 asyncRemotePool 否 AsyncRemotePoolConfiguration 请参考AsyncRemotePoolConfiguration数据结构说明。 异步写线程池配置。 servers 是 map[string]ServerConfiguration key为dc1/dc2 单个维度请参考ServerConfiguration数据结构说明。 dc1,dc2的RedisServer连接配置。 表3 AsyncRemotePoolConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 threadCoreSize 否 int - 线程池的基本大小。 persist 否 bool true/false 默认false。 命令是否持久化,否:速度快;是:速度比非持久化低。 taskQueueSize 否 int 默认5。 缓冲队列数。 persistDir 否 string 默认根目录"/"。 Redis日志文件目录。 表4 ServerConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 hosts 是 string - RedisServer地址。 password 是 string - RedisServer密码。 type 是 string cluster, master-slave, normal。 RedisServer类型。 cloud 是 string - RedisServer所属云。 region 是 string - RedisServer所属Region。 azs 是 string - RedisServer所属AZ。 pool 否 ServerConnectionPoolConfiguration 请参考ServcerConnectionPoolConfiguration数据结构说明。 连接池配置。 表5 ServcerConnectionPoolConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 maxTotal 否 int - 最大活动对象数。 maxIdle 否 int - 最大能够保持idle状态的对象数。 minIdle 否 int - 最小能够保持idle状态的对象数。 maxWaitMillis 否 int - 当池内没有返回对象时,最大等待时间。 timeBetweenEvictionRunsMillis 否 int - 空闲连接检测线程,检测的周期,毫秒数。如果为负值,表示不运行检测线程。默认为-1。 表6 PropertiesConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 version 是 string - 项目版本号。 appId 是 string - 项目组名称。 monitorId 是 string - 监控组名称。 cloud 否 string - 项目部署云组。 region 否 string - 项目部署region。 azs 否 string - 项目部署AZ。 表7 EtcdConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 address 是 string - Etcd地址。 apiVersion 是 string v3 Etcd版本。 username 是 string - Etcd用户名。 password 是 string - Etcd密码。 httpsEnable 是 bool true/false 是否启用https。 父主题: Redis
-
使用场景 本模块客户端创建支持single-read-write(单读写),local-read-single-write(本地读单写),double-write(本地读双写)3种模式,其中Redis节点可配置cluster(集群), master-slave(主从), normal(普通)Redis服务,搭配MAS可实现多活容灾;同时内置故障注入功能可创建带有注入故障的实例,进行相关业务场景的模拟,配置修改请参考故障注入Redis配置示例。 该模块具有如下特性: 多活容灾能力 多活容灾能力是指在同城场景下实现多活故障自动切换,由SDK和MAS服务配合完成。 数据双写 读写分离由SDK实现,支持内存双写、文件双写。 故障注入 支持带注入故障的实例创建,包含延时(波动)、预设异常的故障配置。 single-read-write 单读写类似于主备库,MAS监控各节点健康状态,active节点故障自动切换至其他节点,保证多活容灾能力,节点之间进行数据同步,保证数据一致。 读操作:同步路由到active的Redis。 写操作:同步路由到active的Redis。 local-read-single-write 本地读单写适用于读多写少场景,读操作会根据路由算法读取近端节点,写操作遵循写入至active节点,MAS监控各节点健康状态,active节点故障自动切换至其他节点,节点之间进行数据同步。 读操作:同步路由到近端Redis。 写操作:同步路由到active的Redis。 double-write 本地读双写同样适用于读多写少场景,读操作直接读取近端节点,写操作在近端执行完会异步写到远端节点,不需要外部进行数据同步。 读操作:同步路由到近端Redis。 写操作: 内存双写:同步路由到近端Redis,同时异步发送到远端Redis。 文件双写:同步路由到近端Redis,同时异步写文件,定时扫描发送至远端Redis。 父主题: Redis
-
props、etcd配置项在MAS服务中如何查询 登录MAS控制台,进入“多活管理”页面。 在“多活管理”页面中单击对应的实例,进入实例控制台。 单击“应用列表”选择本项目应用,查看应用ID,即为props.appId。 单击“监控列表”选择本项目监控器,查看监控器ID,即为props.monitorId。 单击“监控列表”,在本项目监控器所在行单击“编辑”,在“编辑监控”页面单击“连接池配置”,在“数据中心”页签下的“数据源名称”就是props.databaseName。 单击“基本信息”,在“连接信息”页签单击“ETCD链接地址”右边的“查看详情”,在弹窗中查看ETCD的相关配置。 父主题: 常见问题
-
gorm 创建gorm.io/gorm包gorm.DB数据源,进行mysql操作。 依赖引入,配置文件或配置信息修改参考原生DB。 初始化创建gorm数据源DevSporeGorm,后续执行Mysql相关操作。 配置文件方式创建。 import ( "log" _ "github.com/huaweicloud/devcloud-go/sql-driver/mysql" "gorm.io/driver/mysql" "gorm.io/gorm" ) var ( DevSporeGorm *gorm.DB err error ) func init() { DevSporeGorm, err = gorm.Open(mysql.New( mysql.Config{DriverName: "devspore_mysql", DSN: "./conf/resources/config_mysql.yaml"}, )) if err != nil { log.Fatalln(err) } } 配置信息方式创建。 import ( "log" devspore "github.com/huaweicloud/devcloud-go/sql-driver/mysql" "gorm.io/driver/mysql" "gorm.io/gorm" ) var ( DevSporeGorm *gorm.DB err error ) func init() { devspore.SetClusterConfiguration(mysqlConfiguration()) DevSporeGorm, err = gorm.Open(mysql.New(mysql.Config{DriverName: "devspore_mysql", DSN: ""})) if err != nil { log.Fatalln(err) } } 父主题: 使用指南
-
如何选择组件版本 MAS-Mongo-SDK 1.3.1-RELEASE springboot适用版本:2.7.0 - 2.7.2 表1 核心依赖组件版本 GroupId ArtifactId Version 备注 org.springframework spring-aspects 5.3.9 - org.springframework.data spring-data-mongo 3.4.1 - org.mongodb mongodb-driver-sync 4.6.1 - MAS-Mongo-SDK 2.1-1.3.0-RELEASE springboot适用版本:2.1.0.RELEASE - 2.1.18.RELEASE 表2 核心依赖组件版本 GroupId ArtifactId Version 备注 org.springframework spring-aspects 5.3.9 - org.springframework.data spring-data-mongo 2.1.8.RELEASE - org.springframework.data:spring-data-mongo 2.1.8.RELEASE,此依赖包存在以下漏洞请参见National Vulnerability Database。 需要注意使用spring-data-mongodb的@Query和@Aggregate注解,以防产生spel注入漏洞。 父主题: 常见问题
-
配置项说明 表1 InjectionProperties数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 active 是 bool true/false 默认false 故障注入功能是否开启。 duration 是 int - 故障注入持续时间,单位:秒。 interval 是 int - 故障注入间隔时间,单位:秒。 percentage 是 int 0-100 注入故障概率。 delayInjection.active 是 bool true/false 延时注入开关。 delayInjection.percentage 是 int 0-100 延时故障生效概率。 delayInjection.timeMs 是 int - 延时基数,单位:毫秒。 delayInjection.jitterMs 是 int - 延时抖动幅度,单位:毫秒。 errorInjection.active 是 bool true/false 异常注入开关。 errorInjection.percentage 是 int 0-100 异常故障生效概率。 父主题: 故障注入
-
开发流程 开发的流程如下所示: 版本获取及引入依赖 通过go.mod引入需要的依赖,是使用MAS-GO-SDK的基础。 配置创建DevsporeClient客户端 通过配置客户端信息,引入MAS-GO-SDK-Redis创建DevsporeClient客户端。 支持以代码方式添加配置信息或者从YAML文件读取配置信息。 按需引入DevsporeClient客户端 在需要使用DevsporeClient客户端的地方引入并执行Redis操作。 父主题: 概述
-
MAS-SDK版本变更记录及下载地址如下: 表1 MAS-DB-SDK版本变更 开发语言 版本及下载地址 变更描述 Java v 1.2.0-RELEASE 初次发布。 Java v 1.2.1-RELEASE 支持本地读单边写特性。 Java v 1.2.2-RELEASE 支持强制路由source设置为ACTIVE。 Java v 1.2.4-RELEASE 修复etcd故障后不能再watch key变化问题。 Java v 1.2.6-RELEASE 增加连接池日志打印。 Java v 1.2.7-RELEASE 修改select for update类型sql路由,改为路由到主库。 表2 MAS-Redis-SDK版本变更 开发语言 版本及下载地址 变更描述 Java v 1.2.0-RELEASE 初次发布。 Java v 1.2.2-RELEASE 增加byte系列方法,并重写对接spring-redis相关接口,支持script相关命令,优化etcd异常日志。 表3 MAS-Mongo-SDK版本变更 开发语言 版本及下载地址 变更描述 Java v 1.2.0-RELEASE 初次发布。 Java v 1.2.1-RELEASE 修复一些问题。 Java v 1.2.2-RELEASE 修复一些问题。 表4 MAS-GO-SDK版本变更 开发语言 版本及下载地址 变更描述 GO v 1.2.0-RELEASE 初次发布。
-
内置注入故障 带波动的延时故障 基于延时基数和抖动幅度创建带有波动的延时故障。具体触发要结合故障注入功能是否开启、注入故障概率、延时注入开关、延时故障生效概率决定。 异常故障 内置如下异常故障,结合故障注入功能是否开启、注入故障概率、异常注入开关、异常故障生效概率决定是否触发,触发故障为对应模块随机一种异常。 表1 异常故障 模块 故障名称 描述 全模块 SocketErr 网络连接异常。 IORWErr IO异常-读写关闭。 IOUEErr IO异常-意外结束。 NilPointerErr 空指针异常。 mysql SQLErr sql最顶层异常。 SQLTimeoutErr sql执行超时异常。 redis RedisCommandUKErr 未知指令异常。 RedisCommandArgErr 指令参数异常。 父主题: 故障注入
-
配置项说明 表1 配置参数详解 参数名称 是否必选 参数类型 取值范围 描述 props 否 PropertiesConfiguration 请参考PropertiesConfiguration数据结构说明。 MAS监控配置,配合etcd使用。 etcd 否 EtcdConfiguration 请参考EtcdConfiguration数据结构说明。 etcd配置,如配置,则会从远端拉取。 datasource 是 map[string] DataSourceConfiguration key自定义,单维度请参考表2。 数据源。 router 是 RouterConfiguration 请参考RouterConfiguration数据结构说明。 路由相关配置。 chaos 否 InjectionProperties 请参考InjectionProperties数据结构说明。 故障注入相关配置。 表2 DataSourceConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 url 是 string protocol(address)/dbname?param=value Data Source Name, 数据源连接串。 username 是 string - 用户名。 password 是 string - 密码。 表3 RouterConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 active 是 string nodes的key 激活节点。 routeAlgorithm 是 string single-read-write local-read-single-write 路由算法。 retry.times 否 string - 失败重试次数。 retry.delay 否 string - 重试间隔,单位毫秒。 nodes 是 map[string]NodeConfiguration key自定义,单维度参考NodeConfiguration数据结构说明 节点相关配置。 表4 NodeConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 master 是 string datasource的key 主节点数据源。 loadBalance 否 string RANDOM、ROUND_ROBIN 读写分离负载均衡算法。 slaves 否 []string datasource的key 从节点数据源。 表5 PropertiesConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 version 是 string - 项目版本号。 appId 是 string - 项目组名称。 monitorId 是 string - 监控组名称。 databaseName 是 string - 数据库名称。 表6 EtcdConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 address 是 string - Etcd地址。 apiVersion 是 string v3 Etcd版本。 username 是 string - Etcd用户名。 password 是 string - Etcd密码。 httpsEnable 是 bool true/false 是否启用https。 父主题: Mysql
-
环境约束 安装的工具包括JDK、Maven、IDEA ,配置对应的环境变量,确保本地开发环境可用。 使用MAS-DB-SDK组件需具备一定的Java后端、持久层框架集成等知识。 准备项 说明 准备操作系统 Windows系统。Windows版本要求:Windows 7及以上版本。 安装JDK 开发环境的基本配置。JDK版本要求:1.8.0_262及以上版本。 安装Maven MAS-DB-SDK使用Maven获取项目版本。Maven版本要求:3.3.0及以上版本。 安装和配置IntelliJ IDEA 用于开发程序的工具。建议IntelliJ IDEA版本为2020及以上版本。 父主题: 约束
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格