zoukankan      html  css  js  c++  java
  • 技术笔记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

  • 相关阅读:
    jekyll+livereload+chrome插件-更新文件后自动刷新
    boostraps+jekyll+sass/scss+less+grunt整合使用详细备忘
    Centos使用keepalived配置MySQL双主热备集群
    MySQL数据库的集群方案
    Nginx使用Lua脚本加解密RSA字符串
    Nginx使用Lua脚本连接Redis验证身份并下载文件
    Centos安装ELK
    Centos7中搭建Redis6集群操作步骤
    only-office以Docker方式安装使用
    Kafka笔记
  • 原文地址:https://www.cnblogs.com/heyanan/p/7171099.html
Copyright © 2011-2022 走看看