自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kubernetes 之深入理解 DaemonSet

为了弄清楚 DaemonSet 的工作原理,我们还是按照老规矩,先从它的 API 对象的定义说起。这个 DaemonSet,管理的是一个 fluentd-elasticsearch 镜像的 Pod。这个镜像的功能非常实用:通过 fluentd 将 Docker 容器里的日志转发到 ElasticSearch 中。可以看到,DaemonSet 跟 Deployment 其实非常相似,只不过是没有 replicas 字段;

2023-03-28 23:13:50 514 1

原创 Kubernetes 之深入理解 StatefulSet

容器技术诞生后,大家很快发现,它用来封装“无状态应用”(Stateless Application),尤其是 Web 服务,非常好用。但是,一旦你想要用容器运行“有状态应用”,其困难程度就会直线上升。而且,这个问题解决起来,单纯依靠容器技术本身已经无能为力,这也就导致了很长一段时间内,“有状态应用”几乎成了容器技术圈子的“忌讳”,大家一听到这个词,就纷纷摇头。

2023-03-18 10:19:48 898

原创 Kubernetes 的控制器模型

“容器”镜像虽然好用,但是容器这样一个“沙盒”的概念,对于描述应用来说,还是太过简单了。这就好比,集装箱固然好用,但是如果它四面都光秃秃的,吊车还怎么把这个集装箱吊起来并摆放好呢?

2023-03-15 22:25:10 724 2

原创 Kubernetes 之 Pod 到底是什么?

Pod 扮演的是传统部署环境里“虚拟机”的角色。这样的设计,是为了使用户从传统环境(虚拟机环境)向 Kubernetes(容器环境)的迁移,更加平滑。

2023-03-12 23:06:40 579

原创 Kubernetes 如何运行容器?

作为一个应用开发者,你首先要做的,是制作容器的镜像。而有了容器镜像之后,你需要按照 Kubernetes 项目的规范和要求,将你的镜像组织为它能够“认识”的方式,然后提交上去。

2023-03-11 21:43:53 1258 3

原创 Kubernetes 一键部署利器:kubeadm

Kubernetes 的部署一直以来都是挡在初学者前面的一只“拦路虎”。尤其是在 Kubernetes 项目发布初期,它的部署完全要依靠一堆由社区维护的脚本。

2023-03-09 21:45:51 1447 1

原创 一文说清 Kubernetes 的本质

如果 Kubernetes 项目只是停留在拉取用户镜像、运行容器,以及提供常见的运维功能的话,那么别说跟“原生”的 Docker Swarm 项目竞争了,哪怕跟经典的 PaaS 项目相比也难有什么优势可言

2023-03-02 21:37:23 1304

原创 Docker 部署实战

通过文件的内容,可以看到 Dockerfile 的设计思想,是使用一些标准的原语(即大写高亮的词语),描述我们所要构建的 Docker 镜像。并且这些原语都是按顺序处理的。

2023-02-28 21:22:31 830 2

原创 Docker 竟如此简单!

容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去,这不就是 PaaS 最理想的状态嘛。

2023-02-21 22:37:44 3656

原创 代码质量、重构、可测试性、解耦杂谈

如何发现代码质量问题?从大处着眼的话,看这段代码是否可读、可扩展、可维护、灵活、简洁、可复用、可测试等等,落实到具体细节,可以从以下几个方面来审视代码。

2022-11-14 12:21:01 1404

原创 如何利用基于充血模型的DDD开发一个虚拟钱包系统?

上篇文章总结了一些理论知识的铺垫性讲解,讲到了两种开发模式,基于贫血模型的传统开发模式,以及基于充血模型的 DDD 开发模式。今天,我们正式进入实战环节,看如何分别用这两种开发模式,设计实现一个钱包系统。

2022-11-13 16:57:13 1464

原创 原来我们一直写的是违反面向对象编程风格的代码

众所周知,很多业务系统都是基于 MVC 三层架构来开发的,虽然这种开发模式已经成为标准的 Web 项目的开发模式,但它却违反了面向对象编程风格,是一种彻彻底底的面向过程的编程风格,因此被有些人称为反模式(anti-pattern)。特别是领域驱动设计(Domain Driven Design,简称 DDD)盛行之后,这种基于贫血模型的传统的开发模式就更加被人诟病,而基于充血模型的 DDD 开发模式越来越被人提倡。

