heisenberg 如何配置

工作很忙,但是邮件,qq等来咨询的人比较多,所以在这里再发一个阉割后生产的配置供大家参考

首先核心配置就三个文件server.xml,schema.xml,rule.xml,还有hsb.properties,用于对应用服务器配置

hsb的目录结构如下:

heisenberg

/bin 启动脚本所在目录

/conf  classpath所在目录

默认配置文件所在  对应的hsb.properties和log4j.xml必须要在conf下

server.xml,schema.xml,rule.xml 这三个默认在下面

/lib

/logs    默认日志所在目录

startup.sh -h可以显示对应的参数

startup.sh -c  可以指定对应的配置folder,比如有几套系统,-l 可以指定输出日志目录,和之前一样

server.xml

<?xml version="1.0" encoding="UTF-8"?>
 
<heisenberg:server xmlns:heisenberg="https://github.com/brucexx/heisenberg">
  
  <!-- 系统参数定义,服务端口、管理端口,处理器个数、线程池等。 -->
  <system>
    <property name="serverPort">4320</property>
    <property name="managerPort">4321</property>
    <property name="initExecutor">16</property>
    <property name="timerExecutor">4</property>
    <property name="managerExecutor">4</property>
    <property name="processors">8</property>
    <property name="processorHandler">16</property>
    <property name="processorExecutor">16</property>
    <property name="clusterHeartbeatUser">_HEARTBEAT_USER_</property>
    <property name="clusterHeartbeatPass">_HEARTBEAT_PASS_</property>
    <property name="dataNodeHeartbeatPeriod">15000</property>
  </system>

 
  <!--用户名密码等   -->
  <user name="pay">
    <property name="password">brucexx</property>
    <property name="schemas">wms_shard</property>
  </user>

    <!-- 
  <user name="pay">
    <property name="needEncrypt">true</property>
    <property name="password">lTrRlcGA0jOuucx8z4pCKj1Qg4GuqQNj2FDT2x9B4P4TEO/O5kj9TxPgzT2JgqY6jo8XsVSvzVqZ4W5DJc1gCA==</property>
    <property name="schemas">wms_shard</property>
  </user>

  -->

</heisenberg:server>

其实加密密码是动态的,大家可根据自己的安全级别来设定,但是要指定hsb.properties里的公钥

publicKey=xxxxx

大家如果要使用,可以下载源码 查看EncryptGen这个文件去生成对应的密文,加密方法RSA 位数512,至于如何生成对应的密钥对,我这里就不说了

schema.xml

<?xml version="1.0" encoding="UTF-8"?>

<heisenberg:schema xmlns:heisenberg="https://github.com/brucexx/heisenberg">
	<schema name="wms_shard">
  		<table name="t_asset_deal_type" dataNode="wmsDN$0-99" rule="rule1" />
		<table name="t_supplier_account_info" dataNode="wmsDN$0-99" rule="rule1" />
		<table name="t_user_account_info" dataNode="wmsDN$0-99" rule="rule1" />
		<table name="t_user_bank_sign_request_info" dataNode="wmsDN$0-99" rule="rule2" />
		<table name="t_user_bind_bank_info" dataNode="wmsDN$0-99" rule="rule1" />
		<table name="t_user_fund_sign_request_info" dataNode="wmsDN$0-99" rule="rule2" />
		<table name="t_user_id_map" dataNode="wmsDN$0-99" rule="rule3" />
		<table name="t_user_investment_info" dataNode="wmsDN$0-99" rule="rule4" />
		<table name="t_cert_info_upload_log" dataNode="wmsDN_Single" rule="rule5" />
		<table name="t_cert_file_upload_summary_info" dataNode="wmsDN_Single" rule="rule6" />
		<table name="t_user_bind_card_replace_info" dataNode="wmsDN_Single" rule="rule7" />
		<table name="t_province_city_info" dataNode="wmsDN_Single" rule="rule7" />
	</schema>

	<dataNode name="wmsDN">
		<property name="dataSource">
			<dataSourceRef>wmsDS$0-99</dataSourceRef>
		</property>
		<property name="poolSize">256</property>
		<property name="heartbeatSQL">select user()</property>
	</dataNode>

	<dataSource name="wmsDS" type="mysql">
		<property name="location">
			<location>127.0.0.1:5506/wms_db_$00-99</location>
		</property>
		<property name="user">work_pay</property>
		<property name="password">123456</property>
	</dataSource>

	 <!-- 单库的 -->
	<dataNode name="wmsDN_Single">
		<property name="dataSource">
			<dataSourceRef>wmsDS_Single</dataSourceRef>
		</property>
		<property name="poolSize">256</property>
		<property name="heartbeatSQL">select user()</property>
	</dataNode>

	<dataSource name="wmsDS_Single" type="mysql">
		<property name="location">
			<location>127.0.0.1:5506/wms_db</location>
		</property>
		<property name="user">work_pay</property>
		<property name="password">123456</property>
	</dataSource>

 

