自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Cloud微服务注册中心Consul入门使用(下)

Spring Cloud Consul是一个分布式系统的服务治理框架,它基于Hashicorp提供的Consul实现了服务的注册和发现、配置管理、负载均衡和健康检查等功能。

2024-02-27 15:29:59 946

原创 Spring Cloud微服务注册中心Consul入门使用(上)

Consul是Go语言编写的一个分布式高可用的服务网格解决方案,提供包括服务发现、配置和分段功能在内的全功能控制平面。它的每个功能都可以单独使用,也可以用它来构建完整的服务网格。

2024-02-27 15:27:08 1167

原创 Spring Cloud微服务网关Zuul过滤链实现的源码解读

Spring Cloud微服务网关Zuul动态路由配置Spring Cloud微服务网关Zuul动态路由配置优化和手动触发路由刷新。可以关注我的微信公众号,有更多的技术干货文章。

2024-02-26 14:42:37 1049

原创 Spring Cloud微服务网关Zuul的注解@EnableZuulProxy或@EnableZuulServer做了什么事情

Spring Cloud微服务网关Zuul的注解@EnableZuulProxy或@EnableZuulServer做了什么事情

2024-02-26 14:41:05 1363

原创 Spring Cloud微服务网关Zuul灰度发布入门实战

可以关注我的微信公众号,有更多的技术干货文章。

2024-02-20 15:02:57 977

原创 Spring Cloud微服务网关Zuul动态路由配置优化和手动触发路由刷新

通过两篇文章讲述了Zuul网关的动态路由配置的原理和实战,接口的类图并不复杂,很多Zuul的组件在和里面注入到了Spring容器,可以看一下里面都有什么组件,并分析一下其功能,能够很快地理解Zuul的一些功能原理。可以关注我的微信公众号,有更多的技术干货文章。

2024-02-20 15:01:38 1109

原创 Spring Cloud微服务网关Zuul动态路由配置

动态路由配置是很多网关在实际项目中需要用到的功能。但是像Zuul、Spring Cloud Gateway这些是没有提供完善的功能,使得需要开发者自己去实现。不像Apache Shenyu网关提供了很多开箱即用的功能,如果开发量较大,可以结合实际项目调研一下Apache Shenyu。本文提到了手动刷新路由配置并且还有可以优化的地方,但是写到这里本文的篇幅已经不短了,这一部分将在下一篇中把坑给填了。# 总结动态路由配置是很多网关在实际项目中需要用到的功能。

2024-02-19 11:40:04 1502

原创 Spring Cloud微服务网关Zuul过滤链和整合OAuth2+JWT入门实战

OAuth2是OAuth协议的第二个版本,是对授权认证比较成熟地面向资源的授权协议,在业界中广泛应用。出了定义了常用的用户名密码登录之后,还可以使用第三方一个用登录。例如在某些网站上可以使用QQ、微信、Github等进行登录。其主要流程如下:至于JWT则是一种使用JSON格式来规约Token和Session的协议。因为传统的认证方式中会产生一个凭证,比如Session会话是保存在服务端,然后依赖于Cookie返回给客户端,Session是有状态的。

2024-02-19 11:37:16 903

原创 Spring Cloud微服务网关Zuul基础入门使用

Zuul是从设备和网络到后端应用程序所有请求的后门,为内部服务提供可配置的对外URL到服务的映射关系,基于JVM的后端路由器。具有一下的功能:

2024-02-13 12:14:38 1211

原创 Spring Cloud Neflix Hystrix应用实战详解

通常在复杂的分布式系统都存在不同服务之间的调用,OpenFeign作为Spring Cloud的远程调用工具默认是已经集成了Hystrix。在一些老的版本中,默认是打开了Hysrix,但是在新的版本中,Hystrix是关闭的,需要手动打开。

2024-02-13 12:11:25 1164

原创 Spring Cloud Neflix Hystrix入门使用

