展开

关键词

Apache Calcite 功简析及在 Flink 的应用

• Apache Calcite 是一个动态数据的管理框架,可以用来构建数据库系统的语法解析模块• 不包含数据存储、数据处理等功• 可以通过编写 Adaptor 来扩展功,以支持不同的数据处理平台• 具体情况参见 https:calcite.apache.orgdocsstream.htmlFlink 与 Calcite下图是 Flink 系统构,其中 Table API 与 SQL 模块以 Calcite image.png下图是 SQL 和 Table API 两种表达形式的处理逻辑,上下两种是等价的:image.png而言之,Table SQL API 的编程框架如下:1. 运行时 Demo下面的案例展示了对一句 SQL 查询的中间和最终处理果:image.pngimage.png参考阅读Stream Processing for Everyone with SQL and

4.3K103

java缓存

2、缓存策略a、Query Cache以SQL作为key值缓存查询果集一旦查询涉及的表记录被修改,缓存就会被自动删除设置合适的Query Cache会极大提高数据库性Query Cache并非越大越好 MySQL: query_cache_size= 128Mb、Data Bufferdata buffer是数据库数据在内存中的容器data buffer的命中率直接决定了数据库的性data buffer ,无需业务代码显式编程,是最省事的缓存策略当软件构按照OR Mapping框架的要求进行针对性设计,使用对象缓存将会极大降低Web系统对于数据库的访问请求良好的设计数据库构和利用对象缓存,够提供极高的性 查询缓存和对象缓存适用的场景不一样,是互为补充的当查询果集涉及的表记录被修改以后,需要注意清理缓存3、页面缓存a、作用针对页面的缓存术不但可以减轻数据库服务器压力,还可以减轻应用服务器压力好的页面缓存可以极大提高页面渲染速度页面缓存的难点在于如何清理过期的缓存 b、分类I、动态页面静态化利用模板术将访问过一次的动态页面生成静态html,同时修改页面链接,下一次请求直接访问静态链接页面动态页面静态化术的广泛应用于互联网CMS新闻类Web应用,但也有BBS应用使用该

