自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aoho求索

aoho求索的技术分享!

原创 基于可靠消息方案的分布式事务:Lottor介绍

前言:笔者最近实现了基于可靠消息方案的分布式事务:Lottor。本文将会介绍Lottor的概况,在后续系列文章介绍具体的实现,欢迎关注。 分布式事务 分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 首先,解释下事务的概念...

2018-05-06 15:29:49 475 0

原创 彻底搞懂 etcd 系列文章(二):etcd 的多种安装姿势

0 专辑概述etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管。etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value ...

2020-05-28 08:22:00 68 0

原创 彻底搞懂 etcd 系列文章(一):初识 etcd

0 专辑概述etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管。etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value ...

2020-05-19 13:11:27 29 0

原创 etcd 与 Zookeeper、Consul 等其它 kv 组件的对比

本文翻译自 https://etcd.io/docs/v3.4.0/learning/why/关于 etcd本文的主角是 etcd。名称 “etcd” 源自两个想法,即 unix “/e...

2020-05-05 09:16:00 46 0

原创 本地开发环境搭建利器--vagrant

今天分享一篇简短的实践文章,明天就是五一假期了,祝大家玩得开心。解决的问题笔者需要部署一个 etcd 集群,并非使用 goreman 工具部署的伪集群。为了与真实环境对等,需要用到三台机...

2020-04-30 17:17:00 52 0

原创 抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(二)

在上一篇文章中,我们分享了几大互联网公司面试的题目,本文就来详细分析面试题答案以及复习参考和整理的面试资料,小民同学的私藏珍品????。首先是面试题答案公布,在讲解时我们主要分成如下几...

2020-04-27 13:12:51 120 0

原创 抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(上)
原力计划

先报一下身份,笔者的师弟小民同学。小民同学应届校招从事服务端开发,参加校招面试以来,共面四个公司的服务端开发岗位: 抖音,IES互娱 腾讯,PCG 应用宝数据中台 阿里,新零售供应链 美团,到店事业部 目前为止,除了阿里还在等交叉,其他均已收到 offer,硬核技术实力。小民说自己是个技术渣,...

2020-04-18 11:21:08 227 0

转载 系统状态下的洞察力

本篇为非技术文章,题目比较抽象,主要谈谈技术人在技术之外如何拓展认知。我们做任何事情都有一套方法论,如何优化我们的方法论?系统状态下的洞察力,是提升自我认知的一个重要方面,今天与大家分享...

2020-03-07 16:28:06 28 0

原创 Go 1.14 正式发布,重要更新有哪些

Go 在 2019 年发布了Go 1.12与Go 1.13。Go 1.13 的大部分变化在于工具链、运行时和库的实现。时隔半年,Go 1.14 正式发布。和之前的版本一样,该版本保留了 ...

2020-03-04 23:29:11 627 0

原创 微服务统一认证与授权的 Go 语言实现(上)

各位读者朋友鼠年大吉,祝各位新的一年身体健康,万事如意!最近疫情严重,是一个特殊时期,大家一定要注意防护。很多省份推迟了企业开工的时间,大部分的互联网公司也都是下周开始远程办公。大家可以...

2020-02-11 08:12:00 85 0

原创 微服务统一认证与授权的 Go 语言实现

各位读者朋友鼠年大吉,祝各位新的一年身体健康,万事如意! 最近疫情严重,是一个特殊时期,大家一定要注意防护。很多省份推迟了企业开工的时间,大部分的互联网公司也都是下周开始远程办公。大家可以利用在家的几天时间学习充电,反正也出不去(????????????)。 今天笔者要写得是 Go 微服务相关的组...

2020-01-29 00:15:39 1223 0

转载 当 Redis 发生高延迟时,到底发生了什么

点击上方关注,选择“置顶或者星标” 你的关注意义重大!Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。但是 Redis 也会发...

2020-01-10 12:02:38 40 0

原创 深入了解分布式事务组件 Seata :AT 模式(二)

在前面一篇文章,我们介绍了阿里开源的分布式事务组件 Seata 的相关概念,重点介绍了 Seata 的 AT 模式。并通过一个 Spring-Cloud-JPA 的案例,演示了 AT 模式的使用入门。本文将会结合 Spring-Cloud-JPA 的案例,深入了解 Seata AT 模式的工作流程...

2019-11-28 23:57:41 90 0

原创 ​深入了解分布式事务组件 Seata (一)

分布式事务的问题,在微服务架构中一直是难题。单体应用实现本地事务即可,到了分布式环境,情况就变得复杂。一个请求可能涉及多个服务,上下游存在依赖关系,其中的一环失败,需要将...

2019-10-16 08:28:00 48 0

原创 深入了解分布式事务组件 Seata (一)

分布式事务的问题,在微服务架构中一直是难题。单体应用实现本地事务即可,到了分布式环境,情况就变得复杂。一个请求可能涉及多个服务,上下游存在依赖关系,其中的一环失败,需要将整个事务回滚。笔者在去年上半年开源过一款微服务的分布式事务组件:lottor,基于可靠消息的柔性分布式事务实现方案。引入的 Lo...