2022-11-13 14:55:04 400 1

原创 服务与发现

假设你正在编写一些调用具有 REST API 的服务的代码,为了发出请求,你的代码需要知道服务实例的网络位置(IP 地址和端口),在物理硬件上运行的传统应用程序中,服务实例的网络位置通常是静态的。例如,你的代码可以从偶尔更新的配置文件中读取网络位置,但在现代的基于云的微服务应用程序中,通常不那么简单...

2022-10-22 00:13:55 806

原创 微服务架构中的进程间通信

客户端与服务的交互方式可以分为两个维度,第一个维度关注的是一对一和一对多,第二个维度是同步和异步。

2022-10-17 21:40:31 1185 2

原创 微服务的拆分策略

架构风格根据结构组织模式定义了一系列系统,更具体地说,架构风格确定可以在该风格的实例中使用的组件和连接器的词汇表,以及关于如何组合它们的一组约束。

2022-06-27 20:43:10 511

原创 逃离单体地狱

曾经小巧的、简单的、由一个小团队开发维护应用程序,经过10年的成长,已经演变成一个由大团队开发的巨无霸单体应用程序。同样,小型开发团队现在已成为多个所谓 Scrum 敏捷团队,每个团队都在特定的功能领域工作。作为架构扩展的结果,项目已经陷入了单体地狱,开发变得缓慢和痛苦,敏捷开发和部署已经不可能。来看看这是为什么。...

2022-05-30 22:57:40 357 1

原创 设计原则与思想:面向对象

如何评价代码质量的高低?当谈论面向对象的时候,我们到底在谈论什么?哪些代码设计看似是面向对象,实际是面向过程的?接口vs抽象类的区别?为何说要多用组合少用继承?如何决定该用组合还是继承?如何做面向对象分析和面向对象设计?

2022-03-14 21:40:57 928

原创 Spring Security OAuth:源码解析

在使用 Spring Security 框架时,建造者我们是不会动的,我们能做的只是将自己的配置添加到整个架构下,所以能扩展的是配置器,Spring Security OAuth 也是如此。

2021-09-01 14:45:19 819 4

原创 DataLink 数据同步平台

在项目开发中,经常需要将数据库数据同步到 ES、Redis 等其他平台,通过自己写代码进行同步过程中面临诸多问题,比如业务代码和同步代码高耦合,数据一致性等;一个支持多输入输出源的数据同步平台就显得很有意义。

2021-08-17 23:24:59 6386 5

原创 Spring Security OAuth:客户端模式超简单实现

OAuth 是一个开放标准,Spring Security OAuth 给我们提供了一个 OAuth 的实现,本篇演示了如何使用 Spring Security OAuth 做客户端模式的授权和认证,代码非常简单!

2021-08-16 22:10:43 4206 4

原创 控制层接口规范

控制层采用 REST 规范,可以将每个业务中心理解为一个超大的 JSON 文档,通过 URI 在文档中来定位资源,通过 Http 动词完成增删查改操作

2021-07-27 23:17:29 570

原创 优雅的函数设计

是否每次团队中对自己的代码 CodeReview 总有顾虑?害怕自己设计的代码不够好被同事嘲笑?想不想在 CodeReview 时,让你的同事为你的代码所惊艳?来!这里有一份 Java 优雅的函数设计规范你值得拥有!

2021-07-22 17:35:16 254 2

原创 Sentinel 限流框架

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。

2021-07-13 17:38:20 669 1

原创 Redis 单节点 ➤ Redis Sentinel 高可用 ➤ Redis Cluster 集群

这是一套从 Redis 单节点,到 Redis Sentinel 哨兵做自动故障转移实现高可用,再到 Redis Cluster 集群由简单到深入的详细部署方案,值得收藏和学习,欢迎一起交流~

2021-07-08 19:09:46 429 2

原创 【Redis 开发与运维】开发运维的“陷阱”

在 Redis 的开发和运维过程中,由于对于 Redis 的某些特性没有真正合理地使用,会遇到一些棘手的问题,本章将对一些典型的“陷阱”进行逐一分析并提出解决方案。

2021-07-03 21:12:22 231 3

原创 【Redis 开发与运维】Redis Cluster 集群(三)

Redis 集群不需要依赖 Sentinel 哨兵,自身实现了高可用,即自动故障转移,本篇来了解一下集群内部的故障转移,还有集群运维的一些点。

