Fork me on GitHub
福利

福利

截止至今,笔者已举办过多次赠书/抽奖活动,并发放过挺多福利,这里整理一下。 活动列表 日期 活动 2018-06-11 【福利】赠书啦! 2018-07-24 赠书啦!Spring Cloud微服务-全栈技术与案例解析 2018-08-04 赠书活动第三期!厚着脸皮赠自己的书…… 2019-02-25 再次送10本技术书籍,包邮。 2019-03-17 3月又来无套路赠书啦!赠40本! 2019-03-28 签到领 极客时间《面试现场》 ...

跟我学Spring Cloud(Finchley版)-26-使用Elasticsearch作为Zipkin Server的后端存储

前文搭建的Zipkin Server是没有后端存储的——数据会存储在Zipkin的内存中。这一般不适合生产,本节来探讨如何将Zipkin中的数据持久化。 Zipkin支持多种存储: 内存(默认) MySQL(数据量大时,查询较为缓慢,不建议使用) Elasticsearch Cassandra(Twitter官方使用Cassandra作为Zipkin Server的存储,但国内大规模用Cassandra的公司较少,Cassandra相关文档也不多) 综上,个人建议使...

Spring Boot 2实现分布式锁——这才是实现分布式锁的正确姿势!

都9102年了,你还在手写分布式锁吗? 经常被问到”如何实现分布式锁”,看来这是大家的一个痛点。 其实Java世界的”半壁江山”——Spring早就提供了分布式锁的实现。早期,分布式锁的相关代码存在于Spring Cloud的子项目Spring Cloud Cluster中,后来被迁到Spring Integration中。 Spring Cloud Cluster的GitHub:https://github.com/spring-cloud/spring-clo...

Jenkins手把手图文教程[基于Jenkins 2.164.1]

Jenkins手把手图文教程[基于Jenkins 2.164.1]

本文基于当前最新的 LTS 版本 2.164.1 ,理论上适应于Jenkins 2.x所有版本。 一、下载前往https://jenkins.io/download/ ,按需下载。如用于生产,建议下载Long-term Support (LTS) 版本,这样能够获得相对长期的维护;如想体验最新的功能,可尝试 Weekly 版本。 可以直接下载特定系统专属的版本,也可下载 Generic Java package (.war) 。本文下载的是 Generic Jav...

跟我学Spring Cloud(Finchley版)-25-Spring Cloud Sleuth与Zipkin配合使用

跟我学Spring Cloud(Finchley版)-25-Spring Cloud Sleuth与Zipkin配合使用

一个良好的监控,应该有一个人类亲和的界面,这个界面就是Zipkin。本文详细讨论Sleuth如何与Zipkin配合使用。 Zipin简介Zipkin是Twitter开源的分布式跟踪系统,基于Dapper的论文设计而来。它的主要功能是收集系统的时序数据,从而追踪微服务架构的系统延时等问题。Zipkin还提供了一个非常友好的界面,帮助我们分析追踪数据。 TIPS Zipkin官方网站:http://zipkin.io/ Zipkin Server搭建 使用https://...

跟我学Spring Cloud(Finchley版)-24-Spring Cloud Sleuth入门

跟我学Spring Cloud(Finchley版)-24-Spring Cloud Sleuth入门

经过前文讲述,我们的微服务架构日趋完善,已可使用Spring Cloud构建一个非常健壮的系统! 但假设,你的项目一旦出现问题,如何才能快速定位出来呢?一般项目上要求我们快速定位两种问题: 调用发生失败,快速定位出是哪个环节出了问题。是微服务问题,还是网络? 调用慢,如何快速找到性能瓶颈? 这正是调用链监控要做的事情。Spring Cloud提供Sleuth来实现调用链监控。 简介Spring Cloud Sleuth为Spring Cloud提供了分布式跟踪的解决...

实用技巧:快速定位Zuul的性能瓶颈

Zuul的性能不是特别好,特别是,某些项目对Zuul进行了一些扩展,代码还不那么考究时。 如何快速定位出Zuul的性能瓶颈呢?我们知道,Zuul的核心是过滤器,Zuul大多功能都是基于过滤器实现的。 一次请求,会经过若干过滤器,如何查看每个过滤器执行的耗时呢?只需开启Zuul的Debug能力即可。 注 本文基于Spring Cloud Finchley,同样适用于Spring Cloud Greenwich。 Edgware及更早版本,需配置 management.s...

Spring Cloud Alibaba系列教程-02-将应用注册到Nacos上

Spring Cloud Alibaba系列教程-02-将应用注册到Nacos上

在 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 一文中,已编写好两个微服务;在 跟我学Spring Cloud(Finchley版)-04-服务注册与服务发现-原理剖析 一文中详细剖析了服务发现的原理。如果对这块知识有疑问,可先行复习一下。 本文探讨如何将 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 一节中的应用注册到Nacos上。 准备工作在pom.xml 中添加如下内容,主要是引入Spring Clo...

跟我学Spring Cloud(Finchley版)-23-Spring Cloud Config高可用

跟我学Spring Cloud(Finchley版)-23-Spring Cloud Config高可用

前文构建的都是单节点的Config Server,本节来讨论如何构建高可用的Config Server集群,包括Config Server的高可用依赖Git仓库的高可用以及RabbitMQ的高可用。 先来讨论Git仓库的高可用。 Git仓库的高可用由于配置内容存储在Git仓库中,所以要想实现Config Server的高可用,必须有一个高可用的Git仓库。有两种方式可以实现Git仓库的高可用。 使用第三方Git仓库:这种方式非常简单,可使用例如GitHub、BitBu...

使用Kubespray 2.8.3部署生产可用的Kubernetes集群(1.12.5)

Kubernetes的安装部署是难中之难,每个版本安装方式都略有区别。笔者一直想找一种支持多平台 、相对简单 、适用于生产环境 的部署方案。经过一段时间的调研,有如下几种解决方案进入笔者视野: 部署方案 优点 缺点 Kubeadm 官方出品 部署较麻烦、不够透明 Kubespray 官方出品、部署较简单、懂Ansible就能上手 不够透明 RKE 部署较简单、需要花一些时间了解RKE的cluster.yml配置文件 不够透明 手动部署 第三方操作文档 完全透明、可配置、便于理解K8s各组件之间的关系 部署非常麻烦,容易出错 其他诸如Kops之类的方案,由于无法跨平台,或者其他因素,被我pass了。 最终,笔者决定使用Kubespray部署Kubernetes集群。也希望大家能够一起讨论,总结出更加好的部署方案。 废话不多说,以下是操作步骤。…