2019-10-15 21:56:56 273 0

原创 服务注册与发现组件 Eureka 客户端实现原理解析

在前面的文章介绍了,如何使用服务注册发现组件: Eureka,并给出使用示例。本文在此基础上,将会讲解 Eureka 客户端实现的内幕,结合源码深入实现的细节,知其所以然。客户端需要重点关注以下几点: 从Eureka Server中拉取注册表信息 全量拉取注册表信息 增量式拉取注册表信息 注册表...

2019-09-22 23:08:13 312 0

原创 云原生架构下的 API 网关实践:Kong (三)

在前面的文章介绍了 Kong 的相关实践,本文将会介绍 Kong 的利器:插件以及自定义插件。Kong 几种常用插件的应用请求到达 Kong,在转发给服务端应用之前,我们...

2019-09-05 09:05:00 387 0

转载 Google发布了超强人工智能,人类或迎来史上最惨失业潮…

文末有福利哦!12016年AlphaGo以总比分4:1轻松战胜围棋世界冠军李世石,这是AI第一次震惊世界。次年AlphaGo又以3:0的比分击败柯洁,面对强大的AI,柯洁...

2019-09-05 09:05:00 1328 0

原创 云原生架构下的 API 网关实践: Kong (三)

在前面的文章介绍了 Kong 的相关实践,链接,本文将会介绍 Kong 的利器:插件以及自定义插件。 Kong 几种常用插件的应用 请求到达 Kong,在转发给服务端应用之前,我们可以应用 Kong 自带的插件对请求进行处理,如合法认证、限流控制、黑白名单校验和日志采集等等。同时,我们也可以按照 ...

2019-09-04 22:47:54 400 0

原创 云原生架构下的 API 网关实践: Kong (二)

Kong 是 Mashape 开源的一款云原生架构下的分布式 API 网关,其性能和可扩展性在同类组件中,表现都很优异。Kong 官方提供了很多直接可用的插件,此外,Kong 还可以通过插件扩展已有功能。 本文的主要内容: 什么是云原生网关? Kong 介绍 Kong 的基本架构 使用 Kong...

2019-08-26 20:19:04 199 0

原创 服务注册与发现组件 Eureka 应用实战

本文摘录于笔者出版的书籍 《Spring Cloud 微服务架构进阶》一书 什么是服务注册与发现 在传统的单体应用中,组件之间的调用通过有规范约束的接口进行,实现不同模块间良好协作。在微服务架构中,原本的’巨石’应用按照业务被分割成相对独立的、提供特定功能的服务,每一个微服务都可以通过集群或者其他...

2019-08-19 20:55:42 365 0

原创 如何在 Spring 异步调用中传递上下文

什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。异步调用指,在程序在执行时,无需等待执行的返回值即可继续执行后面的代码。在我们的应用服务中,有很多业务逻辑的执行操作不需要同步返...

2019-08-01 22:19:28 1186 2

原创 详解微服务架构中的全链路追踪

介绍 分布式环境下,尤其是微服务架构应用广泛,各个服务按照不同的维度进行拆分,一次请求请求往往需要涉及到多个服务。这些服务之间的调用可能非常复杂。因此,全链路调用的跟踪就变得非常重要,我们需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决。 主要内容 本场...

2019-07-10 20:05:26 836 0

原创 由散列表到BitMap的概念与应用(一)

散列表 提到散列表,大家可能会想到常用的集合HashMap,HashTable等。 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记...

2019-07-07 23:33:47 129 0

原创 最全的 JVM 面试知识点(三):垃圾收集器

在涉及 Java 相关的面试中,面试官经常会让讲讲 Java 中的垃圾收集相关的理解和常见的分类。可见,光就应付面试而言,JVM 的垃圾收集也对每一位 Java 开发者很重要。除此之外,对于我们了解和解决 Java 应用的性能时,也很有帮助。 在上一篇介绍了 Java 虚拟机内存的垃圾收集算法。...

2019-06-29 18:13:26 411 0

原创 最全的 JVM 面试知识点(二):垃圾收集

在上一篇介绍了 Java 虚拟机内存的运行时数据区。本章将会介绍 Java 中的垃圾收集算法与常用的垃圾收集器。 在涉及 Java 相关的面试中,面试官经常会让讲讲 Java 中的垃圾收集相关的理解和常见的分类。可见,光就应付面试而言,JVM 的垃圾收集也对每一位 Java 开发者很重要。除此之外...

2019-06-23 19:54:42 1782 0

翻译 Golang 需要避免踩的 50 个坑(一)

最近准备写一些关于golang的技术博文,本文是之前在GitHub上看到的golang技术译文,感觉很有帮助,先给各位读者分享一下。 前言 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里...

2019-06-19 11:55:27 2022 2

原创 最全的 JVM 面试知识点(一):运行时数据区

本系列文章讲解 面试中常见的 JVM 问题。这些问题之所以常见,是因为很基础,对于一个有点逼格的程序猿来说, JVM 的相关特性和原理在工作也需要熟知。笔者也在面试的过程中屡屡受挫,屡败屡战,总结一些常见知识点,这些知识点既可以应付面试,也可以帮助读者深入了解 JVM 提供大纲。 在用 C 之类的...