</heisenberg:schema>

里面的密码也是支持加密的,和server.xml里一样,加个neeEncrypt,这里不再累述

rule.xml

<?xml version="1.0" encoding="UTF-8"?>

<rule>
	<tableRule name="rule1">
		<columns>F_USER_ID</columns>
		<dbRuleList>
			<dbRule><![CDATA[
				#set($sub_str=$F_USER_ID%1000+"")
				$!stringUtil.substring($stringUtil.alignRights($sub_str,3,"0"),0,2)]]>
			</dbRule>
		</dbRuleList>
		<tbRuleList>
			<tbRule><![CDATA[
				#set($sub_str=$F_USER_ID%1000+"")
				#set($sub_str=$stringUtil.alignRights($sub_str,3,"0"))
				#set($db_flag=$stringUtil.substring($sub_str,0,2))
				#set($tb_flag=$stringUtil.substring($sub_str,2))
				#set($prefix="_"+$db_flag+"_"+$tb_flag)##
				$!prefix]]>
			</tbRule>
		</tbRuleList>
		<tbPrefix>
				<![CDATA[
						def map = [:];
						for (int i=0; i<100; i++) {
							def list = [];
							for (int j=0; j<10; j++) {
								def k=i<10?"0"+i:i;
								list.add("_"+k+"_"+j);
							}
							 map.put(i,list);
						};
						return map; 
				]]>
		</tbPrefix>
	</tableRule>
	<tableRule name="rule2">
		<columns>F_APPLICATION_NO</columns>
			<dbRuleList>
				<dbRule><![CDATA[
					$!stringUtil.substring($F_APPLICATION_NO,-3,-1)]]>
				</dbRule>
			</dbRuleList>
		<tbRuleList>
			<tbRule><![CDATA[
				#set($db_flag=$!stringUtil.substring($F_APPLICATION_NO,-3,-1))
				#set($tb_flag=$!stringUtil.substring($F_APPLICATION_NO,-1))
				#set($prefix="_"+$db_flag+"_"+$tb_flag)##
				$!prefix]]>
			</tbRule>
		</tbRuleList>
		<tbPrefix>
				<![CDATA[
						def map = [:];
						for (int i=0; i<100; i++) {
							def list = [];
							for (int j=0; j<10; j++) {
								def k=i<10?"0"+i:i;
								list.add("_"+k+"_"+j);
							}
							 map.put(i,list);
						};
						return map; 
				]]>
		</tbPrefix>
	</tableRule>
	<tableRule name="rule3">
		<columns>F_UID</columns>
		<dbRuleList>
			<dbRule><![CDATA[
				#set($sub_str=$F_UID%1000+"")
				$!stringUtil.substring($stringUtil.alignRights($sub_str,3,"0"),0,2)]]>
			</dbRule>
		</dbRuleList>
		<tbRuleList>
			<tbRule><![CDATA[
				#set($sub_str=$F_UID%1000+"")
				#set($sub_str=$stringUtil.alignRights($sub_str,3,"0"))
				#set($db_flag=$stringUtil.substring($sub_str,0,2))
				#set($tb_flag=$stringUtil.substring($sub_str,2))
				#set($prefix="_"+$db_flag+"_"+$tb_flag)##
				$!prefix]]>
			</tbRule>
		</tbRuleList>
		<tbPrefix>
				<![CDATA[
						def map = [:];
						for (int i=0; i<100; i++) {
							def list = [];
							for (int j=0; j<10; j++) {
								def k=i<10?"0"+i:i;
								list.add("_"+k+"_"+j);
							}
							 map.put(i,list);
						};
						return map; 
				]]>
		</tbPrefix>
	</tableRule>
	<tableRule name="rule4">
		<columns>F_CERTIFICATE_CODE</columns>
		<dbRuleList>
			<dbRule><![CDATA[
				#set($db_flag=$!stringUtil.crc32($F_CERTIFICATE_CODE))
				$!stringUtil.substring($db_flag,-3,-1)]]>
			</dbRule>
		</dbRuleList>
		<tbRuleList>
			<tbRule><![CDATA[
				#set($sub_str=$!stringUtil.crc32($F_CERTIFICATE_CODE))
				#set($db_flag=$!stringUtil.substring($sub_str,-3,-1))
				#set($tb_flag=$!stringUtil.substring($sub_str,-1))
				#set($prefix="_"+$db_flag+"_"+$tb_flag)##
				$!prefix]]>
			</tbRule>
		</tbRuleList>
		<tbPrefix>
				<![CDATA[
						def map = [:];
						for (int i=0; i<100; i++) {
							def list = [];
							for (int j=0; j<10; j++) {
								def k=i<10?"0"+i:i;
								list.add("_"+k+"_"+j);
							}
							 map.put(i,list);
						};
						return map; 
				]]>
		</tbPrefix>
	</tableRule>
	<tableRule name="rule5">
		<columns>F_SP_ID</columns>
		<dbRuleList>
			<dbRule><![CDATA[0]]>
			</dbRule>
		</dbRuleList>
		<tbRuleList>
			<tbRule><![CDATA[
				#set($tb_flag=$F_SP_ID+"")
				#set($prefix="_"+$tb_flag)##
				$!prefix]]>
			</tbRule>
		</tbRuleList>
		<tbPrefix>
				<![CDATA[
						def map = [:];
						def list = [];
						for (int i=0; i<100; i++) {
							list.add("_"+i);
						};
						map.put(0,list);
						return map; 
				]]>
		</tbPrefix>
	</tableRule>
	<tableRule name="rule6">
		<columns>F_USER_ID</columns>
		<dbRuleList>
			<dbRule><![CDATA[
				#set($sub_str=$F_USER_ID%1000+"")
				$!stringUtil.substring($stringUtil.alignRights($sub_str,3,"0"),0,2)]]>
			</dbRule>
		</dbRuleList>
		<tbRuleList>
			<tbRule><![CDATA[$!prefix]]>
			</tbRule>
		</tbRuleList>
		<tbPrefix>
		</tbPrefix>
	</tableRule>
	<tableRule name="rule7">
		<columns>F_FAKE_PARTITION_ID</columns>
		<dbRuleList>
			<dbRule><![CDATA[
				#set($sub_str=$F_FAKE_PARTITION_ID%1000+"")
				$!stringUtil.substring($stringUtil.alignRights($sub_str,3,"0"),0,2)]]>
			</dbRule>
		</dbRuleList>
		<tbRuleList>
			<tbRule><![CDATA[$!prefix]]>
			</tbRule>
		</tbRuleList>
		<tbPrefix>
		</tbPrefix>
	</tableRule>
