Byte Buddy 教程(1.1)-编写一个安全的库

Java 语言带有一套比较严格的类型系统。Java 要求所有变量和对象都有一个确定的类型,并且任何向不兼容类型赋值都会造成一个错误。这些错误通常都会被编译器检查出来,极少情况下会被 Java 运行时检查到,然后抛一个非法类型的错误。如此严格的类型在大多数情况下是比较令人满意的,比如在编写业务应用时。通常,可以以任何模型元素表示其自己的类型这种明确的方式来描述业务域。通过这种方式,我们可以用 Java 构建具有非常强可读性和稳定性的应用,应用中的错误也非常贴近源码。除此之外,Java 严格的类型系统造就 Java 在企业编程中的普及。

阅读全文

JUC的AQS学习-ReentrantLock源代码分析

什么是AQS

AQS是JUC里并发控制一个很重要的基础,他提供了一个独占和共享访问控制某个状态的工具,JUC里的锁、信号量、门阀都是基于AQS实现的,单独去看AQS的代码很难理解,而且很难理解其设计之精妙,笔者计划依次分析锁(ReentrantLock)、门阀(CountDownLatch)、信号量(Semaphor)、读写锁(ReadWriteLock)来解析AQS的设计细节。

阅读全文

如何实现团队的自组织管理

在《射雕英雄传》里,以全真七子的武功是打不过东邪黄药师的,但当他们摆出了“天罡北斗阵”时,却能和黄药师打成平手。这就是团队合作形成合力的威力。

自组织管理是我们团队采取的一种敏捷实践,该实践旨在帮助团队成员加强团队合作,形成团队的合力,从而提高团队整体的工作效率。

阅读全文

JEP 220:模块化运行时镜像

原文链接  译者:carvendy

JEP 220:模块化运行时镜像

作者  Mark Reinhold
创建  2014/10/23 15:05
更新  2017/05/19 01:58

类型  特性
状态  集成
域   SE
JSR   376
讨论  拼图的开发在openjdk.java.net 努力  XL
持续时间  XL
优先  l
检验人 Alan Bateman, Alex Buckley, Chris Hegarty, Mandy Chung, Paul Sandoz

发行  9
版本  8061971
块   JEP 200:模块化JDK
JEP 261:模块系统
涉及  JEP 162:模块化思想准备
JEP 282:jlink:Java连接器
JEP 201:模块化源码

概述

重构JDK和JER运行镜像到容纳这些模块和提高行为,保护和可维护性。定义新的URI方案来命名模块,类和资源存储在一个运行时镜像,而没有揭示内部结构或者镜像格式。修改存在的规范作为需要容纳的改变。 阅读全文

《Nginx官方文档》使用nginx作为HTTP负载均衡

   介绍

       跨多个应用程序实例进行负载均衡是一种常用的技术,它被用于优化资源的利用率, 最大化吞吐量,减少延迟并确保容错配置。
       可以使用nginx作为一个非常有效的HTTP负载均衡器,将流量分配给多台应用服务器,并通过nginx提高Web应用程序的性能,可扩展性和高可靠性。

阅读全文

《Nginx官方文档》nginx windows版本

原文链接

nginx的Windows版本使用原生的Win32 API(不是Cygwin仿真环境)。当前仅使用 select () 作为连接进程方法, 因此不要期望高性能和可伸缩性。该版本和其他已知问题的nginx windows版本一直被认为是beta 版本。但是这次, 除了XSLT 过滤、图像过滤、GeoIP 模块和嵌入式Perl 语言几个功能之外, nginx windows版本提供了与nginx UNIX 版本几乎相同的功能。
阅读全文

《Nginx官方文档》从源码构建nginx

此构建是使用configure命令来进行配置的。它定义了系统的各个层面,包含了nginx在连接处理中允许使用的方法。最后它创建了一个Makefile文件。configure命令支持以下参数:

阅读全文

常用Web框架SpringMVC及WebX级联容器原理探究

一、前言