2019-06-15 15:27:21 1603 3

原创 面试:计算机网络基础详解(一)

计算机网络是计算机、软工类面试的基础,不管是软件/硬件开发、技术支持还是测试职位,都会涉及到计算机网络的基础知识,本文基于笔者之前的面试准备所做的相关知识整理。本文的主要内容: OSI 与 TCP/IP 模型 OSI 七层模型 OSI 的缺陷 TCP/IP 五层模型 TCP 三次握手和四次...

2019-06-07 19:56:29 2417 1

原创 微服务中集成分布式配置中心 Apollo

背景 随着业务的发展、微服务架构的升级,服务的数量、程序的配置日益增多(各种微服务、各种服务器地址、各种参数),传统的配置文件方式和数据库的方式已无法满足开发人员对配置管理的要求:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制。分布式环境下,这些配置更加复杂。 因此,我...

2019-05-28 21:29:05 113 0

原创 由Spring应用的瑕疵谈谈DDD的概念与应用(二)

在上一篇文章中,通过Spring Web应用的瑕疵引出改善的措施,我们讲解了领域驱动开发的相关概念和设计策略。本文主要讲解领域模型的几种类型和DDD的简单实践案例。 架构风格 在《实现领域驱动设计》一书中提到了几种架构风格:六边形架构、REST架构、CQRS 和事件驱动等。在实际使用中,落地的架构...

2019-04-15 19:27:40 179 2

原创 细说 Java 泛型及其应用

引出泛型 我们通过如下的示例,引出为什么泛型的概念。 public class Test { public static void main(String[] args) { List list = new ArrayList(); list.add(&q...

2019-04-01 19:37:35 717 0

原创 Go的包管理工具(三):Go Modules

在前面的文章,我们先是介绍了Go 的几种包管理方式,然后具体介绍了一种包管理的工具: glide。随着 Go 1.11 的发布,官方的包管理工具 Go Modules 变得流行起来。在发布不久的 Go 1.12 版本中,增强了对 Go Modules 的支持。本文将会介绍如何在项目中安装和使用 G...

2019-03-06 20:55:42 1211 0

原创 Go的包管理工具(二):glide

在上一篇文章中介绍了 Go 的环境配置和包管理的几种方式。Go 的包管理是一直是为人诟病之处,从 Go 1.5 引入的 vendor 机制、准官方工具dep,到 Go 1.5 的 go modules,目前为止还没一个简便的解决方案。本文将会介绍 glide glide 是在 vendor 之后出...

2019-03-01 20:30:20 72 0

原创 Go 1.12 版本发布

Go 1.12 昨天,Go 官方发布 1.12 版本。本文介绍下 Go 1.12 版本变更的内容。 Go 1.12 正式版发布了,距离上个正式发布版 Go 1.11 已经过去半年。跟往常一样,Go 1.12 保持了 兼容性承诺,预期所有 Go 程序会像之前一样正常编译。新版本的更新亮点有: TLS...

2019-02-28 15:24:34 906 0

原创 Go的包管理工具(一)

在前面转载了系列文章:Golang 需要避免踩的 50 个坑,总得来说阅读量都挺大。今天这篇文章,咱们一起聊聊Go的依赖包管理工具。 背景 每一门语言都有其依赖的生态,当我们使用Java语言的时候,使用Maven或者Gradle管理包依赖。早期的Go被很多开发者所诟病的一个问题就是依赖包的管理。G...

2019-02-19 16:17:08 486 0

原创 微服务网关Spring Cloud Gateway的应用实战

今天和大家聊一下微服务网关 Spring Cloud Gateway。Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于Spring 5.0、Spring Boot 2.0 和Project Reactor 等组件技术,Spring Cloud G...

2019-02-12 21:58:34 1689 0

原创 深入RxJava2 源码解析(二)

本文作者JasonChen,原文地址: http://chblog.me/2018/12/19/rxjava2 源码解析(一)/ 前一篇文章我们讲述到RxJava2 的内部设计模式与原理机制,包括观察者模式和装饰者模式,其本质上都是RxJava2的事件驱动,那么本篇文章将会讲到RxJava2 ...

2019-01-17 20:18:50 64 0

原创 深入RxJava2 源码解析(一)

深入RxJava2 源码解析(一) 本文作者JasonChen,原文地址: http://chblog.me/2018/12/19/rxjava2 源码解析(一)/ ReactiveX 响应式编程库,这是一个程序库,通过使用可观察的事件序列来构成异步和事件驱动的程序。 其简化了异步多线程编程,...

2019-01-13 14:59:03 158 0

原创 由Spring应用的瑕疵谈谈DDD的概念与应用(一)

Spring 框架已经成为构建企业级 Java 应用事实上的标准了,众多的企业项目都构建在 Spring 项目及其子项目之上,特别是 Java Web 项目,很多都使用了 Spring 并且遵循着 Web、Service、Dao 这样的分层原则,下层向上层提供服务;不过Petri Kainula...

2019-01-09 12:15:43 1218 0

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