</rule>

大家对号入坐,自己看

然后一个表里有多个字段想命中,

<tableRule name="rule1" forceHit="true">
		<columns>F_TRANS_ID,F_BUYER_USER_ID</columns>
		<dbRuleList>
			<dbRule><![CDATA[$!stringUtil.substring($F_TRANS_ID,-3,-1)]]></dbRule>
			<dbRule><![CDATA[
				#set($sub_str=$F_BUYER_USER_ID%1000+"")
				$!stringUtil.substring($stringUtil.alignRights($sub_str,3,"0"),0,2)]]>
			</dbRule>
		</dbRuleList>
		<tbRuleList>
			<tbRule><![CDATA[
				#set($db_flag=$!stringUtil.substring($F_TRANS_ID,-3,-1))
				#set($tb_flag=$!stringUtil.substring($F_TRANS_ID,-1))
				#set($prefix="_"+$db_flag+"_"+$tb_flag)##
				$!prefix]]>
			</tbRule>
			<tbRule><![CDATA[
				#set($sub_str=$F_BUYER_USER_ID%1000+"")
				#set($sub_str=$stringUtil.alignRights($sub_str,3,"0"))
				#set($db_flag=$stringUtil.substring($sub_str,0,2))
				#set($tb_flag=$stringUtil.substring($sub_str,2))
				#set($prefix="_"+$db_flag+"_"+$tb_flag)##
				$!prefix]]>
			</tbRule>
		</tbRuleList>
		<tbPrefix>
				<![CDATA[	 
						def map = [:];
						for (int i=0; i<100; i++) {
							def list = [];
							for (int j=0; j<10; j++) {
								def k=i<10?"0"+i:i;
								list.add("_"+k+"_"+j);
							}
							map.put(i,list);
						};
						return map; 
				]]>
		</tbPrefix>
	</tableRule>
