归档之于 ‘ 2017 年三月

如何建设高可用系统

面试的时候经常会问一个问题,如何建设高可用系统?大家可以一起探讨下。

“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。以下是高可用系统的设计建议:

阅读全文

《Netty官方指南》线程模型

原文链接 译者:Johnson

你知道本页的内容是自动生成自Github 维基页面吗?你可以点击这里改进它.


阅读全文

《NETTY官方文档》4.1的新特性及注意点

原文链接  译者:裘卡

此文档涵盖了netty4.0到4.1值得关注的变更点及新特性。

尽管我们尽力做到对4.0的向后兼容,4.1仍包含了一些无法完全向后兼容4.0的特性。请确保升级之后对应用进行重新编译。

在重新编译应用以后,你会看到一些deprecation的警告。请一定按照提示修改为相应的替代方案,以减少升级之后产生的问题。

阅读全文

Spring Boot 整合 Mybatis 实现 Druid 多数据源详解

原创出处: 泥瓦匠BYSocket 

“清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考”

本文提纲
一、多数据源的应用场景
二、运行 springboot-mybatis-mutil-datasource 工程案例
三、springboot-mybatis-mutil-datasource 工程代码配置详解

一、多数据源的应用场景

目前,业界流行的数据操作框架是 Mybatis,那 Druid 是什么呢?
Druid 是 Java 的数据库连接池组件。Druid 能够提供强大的监控和扩展功能。比如可以监控 SQL ,在监控业务可以查询慢查询 SQL 列表等。Druid 核心主要包括三部分:
1. DruidDriver 代理 Driver,能够提供基于 Filter-Chain 模式的插件体系。
2. DruidDataSource 高效可管理的数据库连接池
3. SQLParser 阅读全文

现代化的缓存设计方案

原文地址  译者:简直

23979355273_e1ea8b2397_o

缓存是提升性能的通用方法,现在大多数的缓存实现都使用了经典的技术。这篇文章中,我们会发掘 Caffeine 中的现代化的实现方法。Caffeine 是一个开源的 Java 缓存库,它能提供高命中率和出色的并发能力。期望读者们能被这些想法激发,进而将它们应用到任何你喜欢的编程语言中。

阅读全文

《TOGAF 9.1IT企业架构》2.2企业IT架构的工作结构组成

原文链接  原文作者:Wolfgang W.Keller  译者:克里斯托刘

2.2 企业IT架构的工作结构组成

如图3所示,企业IT架构的任务可以分为三个主要部分

 tu3

策略任务:通常企业IT架构师是帮助CIO设计他的IT策略的角色。但是除此之外,还有很多其他的策略工作,这些工作计划时间跨度一般都超过3-5年。IT投资组合管理方案会提供策略计划需要的基本数据,其中它会把策略目标以及公司现状(as-is)结合起来,目的是去实现未来目标(to be)。这将是策略路线(对主要项目投资的粗略项目计划)的基础。

阅读全文

线程亲和性(Thread Affinity)

原文链接 译者:裘卡

如果你正在开发低延迟的网络应用,那应该对线程亲和性(Thread affinity)有所了解。线程亲和性能够强制使你的应用线程运行在特定的一个或多个cpu上。通过这种方式,可以消除操作系统进行调度过程导致线程迁移所造成的影响。幸运的是,刚好有一个这么一个java库 Java-Thread-Affinity ,并且很容易就可以整合到你的netty应用中。

阅读全文

《Netty官方文档》引用计数对象

原文地址     翻译:Tyrian

从Netty 4起,对象的生命周期由它们的引用计数来管理,因此,一旦对象不再被引用后,Netty 会将它(或它共享的资源)归还到对象池(或对象分配器)。在垃圾回收和引用队列不能保证这么有效、实时的不可达性检测的情况下,引用计数以牺牲轻微的便利性为代价,提供了 另一种可选的解决方案。 最值得注意的类型是ByteBuf,它正是利用了引用计数来提升内存分配和释放的性能。这一节 将用ByteBuf来讲述引用计数在Netty中是如何工作的。

阅读全文

《Netty官方指南》把Netty当做一个通用的库

原文链接 译者:lijunshu 校对:方腾飞

Netty是一个用来开发基于网络应用的框架,同时也提供了其他与socket I/O无关的基础类。

阅读全文

《Spring Boot官方指南》27.1.11. CORS support

原文链接

跨域资源共享 (CORS)是一个被绝大部分浏览器实现的W3C标准,CORS允许你灵活的指定跨域请求是否授权。而不是使用一些不安全脆弱的方法,例如IFRAME或者JSONP。

在4.2版本中,SpringMVC默认不开启CORS功能 。在Spring Boot应用中不需要特定的配置,只需要通过@CrossOrigin注解完成 。 全局的CORS配置 需要注册一个自定义addCorsMappings(CorsRegistry)方法的WebMvcConfigurer实例:

阅读全文

《Spring Boot官方指南》47.3 跨域资源共享支持

原文链接

47.3 跨域资源共享支持

跨域资源共享 (CORS)是一个被绝大部分浏览器实现的W3C标准,CORS允许你灵活的指定跨域请求是否授权。执行器的MVC服务接口可以通过配置支持这种功能。

阅读全文

《Netty官方文档》开发者指南

原文链接 译者:祝坤荣

在找教程? 访问这里有问题?StackOverflow.com提问。 请注意这个指南不是一个“用户指南”。这是给想要开发Netty的贡献者(“开发人员”)看的而不是给想要用Netty构建一个应用的“用户”看的。

阅读全文

《TOGAF 9.1IT企业架构》什么是企业IT架构

原文链接  原文作者:Wolfgang W.Keller  译者:克里斯托刘

2. 什么是企业IT架构

现在有越来越多的企业IT架构定义。在这一章,你会学习到一些企业IT架构的方法,我们会给你深入解释一种实用的方法,这种方法视企业架构师为CIO(译注:CIO首席信息官,是负责一个公司信息技术和系统所有领域的高级官员)的一个重要的助手(CIO, 其中一项职责是计划企业IT资产策略)。我们将这个叫为实用商业(业务)方案,一旦我们把企业架构师的工作视为CIO的重要帮助,这个方案会逐渐变得更加清晰。

阅读全文

Spring Boot HTTP over JSON 的错误码异常处理

作者:泥瓦匠

本文提纲
一、异常统一处理的使用场景
二、运行 springboot-validation-over-json 工程
三、springboot-validation-over-json 工程代码详解

一、异常统一处理的使用场景

在前后端分离开发中,经常用 HTTP over JSON 作为服务进行前后端联调对接。这里简单介绍下为啥前后端分离开发?我想到如下:

1.低耦合,责权分离,模块化。前后端之间利用轻量级协议对接耦合。
2.便于敏捷开发:后端给出 api 文档 -> 前端根据文档,mock出数据开发 ;同时,后端实现业务逻辑。
3.微服务尤其适用 阅读全文

《Netty官方指南》如何为一次提交写注释信息

原文链接 译者:麦芽面包

当对Netty做了一些改动后,请确保提交的注释里有足够的信息来让每个人理解变更的意图。除非提交很琐碎, 不然请用以下格式提交:

一句话描述你的变更:

  • 变更动机:解释的内容,和你为什么要做这个变更。你尝试要解决的问题。
  • 改动点:描述你都改了什么。
  • 结果:在你改动后,哪里会变动。

阅读全文

return top