JVM实用参数(二)参数分类和即时(JIT)编译器诊断

作者: PATRICK PESCHLOW     原文地址    译者:赵峰 校对:许巧辉

在这个系列的第二部分,我来介绍一下HotSpot JVM提供的不同类别的参数。我同样会讨论一些关于JIT编译器诊断的有趣参数。

JVM 参数分类

HotSpot JVM 提供了三类参数。第一类包括了标准参数。顾名思义,标准参数中包括功能和输出的参数都是很稳定的,很可能在将来的JVM版本中不会改变。你可以用java命令(或者是用 java -help)检索出所有标准参数。我们在第一部分中已经见到过一些标准参数,例如:-server。
阅读全文

JVM实用参数(七)CMS收集器

原文连接 本文连接  译者: iDestiny  校对:梁海舰

HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。

就像吞吐量收集器(参见本系列的第6部分),CMS收集器处理老年代的对象,然而其操作要复杂得多。吞吐量收集器总是暂停应用程序线程,并且可能是相当长的一段时间,然而这能够使该算法安全地忽略应用程序。相比之下,CMS收集器被设计成在大多数时间能与应用程序线程并行执行,仅仅会有一点(短暂的)停顿时间。GC与应用程序并行的缺点就是,可能会出现各种同步和数据不一致的问题。为了实现安全且正确的并发执行,CMS收集器的GC周期被分为了好几个连续的阶段。
阅读全文

JVM实用参数(六) 吞吐量收集器

原文链接 本文连接 译者:张军  校对:梁海舰

在实践中我们发现对于大多数的应用领域,评估一个垃圾收集(GC)算法如何根据如下两个标准:

  1. 吞吐量越高算法越好
  2. 暂停时间越短算法越好

首先让我们来明确垃圾收集(GC)中的两个术语:吞吐量(throughput)和暂停时间(pause times)。 JVM在专门的线程(GC threads)中执行GC。 只要GC线程是活动的,它们将与应用程序线程(application threads)争用当前可用CPU的时钟周期。 简单点来说,吞吐量是指应用程序线程用时占程序总用时的比例。 例如,吞吐量99/100意味着100秒的程序执行时间应用程序线程运行了99秒, 而在这一时间段内GC线程只运行了1秒。
阅读全文

JVM实用参数(三)打印所有XX参数及值

原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-3-printing-all-xx-flags-and-their-values/

译者李洪柱     校对:方腾飞

本篇文章基于Java 6update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有XX参数和值。

-XX:+PrintFlagsFinal and -XX:+PrintFlagsInitial

让我们现在就了解一下新参数的输出。以 -client 作为参数的 -XX:+PrintFlagsFinal   的结果是一个按字母排序的590个参数表格(注意,每个release版本参数的数量会不一样)

OAuth 2.0系列教程

作者:Jakob Jenkov   译者:林浩    校对:郭蕾 

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

阅读全文

OAuth 2.0系列教程(十一) 客户端证书请求和响应

原文地址:http://tutorials.jenkov.com/oauth2/client-credentials-request-response.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

客户端证书授权包含下面的参数:

grant_type 必须。必须设置到客户端证书中。
scope 可选。授权的作用域。

客户端授权响应: 客户端授权响应包含下面的参数:

阅读全文

OAuth 2.0系列教程(十) 资源拥有者密钥证书授权请求和响应

原文地址:http://tutorials.jenkov.com/oauth2/resource-owner-credentials-request-response.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

资源拥有者者密钥证书授权包含单个的请求+响应。 资源拥有者密钥证书授权请求 请求包含下面的参数:

grant_type 必须。必须设置到密码中。
username 必须。UTF-8编码的资源拥有者用户名。
password 必须。UTF-8编码的资源拥有者密码。
scope 可选。授权的作用域。

资源拥有者密钥证书授权响应 响应是包含访问令牌的JSON结构数据。JSON结构像这样:

阅读全文

OAuth 2.0系列教程(九) 契约请求和响应

原文地址:http://tutorials.jenkov.com/oauth2/implicit-request-response.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

契约请求和响应

契约授权包含一个请求和一个响应。 契约授权请求 契约授权请求包含下面的参数:

response_type 必须。必须被设置在令牌中。
client_id 必须。当客户端被注册时,有授权服务器分配的客户端标识。
redirect_uri 可选。由客户端注册的重定向URI。
scope 可选。请求可能的作用域。
state 可选(推荐)。任何需要被传递到客户端请求的URI客户端的状态。