时间: 2024-10-28 20:28:09

heisenberg 如何配置的相关文章

Win10下IIS配置、项目发布、添加网站

Win10下IIS配置 1.找到控制面板:[开始]菜单鼠标右击,打开[控制面板] 2.打开控制面板,点击[程序],点击[启用或关闭Windows功能] 下一步,点击[启用虎关闭Windows功能] 3. 开始修改IIS了,我是这样勾上的,有可能比较多. 4. 验证IIS是否正确安装,等待几分钟后IIS配置完成.在浏览器输入http://localhost/iisstart.htm会出现 IIS安装成功页面.第一次修改的时候出现了成功页面,但是后来删除了IIS中默认的网站就打不开了,但是不影响的.

linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)

linux备份nginx.conf文件举例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在进程列表里 面找master进程,它的编号就是主进程号. ps -ef | grep nginx 查看进程 cat /usr/local/nginx/nginx.pid 每次修改完nginx文件都要重新加载配置文件linux命令: /usr/local/nginx -t //验证配置文件是否合法 若ngin

solr分布式索引【实战一、分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例】

1 private static Properties prop = new Properties(); 2 3 private static String confFilePath = "conf" + File.separator + "config.properties";// 配置文件目录 4 static { 5 // 加载properties 6 InputStream is = null; 7 InputStreamReader isr = null;

IDEA 配置maven

编写Maven的settings.xml文件内容如下 引入阿里镜像和maven在中国的中央仓库镜像 <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc

华为交换机配置telnet和SSH登录设备(简单实用版)

Telnet是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法,极大的提高了用户操作的灵活性. 测试拓扑图 配置telnet: 1.1普通认证登录

win7设置固定IP重启后无法上网,ipconfig显示为自动配置IPV4 169.254的地址

近日安装原版Win7系统打完网卡驱动补丁后,给电脑设置了固定的IP地址后一切正常,但是电脑重启后发现上不了网了,右下角网络图标有个感叹号,打开网络和共享中心-->本地连接-->详细信息-->发现IPv4的地址与ipconfig /all得到的IP地址一致,均显示为:自动配置IPv4地址:169.254.123.188(首选) 但是查看本地连接-->属性里看到之前设置的固定IP地址是没有问题的, 所以想到了应该是电脑启用了自动配置IPv4功能,导致了固定IP无法分配给电脑, 尝试用命

PL/SQL配置大小写转换等快捷键

Tools(工具) --> Preferences(首选项) --> Key Configuration(键配置) 然后修改自己需要的快捷键方式 作者:itmyhome

联想X270——正版Win10换win7之BIOS配置及系统安装

笔记本安装系统现在是越来越困难了,最早的万能大法Legacy+IDE+win7纯净版光盘的方法已经越来越不适应. 公司新配了出差笔记本联想X270,不再有可刻录光驱,印象当中ThinkPad必定有Thinkvantage,这代也没用了,标配固态硬盘+机械硬盘可以让系统开机速度达到8秒,Fn的组合键在Win10中也运用的流畅自如,内外双电池的配备使得你即便拔了可拆卸电池也不会关机. 即便是这样,还是得到需求,要求安装成Win 7. 下面分享一下我的安装过程. 我这个版本的X270的CPU是6代i5

ubuntu配置静态路由及重启生效

ubuntu配置静态路由及重启生效 第一种方法:使用route命令(添加临时路由) 添加到主机的路由 # route add -host 192.168.1.123 dev eth0 # route add -host 192.168.1.123 gw 192.168.1.1 添加到网络的路由 # route add -net 192.168.1.123 netmask 255.255.255.0 eth0 # route add -net 192.168.1.123 netmask 255.2