DM数据库数据守护集群搭建_数据守护集群安装部署-程序员宅基地

技术标签: 运维  linux  服务器  数据库  

目录

1、环境说明

2、数据准备

(1)正常关闭数据库:前台+后台

(2)进行脱机备份

(3)拷贝备份文件到备机

(4)备机进行脱机数据库还原与恢复

3、配置主库DMDB1

3.1 配置dm.ini

 3.2 配置dmmal.ini

3.3 配置dmarch.ini

 3.4 配置dmwatcher.ini

3.5 mount配置模式启动主库

4、配置备库DMDB2

4.1 配置dm.ini

4.2 配置dmmal.ini

4.3 配置dmmal.ini

4.4 配置dmwatcher.ini

4.5 mount配置模式启动备库

5、配置监视器

6、启动守护进程

7、启动监视器


数据守护原理介绍:
DM数据守护(DM Data Watch)的实现原理:
将主库(生产库)产生的Redo日志传输到备库,备库接收并重新应用Redo日志,从而实现备库与主库的数据同步。DM数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,Redo日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。
DM数据守护可以配置成实时主备、MPP主备、读写分离、DSC守护。
DM数据守护系统主要由主库、备库、Redo日志、Redo日志传输、Redo日志重演、守
护进程(dmwatcher)、监视器(dmmonitor)组成。
数据库模式介绍
Normal模式
提供正常的数据库服务,操作没有限制。正常生成本地归档,但不发送实时归档 (Realtime)、即时归档(Timely)和异步归档(Async)。
Primary模式
提供正常的数据库服务,操作有极少限制。正常生成本地归档,支持实时归档(Realtime)、即时归档(Timely)和异步归档(Async)。Primary模式下,对临时表空
间以外的所有的数据库对象的修改操作都强制生成Redo日志。
Standby模式
可以执行数据库备份、查询等只读数据库操作。正常生成本地归档,正常发送异步归
档Redo日志;但实时归档(Realtime)、即时归档(Timely)均强制失效。该模式下时
间触发器、事件触发器等都失效。

1、环境说明

机器名 IP地址 初始状态 操作系统
DM_P

192.168.174.130(外网)

192.168.158.130(内网)

主库

DMDB1

CentOS-7-x86_64-DVD-2009
DM_S1

192.168.174.131(外网)

192.168.158.131(内网)

备库

DMDB2

CentOS-7-x86_64-DVD-2009
DM_M

192.168.174.134(外网)

监视器 CentOS-7-x86_64-DVD-2009

端口规划

实例名 PORT_NUM MAL_INST_DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT
DMDB1 32141 32141 192.168.158.130 61141 52141
DMDB2 32142 32142 192.168.158.131 61142 52142

2、数据准备


  配置数据守护之前,必须先通过备份还原方式同步各数据库的数据,确保各数据的数据保持完全一致。主库可以是新初始化的数据库,也可以是正在生产、使用中的数据库。备库在备份还原前,需要先准备初始化一个新库。
不能使用分别初始化库或者直接拷贝数据文件的方法来直接配置数据库守护,原因如下:
1.每个库都有一个永久魔数(permanent_magic),一经生成,永远不会改变,主库传送日志时会判断这个值是否一样,确保是来自同一个数据守护环境中的库,否则传送不了日志。
2.由于dminit初始化数据库时,会生成随机密钥用于加密,每次生成的密钥都不相同,备库无法解析采用主库密钥加密的数据。
3.每个库都有一个数据库魔数(DB_MAGIC),每经过一次还原、恢复操作,DB_MAGIC就会产生变化,需要通过这种方式来区分同一个数据守护环境中各个不同的库。
  如果是初始搭建环境,可以通过对主库脱机备份、对备库脱机还原的方式来准备数据,如果主库已经处于运行状态,则可以对主库进行联机备份、对备库脱机还原的方式来准备数据。

克隆的已经安装达梦数据库,初始化了实例的虚拟机的话,在操作之前是需要关闭数据库的。总之脱机备份之前要保证数据库是关闭的。

数据准备的具体步骤包括:

(1)正常关闭数据库:前台+后台

后台关闭:

systemctl stop DmServiceDMSERVER.service

数据库在初始化实例之后必须前台启动刷新一下!不然会出现守护进程无法自动将数据库转变为open状态,数据库将一直处于mount状态。

前台打开:切换到达梦数据库安装的bin目录下执行下面语句,我的达梦数据库bin目录路径为:/dm8/bin

./dmserver /dm8/data/DAMENG/dm.ini

前台关闭:Ctrl+C

(2)进行脱机备份

