自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

翻译 浅谈分布式领域的CAP理论

一、前言CAP是分布式系统的重要理论,在大型分布式系统中一致性(Consistency),高可用性(High-Availability),分区可容忍性(Partition-tolerance)是设计者都希望能同时达到的,但是根据CAP理论一个系统最多能实现3中其2。本文不去探讨CAP理论的结论的正确性,而是去试图概述这三个特性是什么。二、 一致性一个完全一致性的系统可以保证一旦你修改了

2018-01-30 21:39:30 562

翻译 Spring Boot 使用SSL-HTTPS

本节大纲:一、什么是SSL?二、什么是HTTPS?三、HTTPS与SSL的关系?四、Spring Boot中使用HTTPS步骤五、获取SSL证书六、将HTTP请求重定向到HTTPS(可选)七、总结接下来看下本节的内容:一、什么是SSL?SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Sec

2018-01-30 21:38:39 789

翻译 Spring cloud 多版本控制及灰度发布

在我们使用spring mvc单体架构时, 我们可以通过uri,或者请求头做多版本路由,虽然同一个功能需要维护多个版本的接口,但是对于系统而言,不会因为新增一个接口版本而影响到老用户。当我们使用spring cloud构建微服务平台时,也希望能做到这一点,然而spring cloud并没有提供这个功能。在springcloud的微服务体系中,大多是使用eureka做为注册中心,ribbon做为

2018-01-30 21:37:57 6524

翻译 架构师必备技能:数据库优化手术刀——实战分库分表

在最初,应用的数据量比较少,没有任何压力,一般会将所有的数据放在一个库中。但是随着业务的增长,数据量急剧增长,DB压力增大,似乎随时都会挂掉。此时,优化DB的使用已经是势在必行,以下有几个方案。1优化对DB的使用读写分离(肯定一开始就做了……)、索引、使用合理的sql等等。一些简单的优化可以先做,复杂的优化如果时间允许能先做是最好的,但如果是一直被业务赶着走,抽不出时间做,

2018-01-28 15:50:49 514

翻译 Spring 中的注解与分层思想

