技术笔记6

不建议使用触发器:
在大量并发的情况下,使用触发器是很危险的事。在并发量大的系统中触发器很影响性能的. 如果非用不可,一定要注意SQL的质量. 对性能的影响大小跟SQL的质量关系很大.不能一概而论.触发器多不是好事: 第一:一定会影响性能,若是数据量大时,每次都要触发上百上千触发器可想而知 第二:基于维护方面,不谈有多少触发器,当每修改一次触发表相应触发器就失效,符出代价可想而知. 不建义多用触发器,用函数与过程代替之.


地址识别addr_ident先不动。
标准化移动到总部,保证基础表在总部地址库里有

 

 

addrinputrs 需要目的地城市 bingo

jaxrs 对应wadl

jawrs对应wsdl

人工识别(补码/审核/小组补码)数据分中心上传总部
运单号,识别结果

 linux命令:


1、或操作

grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename // 用egrep同样可以实现
awk '/123|abc/' filename // awk 的实现方式
2、与操作

grep pattern1 files | grep pattern2 //显示既匹配 pattern1 又匹配 pattern2 的行。
3、其他操作

grep -i pattern files //不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files //只列出匹配的文件名,
grep -L pattern files //列出不匹配的文件名,
grep -w pattern files //只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files //匹配的上下文分别显示[number]行,

 

JNDI:

<!--
12 JNDI配置的资源引用:
13 • res-ref-name:表示引用资源的名称
14 • res-type:此资源对应的类型为javax.sql.DataSource
15 • res-auth:容器授权管理
16 -->


http://www.cnblogs.com/xdp-gacl/p/4040019.html

http://www.cnblogs.com/xdp-gacl/p/4040103.html c3p0

 

kafka:

 

SapProducerManager.java

package com.sf.integration.sap.produce;

import java.util.Arrays;
import java.util.List;

import com.sf.integration.kafka.util.JsonUtil;
import com.sf.integration.sap.domain.RmsSrcKafka;
import com.sf.kafka.api.consume.ConsumeConfig;
import com.sf.kafka.api.consume.ConsumeOptionalConfig;
import com.sf.kafka.api.consume.IStringMessageConsumeListener;
import com.sf.kafka.api.consume.KafkaConsumeRetryException;
import com.sf.kafka.api.consume.KafkaConsumerRegister;
import com.sf.kafka.api.consume.ConsumeOptionalConfig.AutoOffsetReset;
import com.sf.kafka.api.produce.IKafkaProducer;
import com.sf.kafka.api.produce.ProduceConfig;
import com.sf.kafka.api.produce.ProducerPool;
import com.sf.kafka.exception.KafkaException;

public class SapProducerManager {

private String topic;
private String url;
private String clusterName;
private int poolSize;
private String topicTokens;
private IKafkaProducer kafkaProducerPool;

public static void main(String[] args) throws KafkaException {
SapProducerManager manager = new SapProducerManager();
manager.setUrl("http://10.202.34.30:8292/mom-mon/monitor/requestService.pub");
manager.setTopic("RMS_SAP");
manager.setTopicTokens("RMS_SAP:09QhVR!m");
manager.setClusterName("sfst");
manager.setPoolSize(1);
manager.createProducer();
RmsSrcKafka to = new RmsSrcKafka("1000000000", 2, "test RmsSrcTo info");
String message = JsonUtil.encode2json(to);
manager.sendMessages(Arrays.asList(message));
manager.getKafkaProducerPool().close();
manager.consume();
}

private void consume() throws KafkaException{
System.setProperty("zookeeper.sasl.client", "false");
ConsumeConfig consumeConfig = new ConsumeConfig(
"EXP_IMAGE_NEW:o6*@K984", url, clusterName,topic,1);
ConsumeOptionalConfig optionalConfig = new ConsumeOptionalConfig();
optionalConfig.setMessageGroupSize(1);
optionalConfig.setAutoOffsetReset(AutoOffsetReset.CUSTOM);
optionalConfig.setAutoOffsetResetMinute(60);
IStringMessageConsumeListener listener = new IStringMessageConsumeListener() {

@Override
public void onMessage(List<String> paramList)
throws KafkaConsumeRetryException {

for(String message : paramList){
System.out.println(message);
}
}
};
KafkaConsumerRegister.registerStringConsumer(consumeConfig, listener,optionalConfig);
}

public IKafkaProducer createProducer() {
if(topic.equals("RMS_SAP")){
return null;
}
ProduceConfig produceConfig = new ProduceConfig(poolSize, url,
clusterName, topicTokens);
kafkaProducerPool = new ProducerPool(produceConfig);
return kafkaProducerPool;
}

public void sendMessages(List<String> messages) {
kafkaProducerPool.batchSendString(topic, messages);
}

public String getTopic() {
return topic;
}

public void setTopic(String topic) {
this.topic = topic;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getClusterName() {
return clusterName;
}

public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}

public int getPoolSize() {
return poolSize;
}

public void setPoolSize(int poolSize) {
this.poolSize = poolSize;
}

public String getTopicTokens() {
return topicTokens;
}

public void setTopicTokens(String topicTokens) {
this.topicTokens = topicTokens;
}

public IKafkaProducer getKafkaProducerPool() {
return kafkaProducerPool;
}

public void setKafkaProducerPool(IKafkaProducer kafkaProducerPool) {
this.kafkaProducerPool = kafkaProducerPool;
}



}

 