到bin目录下使用dmrman工具进行脱机备份。

./dmrman.sh    


RMAN> backup database '/dm8/data/DAMENG/dm.ini' full backupset '/dm8/fullbak';

(3)拷贝备份文件到备机

[dmdba@localhost ~]$ scp -r 192.168.174.130:/dm8/fullbak /dm8/

(4)备机进行脱机数据库还原与恢复

执行/dm8/bin目录下的dmrman工具

restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/fullbak';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/fullbak';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

3、配置主库DMDB1

        切忌:如果你已经初始化过实例,或者采用克隆的方式克隆已经安装达梦数据库,且实例化的虚拟机,请不要再初始化了!!会出现overwrite一些文件的情况。

DW_P机器上初始化主库至目录/dm8/data:

./dminit path=/dm8/data

DW_S1机器上初始化备库至目录/dm8/data:

./dminit path=/dm8/data

3.1 配置dm.ini

vi /dm8/data/DAMENG/dm.ini

一般只修改前面四个参数值。

MAL_INI  =	1	#打开 MAL 系统
ARCH_INI  =	1	#打开 归档
ALTER_MODE_SATUS=	0	#不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS=	2	#不允许备库 OFFLINE 表空间
RLOG_SEND_APPLY_MON =  	64	#统计最近 64 次的日志发送信息
INSTANCE_NAME = 	DMDB1	#实例名
PORT_NUM = 	32141	#数据库实例监听端口
DW_INACTIVE_INTERVAL =	60 	#接收守护进程消息超时时间

 3.2 配置dmmal.ini


主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMDB1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.130 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.174.130 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMDB2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.131
MAL_PORT = 61142
MAL_INST_HOST = 192.168.174.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33142 #实例监听守护进程 TCP 连接的端口

3.3 配置dmarch.ini


当前实例DMDB1是主库,需要向DMDB2(实时守护类型的备库)同步数据,因此实时归档的ARCH_DEST配置为DMDB2。

vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMDB2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb, 0 表示无限制,范围 1024~4294967294M

 3.4 配置dmwatcher.ini

守护进程是管理数据守护系统的核心部件,是数据库实例和监视器之间信息流转的桥梁。
1、数据库实例向本地守护进程发送信息,接收本地守护进程的消息和命令;
2、监视器(dmmonitor)接收守护进程的消息,并向守护进程发送命令;
3、守护进程解析并执行监视器发起的各种命令(Switchover/Takeover/Open database等),并在必要时通知数据库实例执行相应的操作;
4、数据库实例与监视器之间没有直接的消息交互。
 

修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。

vi /dm8/data/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

3.5 mount配置模式启动主库

./dmserver /dm8/data/DAMENG/dm.ini mount

启动命令行工具disql,登录主库设置OGUID值。

SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

 修改数据库模式为主库.

alter database primary;

4、配置备库DMDB2

4.1 配置dm.ini

vi /dm8/data/DAMENG/dm.ini
MAL_INI  =	1	#打开 MAL 系统
ARCH_INI  =	1	#打开 归档
ALTER_MODE_SATUS=	0	#不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS=	2	#不允许备库 OFFLINE 表空间
RLOG_SEND_APPLY_MON =  	64	#统计最近 64 次的日志发送信息
INSTANCE_NAME = 	DMDB2	#实例名
PORT_NUM = 	32141	#数据库实例监听端口
DW_INACTIVE_INTERVAL =	60 	#接收守护进程消息超时时间

4.2 配置dmmal.ini


主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMDB1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.130 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.174.130 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMDB2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.131
MAL_PORT = 61142
MAL_INST_HOST = 192.168.174.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33142 #实例监听守护进程 TCP 连接的端口

4.3 配置dmmal.ini

当前实例DMDB1是主库,需要向DMDB2(实时守护类型的备库)同步数据,因此实时归档的ARCH_DEST配置为DMDB2。

vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMDB1 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb, 0 表示无限制,范围 1024~4294967294M

4.4 配置dmwatcher.ini


修改dmwatcher.ini配置守护进程,配置为实时守护类型,使用自动切换模式。

vi /dm8/data/DAMENG/dmwatcher.ini

修改dmwatcher.ini配置守护进程,配置为实时守护类型,使用自动切换模式。

