在使用JDBC实现连接GBase8aMPP数据库时,由于GBase8aMPP数据库是分布式数据库,那么在通过JDBC实现连接高可用的情况下,还希望能够实现连接级别的负载均衡,需要如何实现呢?这就需要使用到GBase8aMPP数据库JDBC驱动自带的负载均衡功能。
如果我们希望把数据库连接请求平均分布到各个节点的上话,我们可以使用JDBC 高可用负载均衡功能。
假设有如下场景,部署有一个GBase 集群,三个节点IP如下:
19216811;19216812;19216813;
String dbUrl =
“jdbc:gbase://19216811:5258/testuser=gbase&password=gbase20110531&failoverEnable=true&hostList=19216812,19216813&gclusterId=gcl1”;
failoverEnable:是否开启高可用。
hostList:集群节点的IP列表,以逗号分隔,hostList中不需要包含url中的主IP。
gclusterId:不同的gclusterId会创建不同的列表,用于区分被连接的集群,要求必须以a-z任意字符开头的可以包含a-z、0-9所有字符长度为最大为20的字符串。
高可用负载均衡功能是将url中的IP和hostList中的IP放入一个列表中,当应用获取连接的时候,JDBC会从列表表中顺序获取IP创建连接,每个IP获取一个连接,从而实现连接的负载均衡,同时,当列表中的IP不可连接时,JDBC会顺序获取列表中的下一个IP,获取连接,如果无可用连接时,将抛出异常。也就是说高可用负载均衡功能既实现了连接负载均衡功能,也实现了高可用功能。
选择开始菜单中→程序→Management SQL Server 2008→SQL Server Management Studio命令,打开SQL Server Management Studio窗口,并使用Windows或 SQL Server身份验证建立连接。
在对象资源管理器窗口中展开服务器,然后选择数据库节点
右键单击数据库节点,从d出来的快捷菜单中选择新建数据库命令。
执行上述 *** 作后,会d出新建数据库对话框。在对话框、左侧有3个选项,分别是常规、选项和文件组。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在数据库名称文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在所有者文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用使用全文索引复选框。
在数据库文件列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的添加、删除按钮添加或删除数据库文件。
切换到选项页、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到文件组页,在这里可以添加或删除文件组。
完成以上 *** 作后,单击确定按钮关闭新建数据库对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再对象资源管理器窗口看到。
1、自己建立云服务器,服务器上安装数据库中间件和大型数据库;
2、服务器上安装Web服务,建议使用Apache,不要使用IIS,后者稳定性和效率以及安全性都太差了,个人和网站玩玩还行,大规模应用是看不住的;
3、中间件用作向服务器读写和查询,另一端连接web服务进行数据通讯;
4、任何PC、手机等写个小程序,将当前时间、扫描面单的地点等设定进去,然后扫描面单号、将数据传递到服务器中间件,中间件将流水写入数据库,中间件要有重复条码处理功能和错误条码处理功能等,其他的校验在客户端程序完成;
5、根据数据库流水,客户就可以通过网站,查询数据库中针对某个面单,所有的不同地点的扫描时间信息了,也就是说知道物流快递运送进度了,精确到秒,因为扫描的时间精确到秒,复杂些的系统扫描时的那台计算机,还可以连接电子秤,将重量也采集进去,这样那一站发生货物重量缺少,就说明那个环节箱子破了,有东西漏出来丢失了;目前大部分快递公司还做不到这点;
以上系统其实对我们来说,是最低级的系统,仅仅是条码流水采集统计查询而已,唯一不同的是将局域网的东西放到了互联网上,要额外考虑安全、并发连接数、负载均衡、数据库性能、网络稳定性和通讯中断处理机制,很多都要放在中间件中完成。以上所有可以使用免费开源的来实现,也可以使用商业系统实现。
开源免费的可以用:Linxu服务器Mysql数据库Perl语言的CGI开发中间件Apache的Web服务php的查询网页php客户端数据上传网页;
付费的可以使用IBM的服务器套件:Webshare套件DB2数据库,微软的MS-SQLServer就算了,稍大点的快递公司、物流公司,一周的数据就能超过10W个包裹,数据超过10万个,他数据库的性能会比Mysql免费开源数据库还差劲,所以很多人宁可使用性能比他好价格比他低的Oracle数据库也不用他,就是因为查询和读写速度达不到,并且微软的MS-SQLServer很多时候就算你把服务器加到16个CPU,32G内存,20个硬盘,2个千兆网卡,依然性能上不去,此时已经和硬件无关了,是数据库自己能力不足,所以很多大型供应链管理系统不用微软的数据库,是有原因的。
数据库死锁和nginx反向代理是两个相互平行的概念,所以根本就谈不上相互影响的问题。
导致数据库死锁是因为下层的业务逻辑对数据库的处理有并行的漏洞导致的。这个和nginx没有关系。
nginx是脱离具体业务的,只负责进行请求转发处理的webserver服务器。具体的业务需要由下层的php、jsp等处理。所以,真正导致死锁的是php脚本中对数据库的 *** 作的不合理性,而不是nginx。
保持对应关系不变,修改的字段就不能是关联字段
要同时修改两列值使用:
update Table a
set a字段1=新值,a字段2=新值2
要用查询出来的值去修改:
declare @新值1 varchar(100)
declare @新值2 varchar(100)
select @新值1=a字段,@新值2=a字段2 from Table2 where
update Table a
set a字段1=@新值1,a字段2=@新值2
你要保持数据的一致性,需要一个共享存贮。共享存贮包括网页,脚本,数据库等数据。这样,当用户连接到不同的服务器时,可以看到相同的内容。也有利于管理员的维护。其实,没有共享存贮也可能实现LVS,但是,你要手工进行数据复制同步,管理负担会很重。
共享存贮,可以通过配置安装有FREENAS的服务器来实现,也可购买支持ISCSI等协议的的网络存贮设备来实现。
至于要不要双网卡,也是看你的性能要求了,理论上,只要通讯正常,单网卡也是可以的。
以下复制章文嵩的LVS原理,请见谅。
一般来说,LVS集群采用三层结构,其体系结构如图1所示,三层主要组成部分为:
•负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。
•服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
•共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
调度器是服务器集群系统的唯一入口点(Single Entry Point),它可以采用IP负载均衡技术、基于内容请求分发技术或者两者相结合。在IP负载均衡技术中,需要服务器池拥有相同的内容提供相同的服务。当客户请求到达时,调度器只根据服务器负载情况和设定的调度算法从服务器池中选出一个服务器,将该请求转发到选出的服务器,并记录这个调度;当这个请求的其他报文到达,也会被转发到前面选出的服务器。在基于内容请求分发技术中,服务器可以提供不同的服务,当客户请求到达时,调度器可根据请求的内容选择服务器执行请求。因为所有的 *** 作都是在Linux *** 作系统核心空间中将完成的,它的调度开销很小,所以它具有很高的吞吐率。
服务器池的结点数目是可变的。当整个系统收到的负载超过目前所有结点的处理能力时,可以在服务器池中增加服务器来满足不断增长的请求负载。对大多数网络服务来说,请求间不存在很强的相关性,请求可以在不同的结点上并行执行,所以整个系统的性能基本上可以随着服务器池的结点数目增加而线性增长。
共享存储通常是数据库、网络文件系统或者分布式文件系统。服务器结点需要动态更新的数据一般存储在数据库系统中,同时数据库会保证并发访问时数据的一致性。静态的数据可以存储在网络文件系统(如NFS/CIFS)中,但网络文件系统的伸缩能力有限,一般来说,NFS/CIFS服务器只能支持3~6个繁忙的服务器结点。对于规模较大的集群系统,可以考虑用分布式文件系统,如AFS[1]、GFS[23]、Coda[4]和 Intermezzo[5]等。分布式文件系统可为各服务器提供共享的存储区,它们访问分布式文件系统就像访问本地文件系统一样,同时分布式文件系统可提供良好的伸缩性和可用性。此外,当不同服务器上的应用程序同时读写访问分布式文件系统上同一资源时,应用程序的访问冲突需要消解才能使得资源处于一致状态。这需要一个分布式锁管理器(Distributed Lock Manager),它可能是分布式文件系统内部提供的,也可能是外部的。开发者在写应用程序时,可以使用分布式锁管理器来保证应用程序在不同结点上并发访问的一致性。
负载调度器、服务器池和共享存储系统通过高速网络相连接,如100Mbps交换网络、Myrinet和Gigabit网络等。使用高速的网络,主要为避免当系统规模扩大时互联网络成为整个系统的瓶颈。
Graphic Monitor是为系统管理员提供整个集群系统的监视器,它可以监视系统的状态。Graphic Monitor是基于浏览器的,所以无论管理员在本地还是异地都可以监测系统的状况。为了安全的原因,浏览器要通过>
参考:
>
负载均衡是指把负载平均分配到集群中的各个节点 从而提高整体性能 Oracle RAC提供两种方式实现负载均衡 以下就为大家详细介绍一下 需要的朋友可以参考下
Oracle RAC提供两种方式实现负载均衡 第一种是纯技术手段 即在用户连接时 根据系统当前的负载情况决定由哪个节点处理用户请求 第二种是面向业务 人为的把应用切分成很多service 通过某个service过来的连接请求都由某个节点处理 下面来具体看看这两种手段
纯技术手段 (面向连接的负载均衡)
客户端负载均衡 配置方法是在客户端tnsnames ora文件中设置LOAD_BALANCE=YES 当客户端发起连接时 会从地址列表中随机选取一个 把连接请求随机分散给各个实例 这个技术的最大缺点在于不能根据各个实例的真实负载情况来分散请求 太过粗糙 因此很少使用
服务器端负载均衡 服务器端负载均衡依赖于Listener收集的负载信息 在数据库运行过程 中 pmon进程会收集系统的负载信息 定期更新至Listener中 如果你配置了Remote_listener参数 pmon进程不但能把负载信息 注册到本地Listener 也可以注册到其它实例的Listener 这样有了pmon自动注册机制后 集群的每个节点的Listener都掌握了所有 节点的负载信息 当收到客户端请求时 会把连接分配给负载最小的实例
lishixinzhi/Article/program/Oracle/201311/19020
您好,很高兴为您解答。
1、企业实现Web服务器负载均衡
为了将负载均匀的分配给内部的多个服务器上,就需要应用一定的负载均衡策略。通过服务器负载均衡设备实现各服务器群的流量动态负载均衡,并互为冗余备份。并要求新系统应有一定的扩展性,如数据访问量继续增大,可再添加新的服务器加入负载均衡系统。
对于WEB服务应用,同时有几台机器提供服务,每台机器的状态可以设为regular(正常工作)或backup(备份状态),或者同时设定为regular状态。负载均衡设备根据管理员事先设定的负载算法和当前网络的实际的动态的负载情况决定下一个用户的请求将被重定向到的服务器。而这一切对于用户来说是完全透明的,用户完成了对WEB服务的请求,并不用关心具体是哪台服务器完成的。
2、使用网络地址转换实现多服务器负载均衡
支持负载均衡的地址转换网关中可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡策略来分配负载。然而硬件实现的负载控制器灵活性不强,不能支持更优化的负载均衡策略和更复杂的应用协议。
基于网络地址转换的负载均衡器可以有效的解决服务器端的CPU和磁盘I/O负载,然而负载均衡器本身的性能受网络I/O的限制,在一定硬件条件下具有一定的带宽限制,但可以通过改善算法和提高运行负载均衡程序的硬件性能,来提高这个带宽限制。不同的服务类型对不同的服务器资源进行占用,我们使用的负载衡量策略是使用同一个负载进行评估,这对于大多数条件是适合的,然而最好的办法是针对不同的资源,如CPU、磁盘I/O或网络I/O等,分别监视服务器负载,由中心控制器选择最合适的服务器分发客户请求。
3、使用DNS服务器实现负载均衡
访问企业网服务器的用户急剧增加,一台服务器难以满足用户的访问需要,那么如何才能保证用户的正常访问呢解决方法有很多,如使用Windows
2000或Windows Server 2003提供网络负载均衡服务,但该服务的设置非常复杂。而通过DNS服务器实现网络负载均衡则是一种比较简单的方法。
企业网通常由很多子网构成,为了降低网络中的数据流量,客户机最好能访问处于同一子网内的Web服务器。虽然实现了网络负载均衡功能,但并不能保证客户访问的是本子网的Web服务器。其实这个问题也很好解决,只要启用DNS服务器的“启用网络掩码排序”功能即可。在DNS管理器窗口中,右键点击DNS服务器,在d出的菜单中选择“属性”,然后在属性对话框中切换到“高级”选项卡,勾选“服务器选项”列表框中的“启用网络掩码排序”选项即可。这样客户机每次都能访问到本子网内的Web服务器了。完成以上设置后,就使DNS服务器实现了网络负载均衡功能,把客户的访问分担到每个Web服务器上,并且还减少了跨子网的网络通信流量,大大降低了企业网的通信负担。
4、企业实现SQL Server数据库服务器负载均衡
MS SQL
Server数据库服务器可以说是应用范围最广的数据库产品,并且越来越多地在大型和比较关键的应用系统中提供服务。当企业应用越来越复杂、数据量越来越大的时候,SQL
Server数据库要不停的进行处理、存储、查询的工作,这个时候企业就要考虑SQL Server数据库服务器的性能和速度及安全性了。然而,长期以来,SQL
SERVER数据库服务器都只有“热备”的解决方案,而没有“负载均衡”和“集群”的解决方案。
随着数据库路由器软件ICX的出现,为基于MS SQL Server的数据库系统提供了一种更优秀的集群解决方案。它可以真正的实现SQL
Server数据库服务器的动态负载均衡,提高性能和速度;它可以真正的保证SQL
Server数据库服务器不间断的提供服务,在服务器发生故障的时候实时切换到其他服务器上继续提供服务,切换时间为“零”。数据库路由器是实时并发数据库事务处理同步复制器和负载平衡器。
所有的数据库客户都通过ICX访问数据库。当访问、查询SQL
Server数据库的时候ICX可以根据实际情况分配服务器来提供服务,大大提高服务速度和优化性能,完成负载均衡。ICX可以同时连接多台数据库,这若干台数据库的内容在任何时刻由ICX保证是完全一致的。也就是说,ICX采用了全新的并发事务处理的方式,向连接的N台数据库同步复制事务处理,使得系统在任何时刻具有多个一致的最新逻辑数据库数据集。当其中一台数据库服务器发生故障的时候,ICX可以实时的、第一时间切换到其他服务器上来继续提供服务。真正的实现零时间的服务器切换,大大提高安全性,真正意义的实现服务器不间断服务。
5:当然自己可以DIY:用f5的网络负载均衡硬件和sql
server的复制技术软件可以实现负载均衡,故障切换则需要windows的cluster或者sql server
2005的mirror。除了那个f5的硬件外,整个方案成本其实很低。
如若满意,请点击右侧采纳答案,如若还有问题,请点击追问
希望我的回答对您有所帮助,望采纳!
以上就是关于GBase 8a MPP数据库如何通过JDBC实现连接级的负载均衡全部的内容,包括:GBase 8a MPP数据库如何通过JDBC实现连接级的负载均衡、我有多台读的sql2008数据库,想用haproxy四层来做负载均衡、物流公司网站的货物跟踪系统怎么做的,如何编程_物流运输跟踪等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)