自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

边城白衣的博客

一介白衣,几句白话

  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

翻译 JEP 444:虚拟线程

Java 虚拟线程规范

2024-01-20 10:25:34 66

翻译 JVM内存泄露故障诊断

感兴趣的朋友可以关注"猿学堂社区",系统化技术内容分享平台。或加入“猿学堂社区”微信交流群。猿学堂师资均为一线互联网资深技术专家,提供专业、深度、体系化的技术课程,一站式技术解决方案。与技术专家线上线下深度互动、答疑解惑。在线学习笔记与课程完美结合。本章主要是为如何诊断内存泄露问题提供一些建议方法。如果应用程序执行时间越来越长,或者如果操作系统的执行速度越来越慢,这说明可能存在内存泄露问...

2019-12-08 13:42:06 1132

原创 你真的需要微服务吗?

感兴趣的朋友可以关注"猿学堂社区",系统化技术内容分享平台。或加入“猿学堂社区”微信交流群1、前述自互联网尤其是云平台爆发以来,软硬件基础设施的服务模式不断更新,从早期的IaaS、PaaS、SaaS三大件,到后来的FaaS、BaaS、DaaS,一切以aaS格式表述的新词从各个服务公司的口中提出来,成为技术服务模式的前沿和潮流。所有平台式技术服务的输出,都会以不同形式降低原有的软件开发及运维...

2019-11-24 20:00:13 1228 1

翻译 在Java中构建响应式微服务系统——第三章 构建响应式微服务

第三章 构建响应式微服务在本章中,我们将使用Vert.x构建我们的第一个微服务。由于大多数微服务系统使用HTTP进行交互,因此我们将以HTTP微服务作为开始。但是由于系统包含多个相互通讯的微服务,因此我们会构建另一个微服务消费第一个(作为第一个的消费者)。然后,我们将说明为什么这样一个设计不是完全的拥抱响应式微服务。最后,我们将实现基于消息的微服务,以领会消息如何提升响应性。第一个微服...

2018-09-08 17:00:47 1069 2

翻译 在Java中构建响应式微服务系统——第二章 理解响应式微服务和Vert.x

第二章 理解响应式微服务和Vert.x微服务实际上不是一个新事物。它们起源于20世纪70年代的研究,由于微服务是一种更快迁移、更容易交付价值以及提升敏捷的方法,最近已经成为人们关注的焦点。然而,微服务源于基于Actor的系统、服务设计、动态和自治系统、领域驱动设计以及分布式系统。微服务的细粒度模块化设计不可避免的会导致开发人员创建分布式系统。我敢肯定,你已经注意到,分布式系统是很难的。它们故障...

2018-06-24 18:45:37 2254

翻译 在Java中构建响应式微服务系统——第一章 介绍

第一章 介绍这份报告针对对开发微服务和分布式应用感兴趣的开发者和架构师。它不会讲解分布式系统的基础,而是关注于响应式,它有利于构建高效的微服务系统。微服务可以被看作是基本的模块化思想的延伸:程序通过消息传递而不是直接的API调用连接,以便它们可以在多个服务之间分布式。为什么微服务如此受欢迎?这主要是由于两个因素的结合:云计算以及快速扩容和缩容的需求。云计算使得部署成千上万的小型服务变得方便;伸...

2018-06-23 18:00:58 827

翻译 Vert.x Java开发指南——第十二章 结束

第十二章 结束这是本指南的最后一部分,让我们花点时间来概括一下前面几章中的重要收获,然后再给出更多有用的资源。12.1 概述我们通过使用Vert.x构建一个Wiki web应用作为开始。首次迭代是典型的“快速但令人不快的快速原型”,它展示了我们使用Web模板的服务端渲染以及使用关系数据库持久化,可以快速且轻易构建应用程序。 下一步,展示了如何通过连续的重构提升设计:首先分离每个技...

2018-06-23 10:34:13 717 1

翻译 Vert.x Java开发指南——第十一章 使用基于事件总线的跨越边界消息的实时Web特征