Hystrix是Netflix开源的一个针对分布式系统容错处理的组件,Netflix公司的项目里大量用到了Hystrix,Hystrix单词意为:“豪猪”,浑身有刺来保护自己。Hystrix是一个延迟和容错库,旨在隔离远程系统、服务和第三方库,阻止级联故障,在复杂的分布式系统中实现恢复能力。

2024-02-06 14:04:26 892

原创 K8S的容器执行kill命令怎么让重启容器

从 kill 掉 pod 的1号进程原地重启开始,到解析 kill 1 和 kill -9 1,再到 Linux 信号处理,可以说是十分清晰了,大家可以去跟别人吹牛了。

2024-02-06 12:39:49 2375

原创 Spring Cloud OpenFeign进阶实战

Feign默认是使用JDK原生的URLConnection发送HTTP请求,没有连接池,但是对每个地址会保持一个长连接,就是利用HTTP的persistence connection.。这样可以使用其他优秀的Client去替换。这样可以设置连接池,超时时间等对服务之间的调用调优。下面介绍使用Http Client和Okhttp替换Feign默认的Client。步骤也很简单。

2024-02-05 14:19:02 1144

原创 Spring Cloud OpenFeign基础入门

Feign是一个声明式的Web Service客户端,是一种声明式、模板化的HTTP客户端。而OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解,如@RequesMapping等等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。

2024-02-05 14:17:47 888

原创 Spring Cloud Neflix Ribbon入门到实战

使用Ribbon时配置全局的负载均衡策略,需要加一个配置类。改配置类需要被扫描到才能全局生效。@Bean上面配置了随机的策略,多次访问http://localhost:7776/ribbon/test。就可看到Server的选择就变成了随机了。同样了可以选择其他的Ribbon已经实现的策略,也可以自定义负载均衡策略。

2024-02-05 14:13:47 970

原创 Spring Cloud Netflix Eureka应用实战

Spring Cloud Netflix Eureka应用实战

2024-02-04 15:07:22 914

原创 Spring Cloud Netflix Eureka的参数调优

下面主要分为Client端和Server端两大类进行简述,Eureka的几个核心参数。

2024-02-04 15:05:30 1917

原创 Kubernetes中主要的资源对象

Kubernetes 遵循 RESTful 风格管理其 API 资源对象,支持通过标准的 HTTP 方法,POST、PUT、PATCH、DELETE、GET对资源进行增删改查等操作。Kubernetes 的 API 对象总的来说可以分为以下几类:工作负载、服务发现、负载均衡、配置和存储、集群、元数据。他们都是围绕 pod 而设计的,能够让使用者更好地运行和使用 pod 资源,从而实现容器化应用提供更灵活和更完善的操作和管理组件。工作负载型资源是确保 pod 资源更好的运行容器化应用。

2024-01-22 17:56:24 453

原创 Kubernetes命令式编排入门

掘金:https://juejin.cn/post/7325132140663423027。

2024-01-18 10:24:09 906

原创 Mac上常用的支持Arm架构的镜像(持续更新)

最开始的Mac用的是intel的cpu,后来使用了基于Arm架构自研的苹果芯片,在使用虚拟化时需要使用支持Arm架构的镜像。在日常使用中经常会使用Docker来构建一些环境,便发现有时候需要自己去构建镜像或者官方提供的镜像并没有支持Arm架构的,所以需要参考官方Github仓库上的Dockerfile来构建适合Arm架构的镜像。以下记录了在使用MacBook过程中用到的一些比较基础的镜像。个人环境:M2 + OrbStack。

2023-12-18 17:51:55 1977

原创 RocketMQ消息发送的设计

本文带你了解RocketMQ的消息都有什么组成和消息发送的设计

2023-12-11 09:35:02 898

原创 分布式唯一ID的技术选型

在分布式系统里面我们经常需要生成整个系统的唯一ID或者叫流水号,一般生成这个唯一ID的我们俗称发号器。例如订单号、交易号等。分布式发号器是分布式系统不可或缺的基础设施之一,在保证系统的正确运行和高可用上发挥着不可取代的作用,在不同的公司有不同的实现方式。