1.1K50
  • 广告
    关闭

    腾讯云前端性能优化大赛

    首屏耗时优化比拼,赢千元大奖

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java Web术经验

    注意:推荐使用servlet规范中的过滤器Filter实现的功就用Filter实现,因为HandlerInteceptor只有在Spring Web MVC环境下才使用,因此Filter是最通用的 接口层应该实现如下目标(参考:SpringMVC4.1之Controller层最佳实践):统一的响应体、请求体,规避Map、List作参数或者响应果的方式(尤其是参 - 数用Map来包装,这种代码有时候看起来真的让人很沮丧 插入数据时应使用insert ... on duplicate语句,参考insert on duplicate语法)普通索引组合索引使用@Async注解,可限定某个类的所有方法或者某个方法进行异步处理,属于对线程池术的封装 需要通过日志打印验证@Async确实起作用了,可有三个坑:(1)内部调用不异步;(2)不重复扫描,确保带@Async注解的方法所在的类只被Component-Scan扫一次;(3)必须是public 敏捷开发并不是野蛮开发,最关键的特性是小步快跑,作为开发者,还是要从下列几个方面考虑问题:需求评审,产出需求文档设计评审,产出设计文档代码开发(尽量使用最佳实践,注意要写基本的单元测试)基本功开发日志记录异常处理入参检查返回果生成异步任务处理代码

    27350

    Java多线程

    在我们使用的术中,Java的基础知识多线程也是一门十分重要的术,但是很多做java的开发者并不是接触到这些知识,自己也是专门做后端研发后,才开始使用,也过一些相关知识,但是还是感觉不够透彻,今天又把 java多线程的书过了一部分,顺便再记录下知识点,帮助自己记忆,但是还是多多在代码中使用,才加深理解。 Thread 是类只被继承 ,无法实现多继承的方式。而 Runnable 和Callable是接口,方便使用者使用多继承的方式。 Thread 和Runnable 实现的接口是没有返回值的,而Callable接口实现的线程具有返回值,如果我们在别的线程中需要使用该方式实现需要返回果的话,那么选择Callable的方式是最好的。 interrupt(),告知线程停止,在运行的线程上打个标签,告知线程运行完该任务后束。 this.interrupted(),测试当前线程是否已经中断。

    18640

    java多线程

    java中在线程同步中采取了锁的方式来让数据同步。synchronized 关键字 使用1. 把非线程安全的变成线程安全的。在方法名前面加上该关键字即可。 public synchronized String getContent(){ return null ; }虽然这两种方法中都可以形成线程安全,但是如果在操作中不当,也会出现线程不安全的果。 我们在使用该等待方式之前必须,先获得锁才使用,不然获得就是异常. 公平锁与非公平锁:公平锁是在先进来的线程会先获得资源。 非公平锁先进来的线程不一定会先获得锁,可有的线程一直拿着锁不放,容易造成线程锁之间的不公平。 读锁与读锁之间互不影响,共同存在,不排斥。读锁与写锁之间,读锁与写锁互斥,读取数据时写锁不执行。一锁执行写锁与写锁之间,也互斥,同时只一个锁在执行。

    20140

    MongoDB Java 操作

    MongoDB 中许多名词和我们常用的关系型数据库不太一致:对比作为一个数据库,最基本的功就是CRUD:增:db.collection.insertOne(Document)insert改:db.collection.updateOne filter)collection.deleteMany(filter);delete查询:db.collection.find(query, projection)相比于上面的几种操作,查询就会显得更有巧 查询一条记录:queryOne如果有多个条件,则继续put条件进filter:query聚合操作:MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据果 Mongodb中实现就会显得比较复杂了:select sum(*) from (select deCode from tb group by Decode) t1aggregate当然如果你只是单纯的想要查询一个数 ,那也有简单的方法:collection.count(cnd);count有了以上的这些方法,基本上完成日常工作中的任务了。

    12900

    Java程序性优化之编程

    程序的性受代码质量的直接影响。在本文中,主要介绍一些代码编写的小巧和惯例,这些巧有助于在代码级别上提升系统性。 1、慎用异常在Java软件开发中,经常使用 try-catch 进行错误捕获,但是,try-catch 语句对系统性而言是非常糟糕的。 虽然在一次 try-catch中,无法察觉到它对性带来的损失,但是,一旦try-catch被应用于循环之中,就会给系统性带来极大的伤害。 如果将try-catch移到循环体外,那么就提升系统性,如下代码 public void test() { int a = 0; try { for (int i = 0; i < 1000000; +) { a = a + 1; System.out.println(i); } System.out.println(System.currentTimeMillis() - start); }运行果很明显

    21520

    Oceanus使用自定义Connector指南

    WITH ( connector = datagen, rows-per-second=1, -- 每秒产生的数据条数 fields.f_sequence.kind=sequence, -- 有界序列(束后自动停止输出 SELECT f_sequence, f_random_str FROM random_source;注:首次使用Kudu表时,kudu表用impala-shell查询时需要在Impala中创建对应的外表才查到

    15720

    java 核心术 读后

    1.少用八进制,以及二进制。那么就是直接用16进制或10进制吗?额,想当年有这样搞过,后面就uuid了。2.>>>用0填充高位>>用符号位填充高位

    15820

    Java Web术经验(八)

    Web服务启用https之后面临性问题,如何解决? 参考QZone的解决方法:Qzone 高性 HTTPS 实践 Spring MVC的@RequestMapping注解中,可以使用consumes限制web服务接受处理的请求,只有发来的HTTP请求头部的 Content-Type与consumes相符合时才可以处理;可以使用produces限定HTTP响应的多媒体类型,对应的字段是Accept。 spring mvc官方文档http教程在Java开发中,或者需要访问别人暴露出的HTTP接口,Java提供的API是HttpUrlConnection,不出意外得难用;这种情况下,我原来经常使用Apache ,在Spring MVC项目中,可以通过Java Config或者XML文件形式开启MVC支持,使用Java Config的配置代码如下:@Configuration @EnableWebMvc public

    18030

    Java Web术经验(十)

    本文主要为《深入理解JVM虚拟机》一书的阅读笔记 Java堆内存溢出:在生产环境中,常常遇到各种Java内存问题,在分析JVM内存时,可以考虑使用MAT。 在Java语言中,可作为GC Roots的对象包括以下几种:虚拟机栈(栈帧中的本地变量表)中引用的对象;方法区中类静态属性引用的对象;方法区中常量引用的对象;本地方法栈中JNI(即一般说的Native方法 finalize()方法做的所有工作,使用try-finally或其他方式都可以做得更好、更及时,所以我们最好忘记这个方法的存在;垃圾回收算法:标记—清除算法、标记—复制算法、标记—整理算法和分代回收算法 读过的文章:JVM调优 阅读《Java核心术(二)》的1.5节笔记,Java序列化包括的知识点:(1)ObjectOutputStream和ObjectInputStream连个类的writeObject ()readObject()方法;(2)序列化反序列化是Java对象与字节流之间的转换过程;(3)序列化生成的文件具备指定的格式,包含了恢复Java对象需要的全部信息;(4)对于不想不序列化的字段,使用

    15620

    Java Web术经验(九)

    configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } }同样的功可使用如下 8的话,可以直接使用Java 8提供的日期接口。 重点:VALUES函数用于提取对应的列值,如果没有则返回NULL; Spring Boot + Thymeleaf + BootStrap合使用的一个例子:Spring MVC with Bootstrap and Thymeleaf对于JVM中垃圾回收算法的分类,我目前为止看到的最清晰的一篇文章:JVM调优(三):(1)按照基本策略——引用计数、标记清除、复制、标记整理;(2)按照分区对待的方式区分 阅读文章JVM调优(四),JVM中垃圾回收,面临的问题可以为如下三类:如何识别垃圾对象?(1)引用计数;(2)Root Objects对象树如何处理内存碎片问题?

    15630

    Java Web术经验(四)

    之:单元测试并不只是为了验证你当前所写的代码是否存在问题,更为重要的是它可以很大程度的保障日后因业务变更、修复Bug或重构等引起的代码变更而导致(或新增)的风险。 作为一个对外开放的接口,或者供其他模块调用的接口,必须做到以下几件事:入参检查异常处理统一的果生成配套的单元测试和接口测试用例,防止代码修改引入新的bug在ArrayList中去掉重复的对象(按照自定义的重复定义规则 ),如:JAVA巧:去除ArrayList里面的重复记录](http:www.cnblogs.comjizhapjava_arraylist_duplicate.html)在通过URL参数传入时间时, 常用Git作为代码管理工具,除了熟练使用IDEA中提供的图形化Git管理功,也需要了解这些GUI背后对应的指令,那么久需要看如下资料:猴子都懂的Git入门Pro Git(V2)Spring MVC基础知识 mvc-context-hierarchy.png最后,再重温下spring mvc的处理流程,在进行Java Web开发的时候,也时刻不要忘记对HttpRequest的处理流程。?

    17520

    Java Web术经验(一)

    注意:推荐使用servlet规范中的过滤器Filter实现的功就用Filter实现,因为HandlerInteceptor只有在Spring Web MVC环境下才使用,因此Filter是最通用的 接口层应该实现如下目标(参考:SpringMVC4.1之Controller层最佳实践):统一的响应体、请求体,规避Map、List作参数或者响应果的方式(尤其是参 - 数用Map来包装,这种代码有时候看起来真的让人很沮丧 插入数据时应使用insert ... on duplicate语句,参考insert on duplicate语法)普通索引组合索引使用@Async注解,可限定某个类的所有方法或者某个方法进行异步处理,属于对线程池术的封装 需要通过日志打印验证@Async确实起作用了,可有三个坑:(1)内部调用不异步;(2)不重复扫描,确保带@Async注解的方法所在的类只被Component-Scan扫一次;(3)必须是public 敏捷开发并不是野蛮开发,最关键的特性是小步快跑,作为开发者,还是要从下列几个方面考虑问题:需求评审,产出需求文档设计评审,产出设计文档代码开发(尽量使用最佳实践,注意要写基本的单元测试) 基本功开发日志记录异常处理入参检查返回果生成异步任务处理代码

    16520

    Java Web术经验(二)

    该系列的第一篇在此:Java Web术经验一,主要包含我在日常工作中的经验和心得体会(如有不足之处欢迎指出)。 查看JVM进程:ps -ef|grep java 查看JVM内存占用信息: sudo -u admin opttaobaojavabinjstat -gccause ${PID} 1000 1000 dump 论:tomcat 7.0.26.1版本中的JreMemoryLeakPreventionListener,该监听器每隔一个小时会触发一次System.gc()。 Java Web的最佳实践:Spring Boot + Thymeleaf,基础术包括:Spring + HTML + CSS。 参考:Thymeleaf官网数据库部分,企业级Java Web要求的知识架构很多,后端就包括数据术,最常用的是关系型数据库MySQL,可以阅读下列文章补充一点知识点。

    35630

    Java Web术经验(六)

    Java开发中,当某个变量需要在多个线程之间共享时,需要分析具体的场景:如果多个线程对该共享变量的读和写之间没有竞争关系,则可以考虑使用concurrent包下提供的并发数据构,例如ConcurrentHashMap 作用:(1)确保多线程之间互斥访问共享变量;(2)确保共享变量的修改够及时可见;(3)有效解决重排序问题。原理:synchronized是Java的内置锁。 特性 可见性。对一个volatile变量的读,看到(任意线程)对这个volatile变量最后的写入。 分布式session服务的实现 在之前参加过的一个项目中,负责session服务的重写(C++转Java),站在更高的层面看,为什么需要这个session服务呢?

    13120

    Java Web术经验(三)

    另外,使用Java进行正则匹配的教程,可以参考:Java正则表达式Thymeleaf是一种用于代替JSP的新兴术,Spring提供了与Thymeleaf的原生模板(nature template)协作的视图解析器 关于Thymeleaf的介绍可以参看这篇文章:新一代Java模板引擎Thymeleaf别返回null值:当一个方法返回Collection集合的时候,不要返回null,如果没有果则返回空的集合(例如: 这就是Java开发中的特例模式的应用。如何学习开源项目,例如Spring? 整理一点优质材料在这里吧:好书 《Spring揭秘》,关于Spring的术图书,这本最好,具体怎么好? ,了解它, 那么, 不妨先一小块儿一小块儿的去探索,然后再合你探索的这些碎片成果进行拼装和推演, 慢慢地,你就会对这个庞然大物有了更多的了解(当然, 是否够完全了解,我就不敢妄言了)”这句,非常适合用在这里

    25250

    Java Web术经验(七)

    最近开发时发现,原来的apache-commons-colllections依赖库不用了,然后去官网查了下,发现近期apache-commons-collections进行了迁移。如下所示: ? 当表中该参数有索引的时候,只有类型对才用到索引。例如,这里的kp在表中有索引,那么只有用#{}传入参数才可用到索引。 参考:Java 用自定义类型作为HashMap的键 在JavaWeb开发中,你需要掌握的MySQL知识,可以参考:MySQL这篇文章。 $在Spring MVC项目中,可需要添加业务监控日志,我们这里用到Spring AOP功。 在Controller中添加AOP,可会出现拦截方法不生效的情况,这种情况可以参考SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式);另外,也可以利用filter

    12810

    Java Web术经验(五)

    String中的compareTo方法:返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等 this.outgoingCount = outgoingCount; } o的outgoing_count小于this的对应字段,则返回负数;大于则返回正数;在这里懒得了解背后的原理的话,则可以尝试下果即可 例子如下所示,该语句的执行果,将会把新插入记录的id值赋值给bean对象。

    11010

    java 开发。自用

    21120

    相关产品

    • 1+X 认证

      1+X 认证

      学历证书+若干职业技能等级证书(1+X证书),就是学生在获得学历证书的同时,取得多类职业技能等级证书。目前,腾讯云1+X认证(XCERT)已获得由教育部颁发的“云服务操作管理”和“界面设计”两项1+X职业技能等级证书。XCERT可为高校1+X职业技能等级证书的培训、考核提供系统的服务。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券