第十一章 使用基于事件总线的跨越边界消息的实时Web特征 相应代码位于本指南仓库的step-10目录下在本指南的前面部分,我们看到事件总线用于Verticle中的通讯,使用Vert.x应用内部的消息传递。开发者只需要注册一个消费者接收消息并且发送/发布消息。SockJS事件总线桥接将这些能力扩展到客户端浏览器中。它创建了一个分布式的事件总线,不仅跨越集群中的多个Vert.x实例,...

2018-06-17 10:28:58 747

翻译 Vert.x Java开发指南——第十章 使用AngularJS的客户端Web应用

第十章 使用AngularJS的客户端Web应用 相应代码位于本指南仓库的step-9目录下截止目前,我们的Web界面使用了传统的服务端渲染HTML内容。某些应用类型可以利用客户端渲染,避免全页面重新加载并且接近本地应用体验,以提升用户体验。许多受欢迎的框架便是因为这个目的而存在。我们为本指南选择了流行的AngularJS框架,但是可以不失一般性的同等选择React、Vue.js...

2018-06-16 10:17:29 589

翻译 Vert.x Java开发指南——第九章 利用RxJava进行响应式编程

第九章 利用RxJava进行响应式编程 相应代码位于本指南仓库的step-8目录下截止目前,我们已经探索了Vert.x技术栈的多个部分,使用基于回调的API。它仅仅可以正常工作,而且这个编程模型对于开发者在许多语言中是非常熟悉的。尽管如此,它可能有点繁琐,尤其当你组合几个事件源或者处理复杂的数据流时。而这正是RxJava闪耀的地方,Vert.x无缝的集成了它。9.1 启用...

2018-06-13 10:31:54 3128

翻译 Vert.x Java开发指南——第八章 安全和访问控制

第八章 安全和访问控制 相应代码位于本指南仓库的step-7目录下使用Vert.x,安全和访问控制非常容易实现。在本章中,我们将介绍:迁移HTTP到HTTPS添加用户认证以及基于分组的权限到Web应用中使用JWT对Web API进行访问控制8.1 在Vert.x中支持HTTPSVert.x为SSL加密网络链接提供了支持。在生产环境中暴露HTTP服务器比较常见的方式...

2018-06-12 12:25:08 2793 1

翻译 Vert.x Java开发指南——第七章 公开Web API

第七章 公开Web API使用我们已经讲到的vertx-web模块公开Web HTTP/JSON API非常简单。我们将使用以下URL方案公开Web API:GET /api/pages 给出一个包含所有wiki页面名称和标识的文档POST /api/pages 从一个文档创建新的wiki页PUT /api/pages/:id 从一个文档更新wiki页面DELETE /api/pa...

2018-06-03 19:36:42 1487

翻译 Vert.x Java开发指南——第六章 与第三方的Web服务集成