2021-07-02 15:40:21 207 2

原创 【Redis 开发与运维】Redis Cluster 集群(二)

Redis Cluster 集群第二篇,聊聊集群伸缩的原理以及扩容和收缩的基本操作,再聊聊请求的路由方法以及集群客户端原理和实战 —— JedisCluster

2021-06-29 21:12:15 238 1

原创 【Redis 开发与运维】Redis Cluster 集群(一)

Redis Cluster 是 Redis 的分布式解决方案,有效地解决了 Redis 分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用 Cluster 架构方案达到负载均衡的目的。

2021-06-22 20:12:00 304

原创 【Redis 开发与运维】Redis 的噩梦:阻塞

Redis 是典型的单线程架构,所有的读写操作都是在一条主线程中完成的。当 Redis 用于高并发场景时,这条线程就变成了它的生命线。如果出现阻塞,哪怕是很短时间,对于我们的应用来说都是噩梦。

2021-06-20 13:33:33 264

原创 【Redis 开发与运维】Redis Sentinel 哨兵(二)

本篇将介绍应用方如何正确地连接 Redis Sentinel,并且聊聊 Redis Sentinel 的实现原理,还有一些开发与运维中的问题探讨

2021-06-19 14:33:02 634

原创 【Redis 开发与运维】Redis Sentinel 哨兵(一)

Redis 的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于与很多应用场景这种故障处理的方式是无法接受的。正好本章节的 Redis Sentinel 就是用来做自动故障转移的。

2021-06-18 20:03:16 229

原创 【Redis 开发与运维】复制

在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均很等需求。Redis 也是如此,它为我们提供了复制功能,实现了相同数据的多个 Redis 副本。

2021-06-12 22:33:07 231

原创 【Redis 开发与运维】客户端

客户端通信协议、Java 客户端 Jedis 的基本使用、客户端管理、客户端案例分析

2021-05-31 23:30:07 238 2

原创 LeetCode算法技巧汇总 -- 持续更新,学无止境!

此篇是本人 LeetCode 算法刷题技巧总结,还包括刷过的算法题分类,自己记录以便后续二刷三刷,也分享给大家欢迎一起交流探讨。话说现在非常遗憾大学期间没能坚持搞 ACM,出来社会才越发觉得后悔,但是遗憾归遗憾,我还是相信种一棵树是十年前,其次是现在,所以重新再来为时不晚!刷起!!!

2021-05-25 19:44:37 1451 3

原创 Spring Security源码(十):权限访问控制是如何做到的?

在实战篇《手把手教你如何使用Spring Security(下):访问控制》我们学习了Spring Security强大的访问控制能力,只需要进行寥寥几行的配置就能做到权限的控制,本篇来看看它到底是如何做到的。

2021-05-15 15:34:13 897 3

原创 Spring Security源码(九):过滤器链上的过滤器是如何排序的?

前面源码篇文章提到,整个框架的核心就是一个过滤器 FilterChainProxy,这个过滤器维护了一组过滤器链,真正起作用的其实是这个过滤器里的过滤器链。我们知道过滤器链可是有执行顺序的,关于它是如何排序的,本篇来聊聊。

2021-05-13 21:24:48 1770 4

原创 手把手教你如何使用Spring Security(下):访问控制

Spring Security是一个功能强大且高度可定制的身份认证和访问控制框架,它是保护基于spring应用程序的事实标准。本篇就来说说使用Spring Security进行请求的访问控制。

2021-05-12 19:56:28 2203 7

原创 Spring Security源码(八):登录认证源码流程

前两篇提到如何使用Spring Security去实现登录授权和接口认证,但是程序是怎么做到这些类之间的流程控制的呢,一起来了解下吧

2021-05-05 10:23:42 2325 7

原创 手把手教你如何使用Spring Security(中):接口认证

在上篇文章我们配置了如何登录,以及登录后获取JWT令牌,但是对于普通的请求依然无法访问,原因是我们并没有去校验令牌认证请求的合法性,这一篇就来说说请求的认证。

2021-04-28 00:25:16 2465 4

原创 手把手教你如何使用Spring Security(上):登录授权

Spring Security,目前最流行的安全框架之一,新手看完很容易上手操作,Demo项目中各个类的描述非常清晰,值得参考和收藏,也欢迎大家一起探讨~

2021-04-26 20:36:34 4159 7

空空如也

空空如也

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

TA关注的人

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