[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

4.5 mount配置模式启动备库

./dmserver /dm8/data/DAMENG/dm.ini mount

 启动命令行工具disql,登录设置OGUID值为453331

SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

 修改数据库为 Standby 模式

alter database standby;

5、配置监视器

监视器(dmmonitor)是基于监视器接口实现的一个命令行工具,是DM数据守护系统的
重要组成部分。
通过监视器,可以监控数据守护系统的运行情况,获取主备库状态、守护进程状态以及
主备库数据同步情况等信息。同时,监视器(dmmonitor)还提供了一系列命令来管理数
据守护系统。
监视器的基本作用如下:
  1. 监控数据守护系统
  2. 管理数据守护系统
  3. 确认状态信息
  4. 发起故障自动接管命令
监视器支持两种运行模式:监控模式、确认模式。
该由配置文件(
dmmonitor.ini)的 MON_DW_CONFIRM参数来确定。
取值0:监控模式
取值1:确认模式
  • 确认模式和监控模式的区别在于,确认监视器还具有状态确认和自动接管两个功能。
  • 故障自动切换模式的数据守护系统,必须部署一个确认监视器,否则在出现数据库故障时,会导致数据库服务中断。
  • 在使用主备多实例监视器的情况下,确认监视器可以配置多个。
  • 除使用主备多实例监视器的情况外,一个数据守护系统只能配置一个确认监视器。

由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。

vi /dm8/data/dmmonitor.ini

修改 dmmonitor.ini 配置确认监视器, 其中 MON_DW_IP 中的 IP 和 PORT 和dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。

MON_DW_Confirm 			= 1  	#确认监视器模式
MON_LOG_PATH 			= /dm8/data/log		#监视器日志文件存放路径
MON_LOG_INTERVAL		= 60	#每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE 		= 32	#每个日志文件最大32M
MON_LOG_SPACE_LIMIT 	= 0		#不限定日志文件总占用空间
[GRP1]
	MON_INST_OGUID 			= 453331 #组GRP1的唯一OGUID值
#以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
	MON_DW_IP 				= 192.168.158.130:52141
	MON_DW_IP 				= 192.168.158.131:52142

6、启动守护进程

启动各个主备库上的守护进程:

./dmwatcher /dm8/data/DAMENG/dmwatcher.ini

守护进程启动后,进入Startup状态,此时实例都处于Mount状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例Open,并切换为Open状态,如果在监视器中没有看见主备库处于Open状态,那就说明数据库状态存在问题。

7、启动监视器

./dmmonitor /dm8/data/dmmonitor.ini

监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入help命令,查看各种命令说明使用,结合实际情况选择使用。 至此实时守护类型的数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行show命令,可以监控到所有实例都处于Open状态,所有守护进程也都处于Open状态,即为正常运行状态。

数据守护集群的关闭:

stop GROUP GRP1

至此数据守护集群搭建完毕。更多详细信息请参考达梦数据库官方社。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44112838/article/details/126336457

智能推荐

生活垃圾数据集(YOLO版)_垃圾回收数据集-程序员宅基地

文章浏览阅读1.6k次,点赞5次,收藏20次。【有害垃圾】:电池(1 号、2 号、5 号)、过期药品或内包装等;【可回收垃圾】:易拉罐、小号矿泉水瓶;【厨余垃圾】:小土豆、切过的白萝卜、胡萝卜,尺寸为电池大小;【其他垃圾】:瓷片、鹅卵石(小土豆大小)、砖块等。文件结构|----classes.txt # 标签种类|----data-txt\ # 数据集文件集合|----images\ # 数据集图片|----labels\ # yolo标签。_垃圾回收数据集

天气系统3------微服务_cityid=101280803-程序员宅基地

文章浏览阅读272次。之前写到 通过封装的API 已经可以做到使用redis进行缓存天气信息但是这一操作每次都由客户使用时才进行更新 不友好 所以应该自己实现半小时的定时存入redis 使用quartz框架 首先添加依赖build.gradle中// Quartz compile('org.springframework.boot:spring-boot-starter-quartz'..._cityid=101280803

python wxpython 不同Frame 之间的参数传递_wxpython frame.bind-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏8次。对于使用触发事件来反应的按钮传递参数如下:可以通过lambda对function的参数传递:t.Bind(wx.EVT_BUTTON, lambda x, textctrl=t: self.input_fun(event=x, textctrl=textctrl))前提需要self.input_fun(self,event,t):传入参数而同时两个Frame之间的参数传..._wxpython frame.bind

cocos小游戏开发总结-程序员宅基地

文章浏览阅读1.9k次。最近接到一个任务要开发消消乐小游戏,当然首先就想到乐cocosCreator来作为开发工具。开发本身倒没有多少难点。消消乐的开发官网发行的书上有专门讲到。下面主要总结一下开发中遇到的问题以及解决方法屏幕适配由于设计尺寸是750*1336,如果适应高度,则在iphonX下,内容会超出屏幕宽度。按宽适应,iphon4下内容会超出屏幕高度。所以就需要根据屏幕比例来动态设置适配策略。 onLoad..._750*1336

ssm435银行贷款管理系统+vue_vue3重构信贷管理系统-程序员宅基地

文章浏览阅读745次,点赞21次,收藏21次。web项目的框架,通常更简单的数据源。21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对银行贷款管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对银行贷款管理系统进行了一些具体测试。_vue3重构信贷管理系统

乌龟棋 题解-程序员宅基地

文章浏览阅读774次。题目描述原题目戳这里小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行 NNN 个格子,每个格子上一个分数(非负整数)。棋盘第 111 格是唯一的起点,第 NNN 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中 MMM 张爬行卡片,分成 444 种不同的类型( MMM 张卡片中不一定包含所有 444 种类型的卡片,见样例),每种类型的卡片上分别标有 1,2,3,41, 2, 3, 41,2,3,4 四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数

随便推点

python内存泄露的原因_Python服务端内存泄露的处理过程-程序员宅基地

文章浏览阅读1.5k次。吐槽内存泄露 ? 内存暴涨 ? OOM ?首先提一下我自己曾经历过多次内存泄露,到底有几次? 我自己心里悲伤的回想了下,造成线上影响的内存泄露事件有将近5次了,没上线就查出内存暴涨次数可能更多。这次不是最惨,相信也不会是最后的内存的泄露。有人说,内存泄露对于程序员来说,是个好事,也是个坏事。 怎么说? 好事在于,技术又有所长进,经验有所心得…. 毕竟不是所有程序员都写过OOM的服务…. 坏事..._python内存泄露

Sensor (draft)_draft sensor-程序员宅基地

文章浏览阅读747次。1.sensor typeTYPE_ACCELEROMETER=1 TYPE_MAGNETIC_FIELD=2 (what's value mean at x and z axis)TYPE_ORIENTATION=3TYPE_GYROSCOPE=4 TYPE_LIGHT=5(in )TYPE_PRESSURE=6TYPE_TEMPERATURE=7TYPE_PRO_draft sensor

【刘庆源码共享】稀疏线性系统求解算法MGMRES(m) 之 矩阵类定义三(C++)_gmres不构造矩阵-程序员宅基地

文章浏览阅读581次。/* * Copyright (c) 2009 湖南师范大学数计院 一心飞翔项目组 * All Right Reserved * * 文件名:matrix.cpp 定义Point、Node、Matrix类的各个方法 * 摘 要:定义矩阵类,包括矩阵的相关信息和方法 * * 作 者:刘 庆 * 修改日期:2009年7月19日21:15:12 **/

三分钟带你看完HTML5增强的【iframe元素】_iframe allow-top-navigation-程序员宅基地

文章浏览阅读1.7w次,点赞6次,收藏20次。HTML不再推荐页面中使用框架集,因此HTML5删除了<frameset>、<frame>和<noframes>这三个元素。不过HTML5还保留了<iframe>元素,该元素可以在普通的HTML页面中使用,生成一个行内框架,可以直接放在HTML页面的任意位置。除了指定id、class和style之外,还可以指定如下属性:src 指定一个UR..._iframe allow-top-navigation

Java之 Spring Cloud 微服务的链路追踪 Sleuth 和 Zipkin(第三个阶段)【三】【SpringBoot项目实现商品服务器端是调用】-程序员宅基地

文章浏览阅读785次,点赞29次,收藏12次。Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 实现,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的 API 接口之外,它也提供了方便的 UI 组件来帮助我们直观的搜索跟踪信息和分析请求链路明细,

烁博科技|浅谈视频安全监控行业发展_2018年8月由于某知名视频监控厂商多款摄像机存在安全漏洞-程序员宅基地

文章浏览阅读358次。“随着天网工程的建设,中国已经建成世界上规模最大的视频监控网,摄像头总 数超过2000万个,成为世界上最安全的国家。视频图像及配套数据已经应用在反恐维稳、治安防控、侦查破案、交通行政管理、服务民生等各行业各领域。烁博科技视频安全核心能力:精准智能数据采集能力:在建设之初即以应用需求为导向,开展点位选择、设备选型等布建工作,实现前端采集设备的精细化部署。随需而动的AI数据挖掘能力:让AI所需要的算力、算法、数据、服务都在应用需求的牵引下实现合理的调度,实现解析能力的最大化。完善的数据治理能力:面_2018年8月由于某知名视频监控厂商多款摄像机存在安全漏洞