第六章 与第三方的Web服务集成 相应代码位于本指南仓库的step-5目录下。现代应用很少位于孤岛之上,因为它们需要与其它(分布式)应用和服务集成。集成通常采用API实现,这些API通过多功能的HTTP协议公开。本章展示了如何使用Vert.x的HTTP客户端API与第三方Web服务集成。6.1 场景:备份到GitHub GistGitHub Gist服务(https:...

2018-06-03 18:33:41 1295

翻译 Vert.x Java开发指南——第五章 测试Vert.x代码

第五章 测试Vert.x代码 相应代码位于本指南仓库的step-4目录。到目前为止,我们已经开发了未包含测试的Wiki实现。这自然不是一种好的实践,因此让我们看一下如何为Vert.x代码编写测试。5.1 开始vertx-unit模块提供了工具来测试Vert.x中的异步操作。除此之外,你还可以使用你选择的测试框架,如JUnit。使用JUnit,需要的Maven依赖如下:...

2018-05-27 17:21:08 2189

翻译 Vert.x Java开发指南——第四章 重构为Vert.x服务

第四章 重构为Vert.x服务与我们最早的实现相比,前面的重构已经是向前一大步,因为我们提取出了独立且可配置的Verticle,并且在事件总线之上使用异步消息进行链接。我们还看到,我们可以同时部署一个指定Verticle的几个实例,以便更好地处理负载以及更好地利用CPU内核。在这一节,我们将看到如何设计和使用Vert.x服务。服务的主要优势是,它定义了一个接口用于执行Verticle公开的...

2018-05-27 16:16:30 3179

翻译 Vert.x Java开发指南——第三章 重构为独立可重用的Verticle

第三章 重构为独立可重用的Verticle 版权声明:本文为博主自主翻译,转载请标明出处。 https://blog.csdn.net/elinespace/article/details/80377709 相应的代码位于本指南代码仓库的step-2目录下通过第一次迭代,我们得到了一个可工作的Wiki应用。然而它的实现存在以下问题:HTTP请求处理和数据库访问代码交织在相...

2018-05-20 12:12:26 3119 1

翻译 Vert.x Java开发指南——第二章 使用Vert.x编写最小可用Wiki

第二章 使用Vert.x编写的最小可用Wiki 相应的源代码位于该指南代码库的step-1目录下我们将从第一次迭代开始,最简单的代码可能是使用Vert.x编写一个Wiki。而下一次迭代将在代码库中引入更多的简洁以及适当的测试,我们将看到基于Vert.x的快速原型是一个既简单又现实的目标。现阶段,Wiki将使用HTML页面的服务端渲染以及通过JDBC链接进行数据持久化。为了完成这些...

2018-05-19 20:44:26 7817

翻译 Vert.x Java开发指南——第一章 介绍

第一章 介绍该指南是Vert.x异步编程的一个入门介绍,主要针对那些熟悉主流、非异步Web开发框架和库(如Java EE、Spring)的开发者。1.1 关于该手册我们假定读者已经熟悉Java编程语言及其生态系统。我们将以一个Wiki Web应用作为开始,它开始采用关系数据库和服务端页面渲染;然后我们通过几个步骤逐步演进该应用,直到它成为一个现代的单页应用,并且拥有实时Web的...

2018-05-19 12:18:57 6178 1

翻译 G1垃圾回收器起步

原文地址概述目的本教程涵盖了如何使用G1垃圾回收器以及G1如何与Hotspot JVM一起使用的基础知识。你将了解G1回收器内部的功能、用于启用G1的关键命令行开关以及输出G1操作日志的选项。完成所需时间大约1小时介绍本教程涵盖了JVM G1垃圾回收器的基础知识。第一部分提供了JVM概述以及垃圾回收和性能介绍。接下来回顾了Hotspot JVM中CMS垃圾回收器是如何工作的。然后,一步步指导在Hot

2017-12-20 14:05:15 2145 1

翻译 Java HotSpot VM内存管理白皮书

本文由博主自行翻译,未经博主授权,不得随意转发。后续博主会陆续发布一系列关于JVM内存管理的文章,敬请期待。1、介绍Java2平台标准版本(J2SE)的一个优点就是它的自动内存管理功能,使得开发人员与显式的内存管理的复杂性分隔开。本文对Sun J2SE5.0版本中Java HotSpot虚拟机(JVM)内存管理提供了一份概述。它描述了用于执行内存管理的垃圾回收器,并给出了一些关于选择和配置垃圾回收

2017-12-16 21:16:44 653

原创 为什么我要写《Tomcat架构解析》

上个月中旬,写作断断续续近两年的书《Tomcat架构解析》顺利出版,两年来的付出也总算有了回报,让人些许欣慰。图书上架销售将近一个月来,陆陆续续收到一些反馈的意见和建议,读者的鞭策和鼓励是我不断学习进步的最大动力,这也让我倍感欣喜。只是有个别读者把本书和Tomcat源码分析类的书籍,如《How Tomcat Works》拿来比较,这就有违写这本书的初衷了。考虑再三,便想写这篇文章再次阐述一下编写这本

2017-06-06 09:21:53 7501 2

原创 Jetty9架构解析-Jetty配置及部署(二)

2.2. Jetty配置方式除了Jetty配置及部署(一)介绍的命令行参数、ini和XML(Jetty IoC)文件的默认配置方式外,Jetty也为我们提供了其它灵活的配置方案。 由于Jetty的服务器对象(如Server、链接器、Context等)都是POJO,因此从理论上讲,我们可以采用编程的方式配置Jetty,这便是嵌入式Jetty所完成的工作。不仅如此,我们还可以采用其它IoC框架配置

2017-06-05 10:14:45 7570

原创 《Tomcat架构解析》一书出版上市

《Tomcat架构解析》一书已经正式出版上市,感兴趣的朋友可以通过当当或者京东进行订购。京东购买地址当当购买地址

2017-05-17 09:02:43 1638

原创 Tomcat中如何配置使用APR

APR(Apache Portable Runtime),即Apache可移植运行库,正如官网所言,APR的使命是创建和维护一套软件库,以便在不同操作系统(Windows、Linux等)底层实现的基础上提供统一的API。通过APR的API,程序开发者可以在开发阶段不必考虑平台的差异性,也不必关心程序的最终构建环境。减少程序开发者编写特殊代码区分不同操作系统以避免系统缺陷或者利用系统特性的工作。APR

2016-11-03 08:41:33 12337 1

原创 Tomcat中的WebSocket

什么是WebSocket我们知道,Comet是在HTTP单向通信基础上模拟服务器与客户端浏览器的双向通讯,不同的Comet方案存在不同的缺陷,无论是跨浏览器层面还是规范限制。而且因为是一种模拟实现,所以它的效率并不高(如HTTP报头的开销,尤其发送消息较小的情况)。基于这些原因,人们一直试图从规范角度寻找一种标准的替代方案。HTML5提供了一种全新的协议来解决这个问题,这就是WebSocket。它实

2016-10-21 09:25:25 10830 4

原创 Jetty9架构解析-Jetty配置及部署(一)

2.1. Jetty配置概述对于Web服务器来说,可配置性是一项非常重要的指标(从软件设计层面,我们也可以称之为架构要素),它在很大程度上也会影响一款服务器的适用范围。之所以这么说,是因为真实的部署场景千变万化,只有做到灵活可配,我们才可以对其进行深度定制(调整内存分配、链接限制、I/O、安全配置等等),从而使服务器能够最大程度的满足我们不同的运维部署要求。作为轻量级Web服务器及Servlet

2016-10-21 08:40:41 3885

原创 Jetty9架构解析-安装和启动

1.2. 安装和启动1.2.1. Jetty下载、安装你可以从http://www.eclipse.org/jetty/download.html下载最新的Jetty发布包,本书基于最新的9.3.x(9.3.11.v20160721)讲解,你可以根据需要下载zip或者tgz格式的压缩包。 Jetty是免安装的,直接将其解压到指定目录即可使用。1.2.2. Jetty目录介绍进入Jetty目录,

2016-10-19 09:38:42 6712

原创 Jetty9架构解析-Jetty介绍

1.1 简介1.1.1. Jetty历史 Jetty是当下非常流行的一款轻量级Java Web服务器和Servlet容器实现,它由Eclipse基金会托管,完全免费而且开放源代码,因此所有人均可以从其官网下载最新源代码进行研究。由于其轻量、灵活的特性,Jetty被广泛用于一系列知名产品,例如ActiveMQ、Maven、Spark、Google App Engine、Eclip

2016-10-08 08:52:44 2624

原创 Jetty9架构解析-目录

目录 基础篇第1章: Jetty介绍 1.1. 简介 1.1.1. Jetty历史 1.1.2. Jetty许可 1.2. 安装和启动 1.2.1. Jetty下载、安装 1.2.2. Tomcat启动 1.3. 应用部署 1.4. Jetty目录介绍 1.5. 小结 第2章: Jetty部署 第3章: Je

2016-09-29 08:42:49 654

数据库性能调优.原理和技术

数据库性能调优.原理和技术 数据库性能调优.原理和技术

2013-08-08

Cloudify 开源云计算部署工具

GigaSpaces 的 Cloudify 可让你在线对任何应用、任何云上的应用,无需任何代码更改即可实现规模伸缩 Cloudify 支持的云平台包括: Microsoft Azure OpenStack Citrix Cloud Stack (Previously Cloud.Com Product) EC2 Rackspace Terramark

2012-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除