《Hibernate快速开始》Query /Criteria

Criteria查询为HQL,JPQL和native SQL 查询提供了一种类型安全的替代方法。

Hibernate 提供了一个遗留下来比较旧的org.hibernate.CriteriaAPI,并且它不被推荐使用。没有功能开发将针对这些API。最终,特定于Hibernate的criteria 功能将被移植到JPA的扩展javax.persistence.criteria.CriteriaQuery。有关org.hibernate.CriteriaAPI的详细信息,请参阅传统Hibernate条件查询

Read more

《RabbitMQ官方文档》订阅与发布

之前的教程中,我们创建了一个工作队列。在一个工作队列背后的假设是将每个任务都准确地交付给一个工作人员。在这个环节我们要做些完全不同的事情—我们将要把一个消息传递给多个消费者。这种模式被称为“发布/订阅”。
Read more

Java Fork/Join框架

原文链接:A Java Fork/Join Framework(PDF) – Doug Lea

译序

Doug Lea 大神关于Java 7引入的他写的Fork/Join框架的论文。

响应式编程Reactive Programming / RP)作为一种范式在整个业界正在逐步受到认可和落地,是对过往系统的业务需求理解梳理之后对系统技术设计/架构模式的提升总结。Java作为一个成熟平台,对于趋势一向有些稳健的接纳和跟进能力,有着令人惊叹的生命活力:

  1. Java 7提供了ForkJoinPool,支持了Java 8提供的StreamReactive StreamRP的一个核心组件)。
  2. 另外Java 8还提供了Lamda(有效地表达和使用RP需要FP的语言构件和理念)。
  3. 有了前面的这些稳健但不失时机的准备,在Java 9中提供了面向RPFlow API,为Java圈子提供了官方的RP API,标志着RP由集市式的自由探索阶段 向 教堂式的统一使用的转变。

通过上面这些说明,可以看到ForkJoinPool的基础重要性。

对了,另外提一下Java 9Flow API@author也是 Doug Lee 哦~

PS:基于Alex/萧欢 翻译、方腾飞 校对的译文稿:Java Fork Join 框架,补译『结论』之后3节,调整了格式和一些用词,整理成完整的译文。译文源码在GitHub的这个仓库中,可以提交Issue/Fork后提交代码来建议/指正。

0. 摘要

这篇论文描述了Fork/Join框架的设计、实现以及性能,这个框架通过(递归的)把问题划分为子任务,然后并行的执行这些子任务,等所有的子任务都结束的时候,再合并最终结果的这种方式来支持并行计算编程。总体的设计参考了为Cilk设计的work-stealing框架。就设计层面来说主要是围绕如何高效的去构建和管理任务队列以及工作线程来展开的。性能测试的数据显示良好的并行计算程序将会提升大部分应用,同时也暗示了一些潜在的可以提升的空间。

Read more

《RabbitMQ官方指南》主题

Topics

上一个教程中,我们改进了我们的日志系统而不是使用只能进行广播的fanout交换类型,我们使用direct类型,能够选择性地接收日志。 虽然使用direct交换类型改进了我们的系统,但它仍然有限制 – 它不能基于多条件进行路由选择。 在我们的日志记录系统中,我们可能不仅要根据日志级别订阅日志,还可以基于日志源进行订阅。您可能会从syslog unix工具中了解过这个概念,该工具可以根据日志级别(info/warn/crit..)和设备(auth / cron / kern …)来路由日志。

这将给我们很大的灵活性 – 我们可能只想要监听来自“cron”的重要错误,但是想监听来自”kern“的所有日志。 要在我们的日志系统中实现这一点,我们需要了解一个更复杂的交换类型-Topic(主题)交换。

Read more

《Nginx官方文档》关于nginScript

关于nginScript

nginScript是允许在 httpstream 中实现位置和变量处理程序的JavaScript语言的子集 。nginScript创建符合 ECMAScript 5.1 和一些 ECMAScript 6 扩展名。合规性仍在不断发展。

Read more

《RabbitMQ官方指南》路由

Routing

上一节我们建立了一个简单的日志系统,已经能够传播日志信息给接收者了。

在这一节我们将给它增加一个特性-订阅部分消息。比如说,我们能够从控制台打印的所有日志信息中将至关重要的错误信息指向日志文件(保存在硬盘里)。

Read more

《RabbitMQ官方指南》RPC