阅读全文

OAuth 2.0系列教程(八) 授权码授权

原文地址:http://tutorials.jenkov.com/oauth2/authorization-code-request-response.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾 

授权码授权总共由2个请求和2个响应组成。一个授权请求+响应,和一个令牌请求+响应。 授权请求 授权请求被发送到授权端点以获取一个授权码。这是请求中用到的参数:

response_type 必须。必须被设置到代码里
client_id 必须。当客户端被注册时,授权服务器要标识的客户端。
redirect_uri 可选。通过客户端注册的重定向URI。
scope 可选。请求可能的作用域。
state 可选(推荐的)。任何需要被传递到客户端请求的URI客户端的状态。

阅读全文

OAuth 2.0系列教程(七) 请求和响应

原文地址:http://tutorials.jenkov.com/oauth2/request-response.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

当客户端应用请求授权和访问令牌时,它发送http请求到授权服务器,同它的授权和令牌端点。被发送来回的请求和响应取决于授权类型。记住,这四种授权类型:

  • 授权码授权
  • 契约授权
  • 资源拥有者密钥证书授权
  • 客户端证书授权

每一种授权类型的请求和响应的更多细节将在下文分开地阐释。

阅读全文

OAuth 2.0系列教程(六) 端点

原文地址:http://tutorials.jenkov.com/oauth2/endpoints.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

OAuth 2.0定义了一系列端点。端点典型的就是web服务器上的URI。比如,一个Java Servlet, JSP page, PHP page, ASP.NET网页等等。

这些端点定义有:

  • 授权端点
  • 令牌端点
  • 重定向端点

授权端点和令牌端点都位于授权服务器上,重定向端点位于客户端应用上。每个端点都会在下面讲述。

阅读全文

OAuth 2.0系列教程(五) 授权

原文地址:http://tutorials.jenkov.com/oauth2/authorization.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

当一个客户端应用想要访问拥有者托管在资源服务器的资源时,它必须先获得授权,本节将讲述客户端如何获取授权。

客户端标识,客户端密钥和重定向URI

在客户端应用能请求访问资源服务器的资源之前,客户端应用程序,必须先在资源服务器相关联的授权服务器中进行注册。

注册一个一次性的任务。一旦注册了,除非客户端注册被取消了,注册将持续有效。

注册后客户端应用将由授权服务器分配客户端标识和密钥。在授权服务器上,客户端标识和密钥是唯一标识客户端应用的。如果客户端应用注册了多个授权服务器(如Facebook, Twitter和Google等),每一个授权服务器将发出唯一的标识给该客户端应用。

阅读全文

OAuth 2.0系列教程(四) 客户端类型

原文地址:http://tutorials.jenkov.com/oauth2/client-types.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

OAuth 2.0客户端角色被细分为一系列类型和配置,本节将阐述这些类型和配置。

OAuth 2.0规范定义了两种客户端类型:

  • 保密的
  • 公有的

保密的客户端能够对外部保持客户端密码保密。该客户端密码是由授权服务器分配给客户端应用的。为了避免欺骗,该密码是授权服务器用来识别客户端的。例如一个保密的客户端可以是web应用,除了管理员,没有任何人能够访问服务器和看到该密码。

公有的客户端不能使客户端密码保密。比如移动手机应用或桌面应用会将密码嵌入在内部。这样的应用可能被破解,并且泄漏密码。这同于在用户的浏览器上运行的JavaScript应用。用户可以使用一个JavaScript调试器来寻找到应用程序,并查看客户端密码。

阅读全文

OAuth 2.0系列教程(三) 角色

原文地址:http://tutorials.jenkov.com/oauth2/roles.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

OAuth 2.0为用户和应用定义了如下角色:

  • 资源拥有者
  • 资源服务器
  • 客户端应用
  • 授权服务器

这些角色在下图中表示为:

OAuth 2.0规范中的角色定义

阅读全文

OAuth 2.0系列教程(二) 综述

原文地址:http://tutorials.jenkov.com/oauth2/overview.html

作者:Jakob Jenkov   译者:林浩    校对:郭蕾

如引言所说的,OAuth 2.0是一个能够使应用彼此访问数据的开放授权协议,这里我们将阐述该协议是怎么工作的以及规范中提到的概念。该图说明了整个授权过程:

阅读全文

return top