2023-11-30 09:55:01 862

原创 一步步带你了解Tomcat中的连接器是如何设计的

Tomcat 的整体架构包含了两个核心组件连接器和容器。连接器负责对外交流,容器负责内部处理。连接器用 ProtocolHandler 接口来封装通信协议和 I/O 模型的差异,ProtocolHandler 内部又分为 EndPoint 和 Processor 模块,EndPoint 负责底层 Socket 通信,Proccesor 负责应用层协议解析。连接器通过适配器 Adapter 调用容器。

2023-11-30 09:42:46 945

原创 Tomcat的NioEndpoint组件是怎么实现I/O多路复用

网络I/O模型就是为了解决内存和外部设备速度差异的问题。阻塞或非阻塞是指应用程序在发起 I/O 操作时,是立即返回还是等待。而同步和异步,是指应用程序在与内核通信时,数据从内核空间到应用空间的拷贝,是由内核主动发起还是由应用程序来触发。Tomcat 的 EndPoint 组件的主要工作就是处理 I/O,而 NioEndpoint 利用 Java NIO API 实现了多路复用 I/O 模型。其中关键的一点是,读写数据的线程自己不会阻塞在 I/O 等待上,而是把这个工作交给 Selector。

2023-11-29 16:15:50 1186

原创 二进制方式安装高可用Kubernetes

Kube-APIServer:集群的控制中枢,各个模块之间信息交互都需要经过Kube-APIServer,同时它也是集群管理、资源配置、整个集群安全机制的入口。Controller-Manager:集群的状态管理器,保证Pod或其他资源达到期望值,也是需要和APIServer进行通信,在需要的时候创建、更新或删除它所管理的资源。Scheduler:集群的调度中心,它会根据指定的一系列条件,选择一个或一批最佳的节点,然后部署我们的Pod。

2023-07-25 15:11:47 184

原创 RocketMQ的NameServer的架构设计及其启动流程源码分析

Broker启动的时候会向所有的NameServer注册,生产者在发送消息时会先从NameServer中获取Broker消息服务器的地址列表,根据负载均衡算法选取一台Broker消息服务器发送消息。但是路由的变化不会马上通知消息生产者,这是为了降低NameServe的复杂性,所以在RocketMQ中需要消息的发送端提供容错机制来保证消息发送的高可用性,这在后续关于RocketMQ消息发送的章节会介绍。关于注册JVM关闭钩子,这是很常见的用法,确保在关闭JVM的时候,先将线程池关闭,释放资源。

2023-07-25 15:07:53 266

原创 RocketMQ的主要组件及其功能

RocketMQ是啥就不多说了,一个基于主题的订阅发布机制的消息中间。下面就是我们部署时的架构,NameServer和Broker需要部署在服务器上,对于消费者和生产者则是我们在自己的程序里启动,去push/pull消息。

2023-07-25 14:58:13 272

原创 Docker容器内部署的SpringBoot应用发不出邮件的解决

Dockerfile通过简单的Dockerfile构建了一个镜像(consumer-service-rabbitmq/v1.0)FROM openjdk:8-alpineMAINTAINER maishurenEXPOSE 8001ADD target/consumer-rabbit-1.0-SNAPSHOT.jar /ENTRYPOINT ["java","-jar","/consumer-rabbit-1.0-SNAPSHOT.jar"]运行容器docker run -d --name

2023-07-25 14:49:58 599

原创 实现容器化的基础:Namespace和Cgroups

Linux的两大技术Namespace和Cgroups是用于试下容器的特性,Namespace帮助容器实现各类计算资源的隔离,Cgroups主要对容器的能访问宿主机资源的多少。所以可以说,容器就是NamespaceCgroups。

2023-07-25 14:46:54 98

空空如也

空空如也

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

TA关注的人

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