远程过程调用

(RPC)

(Java 客户端版)

在第二章(工作队列  Work Queues)中,我们学习了如何使用工作队列在多用户之间分配耗时的任务。

但是如果我们需要在远程电脑上运行一个函数方法,并且还要等待一个返回结果该怎么办?好吧,这将会是一个不一样的故事。这种模式通常被我们称为远程过程调用或者RPC.

在本章教程中,我们将会学习使用RabbitMQ去搭建一个RPC系统:一个客户端和一个可以升级(扩展)的RPC服务器。由于我们没有任何的值得分配的耗时的任务,所以我们将创建一个返回斐波那契数列的虚拟的RPC服务。

Read more

《Nginx官方文档》用DTrace pid提供程序调试nginx

用DTrace pid提供程序调试nginx

本文假设读者对nginx内部和 DTrace 有一般的了解。

虽然使用 –with-debug 选项构建的nginx 已经提供了大量关于请求处理的信息,但是有时候更有必要更详细地跟踪代码路径的特定部分,同时省略其余的调试输出。DTrace pid提供程序(在Solaris,MacOS上可用)是浏览用户程序内部的有用工具,因为它不需要任何代码更改,并且可以帮助您完成任务。跟踪和打印nginx函数调用的简单DTrace脚本可能如下所示:

Read more

《Nginx官方文档》转换重写规则

转换重写规则

转换Mongrel规则

重定向到主站点

在他们共享的宿主生活中,人们仅仅使用Apache的.htaccess文件来配置一切,通常会翻译下列规则:

Read more

《Nginx官方文档》WebSocket代理 

WebSocket代理

要将客户机和服务器之间的连接从HTTP / 1.1转换为WebSocket,要使用HTTP / 1.1中可用的 协议切换 机制。

然而,有一个微妙的地方:由于“升级”是一个 逐跳 标题,它不会从客户端传递到代理的服务器。使用转发代理,客户端可以使用该CONNECT 方法来规避此问题。然而,这不适用于反向代理,因为客户端不知道任何代理服务器,并且需要在代理服务器上进行特殊处理。

Read more

《RabbitMQ官方指南》翻译邀请

10月姗姗来迟,本月并发网组织大家翻译《RabbitMQ官方文档》,欢迎有兴趣的同学参与。 Read more

JAVA8 stream 中Spliterator的使用(二)

JAVA8 stream 中Spliterator的使用(一)给出了Spliterator的两种使用,但是遗憾的是,代码并不正确。这篇说明下原因,并对Spliterator进行更深入的分析。

Read more

JAVA8 stream 中Spliterator的使用(一)

java8 stream大家用的比较多,但是发现,其实stream的底层构造函数中,还需要传入Spliterator。查了一下,竟然发现网上对这个类讲的几乎没有。唯一一篇文章写得Spliterator使用有问题的,其实他的并行流是没有用到的。因为

for (int pos = currentSize/2 + currentSize; pos < str.length(); pos++){
.....

Read more

Spring Boot 整合 Thymeleaf 完整 Web 案例

原创出处  作者:泥瓦匠BYSocket 希望转载,保留摘要,谢谢!

Thymeleaf 是一种模板语言。那模板语言或模板引擎是什么?常见的模板语言都包含以下几个概念:数据(Data)、模板(Template)、模板引擎(Template Engine)和结果文档(Result Documents)。

  • 数据 数据是信息的表现形式和载体,可以是符号、文字、数字、语音、图像、视频等。数据和信息是不可分离的,数据是信息的表达,信息是数据的内涵。数据本身没有意义,数据只有对实体行为产生影响时才成为信息。
  • 模板 模板,是一个蓝图,即一个与类型无关的类。编译器在使用模板时,会根据模板实参对模板进行实例化,得到一个与类型相关的类。
  • 模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
  • 结果文档 一种特定格式的文档,比如用于网站的模板引擎就会生成一个标准的HTML文档。

Read more

实战Spring事务传播性与隔离性

一、事务传播性

1.1 什么是事务的传播性

事务的传播性一般在事务嵌套时候使用,比如在事务A里面调用了另外一个使用事务的方法,那么这俩个事务是各自作为独立的事务执行提交,还是内层的事务合并到外层的事务一块提交那,这就是事务传播性要确定的问题。下面一一介绍比较常用的事务传播性。

Read more

return top