在Spring框架中最常见的几个注解@Controller, @Service, @Component, @Repository其中@Component是一种通用名称,泛指任意可以通过Spring来管理的组件,@Controller, @Service, @Repository则是一种特定的组件,通常用来表示某种特定场合下的组件,比如@Repository用来表示仓库(数据层,DA

2018-01-28 15:50:11 815

翻译 Springboot之spring-boot-autoconfigure模块

一、前言Spring的出现给我们管理bean的依赖注入提供了便捷,但是当我们需要使用通过pom引入的jar里面的一个bean时候,还是需要手动在xml配置文件里面主要注入的bean 。springboot则可以依据classpath里面的依赖内容来自动配置bean到IOC容器,Auto-configuration会尝试推断哪些beans是用户可能会需要的。比如如果HSQLDB包在当前class

2018-01-28 15:49:44 12632

翻译 必读的Mybatis缓存揭秘

一、前言因为在做项目时候遇到了mybatis缓存的坑,所以全面学习了下mybaits的缓存知识,一来避免后面再次采坑,二来为其他童鞋提供前车之鉴。二、Mybaits缓存作用为了提高数据库查询性能,缓解数据查询压力,后面会具体看到一级是在sqlsession级别缓存了查询结果和二级缓存则是在namespace级别缓存了查询结果。三、Mybaits一级缓存3.1

2018-01-28 15:49:01 308

翻译 Spring Boot中使用RabbitMQ

Message Broker与AMQP简介Message Broker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景:消息路由到一个或多个目的地消息转化为其他的表现方式执行消息的聚集、消息的分解,并将结果发送到他们的目的地,然后重新组合相应返回给消息用户调用Web服务来检索数据响应事件或错误

2018-01-26 11:05:04 261

翻译 收藏贴 windows 环境下 vagrant 安装配置

vagrant 介绍vagrant 是一个虚拟机运行环境管理工具,通过它我们可以快速的通过命令搭建一个比较完善的开发环境,其本身并不是虚拟机。我们经常使用的虚拟机有 VirtualBox、VMware 等。环境和软件准备Windows 7 旗舰版vagrant2.0.0x86_64.msiVirtualBox-5.1.28-117968-Win.exe

2018-01-26 11:04:32 564

翻译 Spring:基于注解的 Spring MVC(下)

上一篇文章《Spring:基于注解的Spring MVC(上)》,讲了Spring MVC环境搭建、@RequestMapping以及参数绑定,这是Spring MVC中最基础也是最重要的内容,本篇文章继续讲讲Spring MVC中其余的知识点,先从Model开始。Model前一篇文章比较详细地解读了数据从页面请求到服务器后台的一些细节,那么下一个要解决的问题就是数据如何从后台再次传回前台

2018-01-26 11:03:47 171

翻译 httpclient 调用工具(同时支持 HTTP 和 HTTPS 协议)

简介接口调用是作为后端开发人员在编码过程中的日常,而 HTTP 协议可能是现在 Internet 上使用最多、最重要的协议。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的

2018-01-25 12:01:17 2207

翻译 你知道在java泛型中KTVE等的代表含义吗?我来告诉你

K : Key(健,常在集合中使用)V : Value(值,常在集合中使用)E : Element(元素,常在集合中使用)T : Type(类型,常代表 java 类)? : 表示不确定的 java 类型(无限制通配符类型)N : Number(数值类型)S、U、V : 2nd、3rd、4th typesObject : java 中所有类的

2018-01-25 12:00:32 737

翻译 理解 JVM:JVM 内存模型

Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间。有的区域随着虚拟机进程的启动就存在了, 有的区域则是依赖用户线程。根据《Java虚拟机规范(第二版)》,Java 虚拟机所管理的内存包含以下的几个区域。Java运行时数据区(Runtime Data Area)由上图可以看出,在运行时数据区中

2018-01-25 11:59:53 2108

翻译 基于 springMVC 的 RESTful HTTP API 实践(服务端)

理解 RESTREST(Representational State Transfer),中文翻译叫“表述性状态转移”。是 Roy Thomas Fielding 在他2000年的博士论文中提出的。它与传统的 SOAP Web 服务区别在于,REST关注的是要处理的数据,而 SOAP 主要关注行为和处理。要理解好 REST,根据其首字母拆分出的英文更容易理解。表述性(Represent

2018-01-24 11:07:17 332

翻译 记一次http接口调试问题

在开发工程中,在开发工程中,我们经常会遇到和其它第三方厂家有接口数据来往的情况。这是一次我们作为客户端去获取另一个厂家推流的直播地址的接口,这个接口情况有些不一样,我们需要在一个接口中封装两次http请求,大概场景是这样的:第一次调用方式是POST,第二次是Get,第一次调用会获取到一个地址,返回结果类似这样的:Java这里获取到接口返回一个带参数的地址,这里注意一

2018-01-24 11:06:18 772

翻译 httpclient 调用工具(同时支持 HTTP 和 HTTPS 协议)

简介接口调用是作为后端开发人员在编码过程中的日常,而 HTTP 协议可能是现在 Internet 上使用最多、最重要的协议。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的

2018-01-24 11:05:26 2549

翻译 并发队列-无界阻塞优先级队列PriorityBlockingQueue原理探究

一、 前言PriorityBlockingQueue是带优先级的无界阻塞队列,每次出队都返回优先级最高的元素,是二叉树最小堆的实现,研究过数组方式存放最小堆节点的都知道,直接遍历队列元素是无序的。二、 PriorityBlockingQueue类图结构Java如图PriorityBlockingQueue内部有个数组queue用来存放队列元素,size用来存

2018-01-23 11:02:35 370

翻译 Spring AOP --JDK动态代理方式

我们知道Spring是通过JDK或者CGLib实现动态代理的,今天我们讨论一下JDK实现动态代理的原理。一、简述Spring在解析Bean的定义之后会将Bean的定义生成一个BeanDefinition对象并且由BeanDefinitionHolder对象持有。在这个过程中,如果Bean需要被通知切入,BeanDefinition会被重新转换成一个proxyDefinition(其

2018-01-23 11:01:25 248

翻译 Spring Boot的数据访问:CrudRepository接口的使用

示例 使用CrudRepository接口访问数据创建一个新的Maven项目,命名为crudrepositorytest。按照Maven项目的规范,在src/main/下新建一个名为resources的Folder。(1) 修改pom.xml文件。在pom.xml文件中增加web开发的启动器配置如下:org.springframework.boots

2018-01-23 11:00:22 43240 11

翻译 Struts2、Spring MVC及 Spring优缺点整理

Struts2的优点Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于当年的Webwork和XWork框架,继承其优点,同时做了相当的改进。Struts2现在在Java Web开发界的地位可以说是大红大紫,从开发人员的角度来分析,Struts2之所以能够如此的深入开发人员之心,与其优良的设计是分不开的。1、Stru

2018-01-22 11:03:50 414

翻译 Spring webflux--响应式、非阻塞、事件驱型web框架

一、基本概念---阻塞(Blocking I/O)/非阻塞(Non-blocking I/O),同步(Synchronous I/O)/异步(Asynchronous I/O):在进行网络编程时,我们常常见到同步(Synchronous I/O)/异步(Asynchronous I/O),阻塞(Blocking I/O)/非阻塞(Non-blocking I/O)四种调用方式,下面将这

2018-01-22 11:02:44 1359

翻译 你一定不知道的java CountDownLatch-简书

前言JDK的并发包中提供了几个非常有用的工具类,这些工具类给我们在业务开发过程中提供了一种并发流程控制的手段,本文会基于实际应用场景介绍如何使用CountDownLatch,以及内部实现机制。CountDownLatch是什么CountDownLatch也叫闭锁,在JDK1.5被引入,允许一个或多个线程等待其他线程完成操作后再执行。CountDownLatch内部会维护一个初始值为

2018-01-22 11:01:43 182

翻译 web.xml 组件加载顺序,你收藏了吗?

在配置项目组件的过程中, 了解Tomcat加载组件顺序很有必要。 例如某些框架如Quartz的集群功能需要数据库的支持, 数据库的加载肯定要在框架组件加载之前。经过查阅和Debug发现, web.xml组件加载顺序为:context-param -> listener -> filter -> servlet(同类则按编写顺序执行)。web.xml常用组件解析:web-app>

2018-01-21 11:14:32 155

翻译 告诉你们XML解析方法详解之自动化测试系列笔记

XML现在已成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。深入了解前端知识更能充分解决自动化的异常类问题。一、1、XML有三种解析方式:DOM SAX STAX2、XML的作用(企业应用):存储数据、配置文件、传输数据。存储和传输数据经常一起使用,XML数据通常由程序生成的,用程序解析XML(XML一般不加约束)配置文件单独使用(

2018-01-21 11:12:42 1444

翻译 Spring Boot实战:Spring Boot核心原理剖析

Spring Boot基本配置介绍1 关闭某个自动配置通过上节@SpringBootApplication下的@EnableAutoConfiguration得知,Spring Boot会根据项目中的jar包依赖,自动做出配置,Spring Boot支持的自动配置如下(非常多):Java假如我们不需要Spring Boot自动配置,想关闭某一项的自动配置,该

2018-01-21 11:10:44 17174

翻译 SpringCloud-Eureka服务框架(Eureka服务配置)

对于服务发现框架可以简单的理解为服务的注册以及使用操作步骤,例如:在ZooKeeper组建中,这个组件里面已经明确的描述了一个服务的注册以及发现操作流程,在这个Rest架构里面,会存在有大量的微服务信息。Java在SpringCloud中使用了大量的开源项目,而其中Eureka就属于开源项目提供的发现服务组件,所有的微服务在使用之中全部向Eureka之中进行注册,而后客户端直接利用Eureka进行

2018-01-19 09:38:54 471

翻译 eclipse中Maven工程使用Tomcat7以上插件

Maven中使用tomcat:run命令默认是使用Tomcat6的版本,现在要用到Tomcat7以上的版本,在eclipse的Maven工程中配置如下第一步:在项目的pom里面加入如下配置:官网配置:http://tomcat.apache.org/maven-plugin-trunk/pluginManagement> plugins> plugin> groupId>org.apache

2018-01-19 09:37:55 390

翻译 利用Jenkins生成maven项目镜像及容器

1、Jenkins是什么目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战:软件构建自动化:配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。构建可持续的自动化检查:CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团

2018-01-19 09:36:33 4224

翻译 MyBatis之Mapper XML 文件详解-sql和入参

sql这个元素可以被用来定义可重用的 SQL 代码段,可以包含在其他语句中。它可以被静态地(在加载参数) 参数化. 不同的属性值通过包含的实例变化. 比如: ${alias}.id,${alias}.username,${alias}.password 这个 SQL 片段可以被包含在其他语句中,例如:select,from some_table t1cross join some_table t2

2018-01-18 12:05:13 852

翻译 MyBatis之Mapper XML 文件详解-自动映射查询结果

正如你在前面一节看到的,在简单的场景下,MyBatis可以替你自动映射查询结果。 如果遇到复杂的场景,你需要构建一个result map。 但是在本节你将看到,你也可以混合使用这两种策略。 让我们到深一点的层面上看看自动映射是怎样工作的。当自动映射查询结果时,MyBatis会获取sql返回的列名并在java类中查找相同名字的属性(忽略大小写)。 这意味着如果Mybatis发现了ID列和id属性,M

2018-01-18 12:01:29 2783

翻译 MyBatis之Mapper XML 文件详解(一)

MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):cache – 给定命名空间的缓存配置。cache-ref

2018-01-18 11:57:21 1002 1

翻译 教你们MyBatis 快速入门,还不快快收藏

导入依赖包前面介绍了MyBatis的相关知识,现在来介绍一下如何和Spring进行集成。MyBatis和Spring的集成工作是由MyBatis团队完成的。所以我们首先要先引入MyBatis和Spring的集成依赖包。这里我用的是Gradle,如果使用其他构建工具,将下面的语句改为相应的。compile group: 'org.mybatis', name: 'mybatis-spring

2018-01-17 14:18:02 859 1

翻译 网络管理监视很重要!这十个 Linux 网络监视工具轻松搞定

保持对我们的网络的管理,防止任何程序过度使用网络、导致整个系统操作变慢,对管理员来说是至关重要的。有几个网络监视工具可以用于不同的操作系统。在这篇文章中,我们将讨论从 Linux 终端中运行的 10 个网络监视工具。它对不使用 GUI 而希望通过 SSH 来保持对网络管理的用户来说是非常理想的。iftopiftop network monitoring toolLi

2018-01-17 14:15:07 10500

翻译 微博每日数十亿级业务下的计数器如何扩展Redis?

在Feed系统中,有简单数据类型的缓存,有集合类数据的。还有一些个性业务的缓存。比如大量的计数器场景,存在性判断场景等。微博解决存在性判断业务的缓存层叫EXISTENCE 缓存层,解决计算器场景的缓存叫COUNTER缓存。EXISTENCE 缓存层主要用于缓存各种存在性判断的业务,诸如是否已赞(liked)、是否已阅读(readed)这类需求。Feed系统内部有大量的计数场景,如用户维度有

2018-01-17 14:12:59 523

翻译 jvm学习笔记

一、java的运行原理jvm开发人员编写java代码(.java文件)编译器将.java文件编译成字节码文件(.class文件)字节码被装入内存,当字节码被装入内存之后,它就会被解释器解释执行或是被即时编译器有选择的转换成机器码执行二、jvm体系结构jvm1、类装载(classLoader)子系统根据给定的全限定名类名来装在.class文

2018-01-16 10:55:37 305

翻译 spring-cloud短篇介绍

首先来介绍下spring-cloud是什么。spring-cloud旨在为开发人员提供一些快速构建分布式系统的工具,例如配置管理,服务发现、断路器、智能路由、微代理(micro-proxy)、控制总线、一次性令牌、全局锁、领导选举、分布式session、集群监控,使用spring-cloud的开发人员可以快速的使用spring-cloud开发出属于自己的分布式应用,他们可以在任何分布式环境中工作(

2018-01-16 10:53:11 208

翻译 Dubbo分布式服务框架搭建

Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。以下是一个简单的dubbo架构图。dubbo笔者从刀耕火种的原始web开发时代一直走到现在,感慨良多。从单体应用,到mvc模型,再到使用webservice,企业服务总线,一直到dubbo,每一次理念的升级,都是带来开发工作的解放。互联网技术日新月异,活到老学到老是必须的

2018-01-16 10:51:44 339

翻译 ZooKeeper故障节点替换过程详解

一、环境描述我的生产环境ZooKeeper 版本3.4.6,5个节点组成的ZooKeeper集群。ZooKeeper集群为一套8个节点的Hadoop集群和HBase 集群提供高可用保障。二、问题描述因为某些特殊原因,需要替换掉myid为5(IP:10.10.10.30)的ZooKeeper节点,故障节点IP:10.10.10.30替换为10.10.10.37。10.10.1

2018-01-15 17:50:30 3656

翻译 教你使用Docker成为更高效的数据科学家

使用 Docker 容器来开发机器学习模型的好处有很多。近日,GitHub 的资深机器学习科学家 Hamel Husain 在 Towards Data Science 上发表了一篇入门级的 Docker 容器教程,文章从基本的概念谈起,清楚明白地介绍了 Docker 容器的一些基本的操作方式和注意事项。Docker 是什么?你可以把 Docker 看作是轻量级的虚拟机——包含你运

2018-01-15 17:45:00 841

翻译 谈谈分布式服务治理框架 Dubbo的重大升级

前言dubbo今年重启维护,并且进行了重大的升级。在java社区很多人都知道并且使用过dubbo ,但是由于之前其停止维护,并在数据传输以及其它的一切配套机制上具有一点的漏洞转而使用其它的解决方案。今天我们就来聊聊 dubbo这次升级的一些东西。dubbo专配精选图关于Dubbo业内搞后台的java汪们应该都知道dubbo,,它是一个基于 java的高性能RPC框架,看GitH

2018-01-15 17:41:26 591

空空如也

空空如也

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

TA关注的人

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