TDDL和Diamond的使用(一):基本介绍

本文介绍TDDL和Diamond的部署与使用。TDDL为数据库中间件,支持集群管理、主备切换等功能;Diamond为配置管理系统,实现配置的统一管理。文章详细阐述了两者的工作原理及实际部署过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,说明

因项目需求要调研一下TDDL,在调研中发现相关的资料较少,因此记之。
本文描述Diamond和TDDL中间件的部署和使用。
Diamond(http://code.taobao.org/p/diamond/wiki/index/)是淘宝开源的配置管理系统(config server),以简单可用的方式提供分布式系统的配置管理功能。
TDDL(http://code.taobao.org/p/tddl-dynamic-datasource/wiki/index/)是淘宝开源的数据库中间件,提供统一的中间层实现对下层数据库的集群管理,动态配置,读写分离等功能(数据同步需自行处理);当前开源版本不是内部使用完整版本,只有动态数据源功能而缺少分库分表层。
TDDL依赖于Diamond进行配置管理。

注意:由于淘宝博客地址变迁,在上文两个链接网页中的文档连接已不可用,新的地址迁移到了:
Diamond相关:
diamond专题第一期,主要介绍了diamond的概况和快速使用,
文章链接:http://jm-blog.aliapp.com/?p=1588
diamond专题第二期,主要介绍了diamond的核心原理,
文章链接:http://jm-blog.aliapp.com/?p=1592
diamond专题第三期,主要介绍了diamond的架构,
文章链接:http://jm-blog.aliapp.com/?p=1606
diamond专题第四期,主要介绍了diamond的容灾机制,
文章链接:http://jm-blog.aliapp.com/?p=1617
TDDL相关:
TDDL动态数据源基本说明:http://jm-blog.aliapp.com/?p=1642
TDDL示例说明:http://jm-blog.aliapp.com/?p=1645

2,系统环境和部署架构

本文中的示例环境如下:

OPUbuntu 11.04 x86_64
Kernel2.6.38-8-generic
JavaOpenJDK 1.6.0_22

相关软件如下:

MavenApache Maven 2.2.1
Mysqlmysql  Ver 14.14 Distrib 5.1.62 (oracle亦可)
Tomcat7.0.19 (能部署war包的web容器亦可)
DiamondSvn R16
TDDLSvn R14

Diamond是一个统一的配置管理服务,各个系统服务的配置可以发布到Diamond-server上;然后客户端可以根据约定的ID来订阅和获取这些服务的配置。当需要改变配置时,只需要修改Diamond-server中的数据,各个客户端会自动获取到新的配置。这个类似于zookeeper的配置管理,只不过Diamond-client是轮询来获取数据而不是通过watch推送。

具体来说,Diamond的使用需要如下几个组件:
1)  数据库:用于存放配置数据
2) Diamond Server:配置管理组件,可以增删改查服务配置,并提供接口供client端访问。
3)  Http server:一个简单的Diamond server地址展示页面;客户端通过http server获取Diamond Server的实际地址。
4) Diamond Client:客户端,先访问Http Server获得Diamond Server的所在,再访问Diamond Server获取配置数据。

具体如下图所示:
diamond

TDDL是一个数据库中间件,它集成了数据库的集群管理,主备切换,读写分离等功能,能够大大减少应用层面对数据库集群操作的复杂度。整个TDDL产品包括对应用透明的分库分表层,以及具有众多特性的动态数据源。但可惜的是,现在还只开源了动态数据源的部分。这部分基本用在集群管理上,比如主备切换,读写权重设置,数据库配置动态变更等。

TDDL动态数据源主要分为两层,每一层都实现了JDBC规范,整体结构如下图所示:
yINRNf

其中的tdds atom datasource(TAtomDataSource)和tddl gourp datasource(TGroupDataSource)分别从单个数据库节点和集群数据库两个层面对下层的数据库进行管理。
TAtomDataSource抽取了Jboss中的datasource组件,对应单个的数据源,实现数据库配置管理和访问的封装。TGroupDataSource对应多个数据库节点组成的集群,内含多个TAtomDataSource,实现数据库集群配置管理,容灾切换和访问的封装。在实际使用时,所有数据源和集群的配置信息都放在Diamond上,程序中的TDDL首先从Diamond获取数据,然后根据配置策略直连数据库,访问方式如图所示:

tddl

虽然Diamond和TDDL都开源了,但是代码,配置说明和使用文档还不够完善,在使用时直接遵循开源文档中的描述一般都会出现问题。下文参照文档和网络资料对这两个组件的安装和使用进行说明。