使用一个东西最好研究下他的原理,因为如果知其然那么在排查问题时候会很方便,本文则针对常用web框架SpringMVC和集团的WebX框架的容器级联关系进行探究。

阅读全文

《Redis官方文档》事务

原文链接

事务

MULTIEXECDISCARDWATCH 是 Redis 事务的基础。事务允许一次独立的执行一组命令,并且拥有两个重要的保证。

  • Redis事务的执行是单步的独立的操作:所有的在事务中的命令都是序列化和顺序地。它在执行事务中永远不会被另一个客户端打断。
  • Redis的事务是原子性的:所有的命令,要么全部执行,要么全部不执行。
    • EXEC的命令触发执行Redis事务中的所有命令,所以如果这个客户端之前调用了MULTI命令却断开了redis事务中的连接,那么这个事务的将不会被执行。
    • 当我们使用了AOF序列化(append-only-file)时,Redis会确保去使用单独的同步Write(2)写入磁盘中。然而如果Redis服务阻塞或者被系统管理员杀死,那么将可能导致只有部分的操作被执行。Redis在重启的时候将会检测当前状态,并退出这个错误。它可以使用Redis-Check-AOF工具移除部分的事务,去修复这个AOF文件,所以Redis可以再次启动。

阅读全文

《Apache Flink官方文档》分布式运行时环境

原文链接   译者:魏勇

目录
任务与运算链
作业管理器,任务管理器与客户端
任务槽与资源
后端存储
保存点

阅读全文

论Spring中循环依赖的正确性与Bean注入的顺序关系

一、前言

最近在做项目时候遇到一个奇葩问题,就是bean依赖注入的正确性与bean直接注入的顺序有关系,但是正常情况下明明是和顺序没关系的啊,究竟啥情况那,不急,让我一一道来。

阅读全文

Java平台模块系统(JSR 376)

原文链接                 译者:carvendy

Java平台模块系统(JSR 376)

这是JSR 376的基础页,java平台模块系统,一个中心容器Jigsaw项目

原始的JSR提交可以在官方JCP页找到。

专家组

  • Neil Bartlett (Paremus)
  • Wayne Beaton (Eclipse)
  • Hans Dockter (Gradleware)
  • Tim Ellison (IBM)
  • Rémi Forax
  • Bob Lee
  • David Lloyd (Red Hat)
  • Mark Reinhold (Oracle)
  • Robert Scholte

阅读全文

《Apache Flink官方文档》编程模型

原文链接   译者:魏勇

目录
抽象层次
程序与数据流
并发数据流图
窗口
时间
有状态操作
容错性检查点
批处理操作

阅读全文

模块化开发框架实现原理

本文是蚂蚁金服微贷事业部自主研发的模块化开发框架TITAN的实现原理,该框架后续可能会开源,敬请期待!

需求背景

  • 应用拆分的多或少都有问题。多则维护成本高,每次发布一堆应用。少则拆分成本高,无用功能很难下线。
  • 故障不隔离。当一个系统由多人同时参与开发时,修改A功能,可能会影响B功能,引发故障。
  • 多分支开发引发冲突。多分支开发完之后合并会产生冲突。
  • 牵一发动全身。一处核心代码的改动,或一个基础Jar的升级需要回归整个系统。
  • 升级和迁移成本高。中间件升级每个应用都有升级成本。

阅读全文

《Nginx官方文档》翻译邀请

本月并发网组织翻译《Nginx官方文档》,如果有其他优秀译文希望并发网组织翻译,欢迎通过评论告诉我们。为了鼓励和奖励译者翻译文章,并发网允许译者在文章末尾放赞赏。

如何领取

通过评论领取想要翻译的文章,每次领取一章或一节(根据内容长短),翻译完后再领取其他章节。领取完成之后,建议在一个星期内翻译完成,如果不能完成翻译,也欢迎你邀请其他同学和你一起完成翻译。请谨慎领取,并发网是非盈利组织,没办法去跟进每一篇译文的进展,所以很多文章领取了没有翻译,会导致文章长时间没人翻译。

阅读全文

return top