javax.management.JMRuntimeException: Failed to load MBeanServerBuilder class org.jboss.mx.server.MBeanServerBuilderImpl: java.lang.ClassNotFoundException: org.jboss.mx.server.MBeanServerBuilderImpl


-Djavax.management.builder.initial= -Dorg.jboss.server.jmx.MBenServerBuilderImpl

-Djboss.home=E:"/jboss-4.2.2.GA(int_o)" -Djava.library.path=E:"/jdk1.6.0_26/bin" -Djava.endorsed.dirs=E:"/jboss-4.2.2.GA(int_o)/lib/endorsed" -Xms1024m -Xmx1024m -XX:"MaxNewSize=256m" -XX:"MaxPermSize=256m"-Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl;


正解:在run.bat脚本中加入如下信息,就能用Jconsole监控

set JAVA_OPTS=%JAVA_OPTS% -Djava.rmi.server.hostname=10.118.63.106 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

kafka线程名字。
"consumer-task-" + topic + '-' + ++index;

tt_addrinput_rs上传到int_o传给输单MQ远程队列供WBEP消费。

 

 

2016-01-21 04:13:29:000000
http://developer.51cto.com/art/201507/486162.htm
一个性能较好的JVM参数配置
2015-07-29 10:28 Hi_峰兄 字号:T | T
一键收藏,随时查看,分享好友!
G1垃圾收集器(-XX:+UseG1GC) G1(Garbage First):垃圾收集器是在Java 7后才可以使用的特性,它的长远目标时代替CMS收集器。G1收集器是一个并行的、并发的和增量式压缩短暂停顿的垃圾收集器。G1收集器和其他的收集器运 行方式不一样,不区分年轻代和年老代空间。
AD:51CTO网+ 首届中国APP创新评选大赛火热招募中……
一个性能较好的web服务器jvm参数配置:

-server//服务器模式
-Xmx2g //JVM最大允许分配的堆内存,按需分配
-Xms2g //JVM初始分配的堆内存,一般和Xmx配置成一样以避免每次gc后JVM重新分配内存。
-Xmn256m //年轻代内存大小,整个JVM内存=年轻代 + 年老代 + 持久代
-XX:PermSize=128m //持久代内存大小
-Xss256k //设置每个线程的堆栈大小
-XX:+DisableExplicitGC //忽略手动调用GC, System.gc()的调用就会变成一个空调用,完全不触发GC
-XX:+UseConcMarkSweepGC //并发标记清除(CMS)收集器
-XX:+CMSParallelRemarkEnabled //降低标记停顿
-XX:+UseCMSCompactAtFullCollection //在FULL GC的时候对年老代的压缩
-XX:LargePageSizeInBytes=128m //内存页的大小
-XX:+UseFastAccessorMethods //原始类型的快速优化
-XX:+UseCMSInitiatingOccupancyOnly //使用手动定义初始化定义开始CMS收集
-XX:CMSInitiatingOccupancyFraction=70 //使用cms作为垃圾回收使用70%后开始CMS收集

说明:

-Xmn和-Xmx之比大概是1:9,如果把新生代内存设置得太大会导致young gc时间较长

一个好的Web系统应该是每次http请求申请内存都能在young gc回收掉,full gc永不发生,当然这是最理想的情况

xmn的值应该是保证够用(够http并发请求之用)的前提下设置得尽量小

web服务器和游戏服务器的配置思路不太一样,最重要的区别是对游戏服务器的xmn即年轻代设置比较大,和Xmx大概1:3的关系,因为游戏服务器一般是长连接,在保持一定的并发量后需要较大的年轻代堆内存,如果设置得大小了会经常引发young gc

对JVM的简介

一个性能较好的jvm参数配置以及jvm的简介

由上图可以看出JVM堆内存的分类情况,JVM内存被分成多个独立的部分

 

目前RMI只是内容网络使用,建立java 代理调用

org.apache.mina.core.session.IoSession

java.net.InetSocketAddress.InetSocketAddress(String hostname, int port)

org.apache.mina.transport.socket.nio.NioSocketConnector

java.util.zip.DeflaterOutputStream 序列化

java.util.zip.InflaterInputStream 反序列化

com.sf.remoting.transport.client.request.RequestWrap

org.apache.mina.core.service.IoHandler

com.sf.remoting.server.core.invoke.RMIDispatcher.invoke 调用spring的sessionfactory.getbean获得对应服务端对象,利用反射调用对象的对应方法

com.sf.remoting.transport.client.handler.TransportHandler 继承org.apache.mina.core.service.IoHandler, 调用dispatcher.invoke。

org.apache.mina.core.future.ConnectFuture

 

 

 

 

 

org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

 

posted @ 2017-07-14 16:19  adaandy  阅读(367)  评论(0编辑  收藏  举报