本文出自 溪木镇的铁匠铺,转载时请注明出处及相应链接。

本文永久链接: http://www.zhouyoudao.com/tddl-diamond-1/

0 diamondtddl淘宝
<think>首先,用户要求用中文回答问题。主题是“Lattice diamond 软件使用介绍”。我需要介绍Lattice Diamond软件的使用。 Lattice Diamond个FPGA设计软件,由Lattice Semiconductor提供。它用于设计、仿真实现FPGACPLD设计。 关键点包括: - 安装设置 - 创建新项目 - 添加设计文件(如VHDL或Verilog) - 综合实现 - 仿真(使用内置仿真器或外部工具) - 下载到硬件 - 调试工具 结构我的回答: 1. 简要介绍Lattice Diamond。 2. 步骤式介绍基本使用。 3. 提供示例或代码片段(如果适用)。用户提供的示例是关于快速排序的Python代码,所以我应该为Lattice Diamond提供个简单的代码示例,比如基本的Verilog模块。 示例代码:个简单的计数器模块。 ```verilog module counter ( input clk, input rst, output reg [7:0] count ); always @(posedge clk or posedge rst) begin if (rst) begin count <= 8'b0; end else begin count <= count + 1; end end endmodule ``` 然后,在回答结束后,我必须添加“§§相关问题§§”,并在同行或下行列出3-5个相关问题。格式是:第行必须是“§§相关问题§§”,然后是新行列出问题,每个问题以数字开头。 从示例看: - 回答内容 - 然后“§§相关问题§§” - 然后1. ... 2. ... 3. ... 所以,在回答中: - 先写内容。 - 然后输出“§§相关问题§§”(单独行)。 - 然后列出3-5个相关问题,每个问题以数字开头。 相关问题应基于用户的问题我的回答。主题是Lattice Diamond软件使用,所以问题可以是: 1. 如何安装Lattice Diamond软件? 2. 如何在Lattice Diamond中创建个新项目? 3. 如何添加仿真波形? 4. 如何下载设计到FPGA? 5. 常见问题或错误解决方法。 确保问题数量在3-5个。 最后,所有内容必须符合规则:用中文,回答后必须有相关问题。 撰写回答: 1. 介绍Lattice Diamond。 2. 基本使用步骤。 3. 示例代码。 4. 相关问题。 完整结构: - 开头:Lattice Diamond 是... - 步骤:1. 安装软件。2. 创建项目。3. 添加文件。4. 综合实现。5. 仿真。6. 下载。 - 代码示例。 - 结束。 - 然后“§§相关问题§§” - 列表相关问题。</think>Lattice Diamond款由 Lattice Semiconductor 公司开发的 FPGA/CPLD 设计软件,主要用于数字电路设计、仿真实现。它支持多种硬件描述语言(如 Verilog VHDL),并提供综合、布局布线、时序分析以及下载到目标设备的功能。以下是基本使用介绍: 1. **安装与设置**: - 从 Lattice Semiconductor 官网下载安装包,运行安装程序,选择所需组件(如综合工具、仿真器等)。 - 安装后启动软件,首次使用时需配置许可证(免费版或商业版)。 2. **创建新项目**: - 点击“File” > “New” > “Project”,输入项目名称路径。 - 选择目标设备型号(如 iCE40UP5K),设置语言(Verilog 或 VHDL)。 3. **添加设计文件**: - 右键点击“Design Files”文件夹,选择“Add New File”或“Add Existing File”。 - 编写或导入 HDL 代码。例如,个简单的 Verilog 计数器模块: ```verilog module counter ( input clk, input rst, output reg [3:0] count ); always @(posedge clk or posedge rst) begin if (rst) count <= 4'b0; else count <= count + 1; end endmodule ``` 4. **综合与实现**: - 点击“Process” > “Run Synthesis” 生成逻辑网表。 - 完成后运行“Run Implementation”进行布局布线时序优化。 5. **仿真**: - 添加测试文件(Testbench),使用内置工具(如 Active-HDL)或外部仿真器。 - 点击“Run Simulation”查看波形,验证功能。 6. **下载到硬件**: - 连接开发板(如 Lattice iCEstick),点击“Tools” > “Programmer”。 - 选择生成的比特流文件(.bit),点击“Program”下载到 FPGA。 7. **调试工具**: - 使用“Signal Tap”实时监控内部信号,或通过“Report”查看时序资源报告。 注意事项:确保目标设备兼容,并定期保存项目。常见问题包括许可证错误或时序违规,可通过软件帮助文档解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值