- 博客(25)
- 收藏
- 关注
原创 Gateway网关设置请求头乱码
在做gateway用户认证过程中,我们将前端传过来的token字符串进行解析以后,将用户信息存入请求头往下传递的过程中,如果用户信息中存在中文,下游服务从请求头中获取到用户信息时会出现乱码。 可以在gateway设置新的请求头时进行URL编码,在下游获取请求头信息的时候,再通过URL解码。 总体来说,就是如果在gateway网关层设置了带有中文的请求头,在下游服务中获取会出现乱码。从截图可以看到,下游服务在从请求头获取带有中文的信息时,出现了乱码。通过截图可以看到,乱码问题成功得到解决。
2024-08-05 11:08:07 1869
原创 高级网络编程-Netty
NettyNetty核心原理Netty介绍原生NIO存在的问题NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的 NIO 程序。开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和
2024-07-26 14:29:58 419
原创 java网络编程详解
Java NIO 全称java non-blocking IO ,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的.NIO 有三大核心部分:Channel(通道),Buffer(缓冲区), Selector(选择器)NIO是 面向缓冲区编程的。数据读取到一个缓冲区中,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供非阻塞式的高伸缩性网络。
2024-07-24 11:36:51 693
原创 分布式事务-常用解决方案
分布式事务事务的概念及特性概念 事务是指一组操作被视为一个单独的工作单元,这些操作要么全部成功提交,要么全部失败回滚事务的特性原子性(Atomicity)事务是一个不可分割的工作单元,要么全部成功,要么全部失败一致性(Consistency)事务执行前后,数据库的完整性没有遭到破坏,保证数据的正确性隔离性(Solation)多个事务并发执行的时候,一个事务不会影响另一个事务的执行持久性(Durability)事务一旦提交,执行结果就是永久性的,即使系统故障,数据
2024-07-17 15:38:47 636
原创 分布式锁详解
分布式锁案例搭建需求背景: 电商项目中,用户购买商品后,会对商品的库存进行扣减需求实现: 根据用户购买商品及购买商品数量,对商品库存进行指定数量的扣减数据库脚本create table if not exists `good_stock`( `id` bigint not null auto_increment, `goods_id` bigint not null, `stock` int not null, primar
2024-07-13 16:37:03 555
原创 service四层负载均衡
在 kubernetes 中,Pod 是有生命周期的,如果 Pod 重启它的 IP 很有可能会发生变化。如果我们的服务都是将 Pod 的 IP 地址写死,Pod 挂掉或者重启,和刚才重启的 pod 相关联的其他服务将会找不到它所关联的 Pod,为了解决这个问题,在 kubernetes 中定义了 service 资源对象,Service 定义了一个服务访问的入口,客户端通过这个入口即可访问服务背后的应用集群实例,service 是一组 Pod 的逻辑集合,这一组 Pod 能够被 Service 访问到
2024-07-03 17:10:40 686
原创 线程基础知识
如果在main线程中调用了t1.join(2000),那么main线程会进入到等待状态,需要等待t1执行2s后,在恢复到就绪状态等待CPU调度。CPU在极短的时间内,反复切换执行不同的线程,看似好像是并行,但是知识CPU高速的切换。如果在main线程中调用了t1.join(),那么main线程会进入到等待状态,需要等待t1线程全部执行完毕,在恢复到就绪状态等待CPU调度。比如要处理一个网络等待的操作,开启一个线程去处理需要网络等待的任务,让当前业务线程可以继续往下执行逻辑,效率是可以得到大幅度提升的。
2024-07-03 06:26:40 738
原创 k8s常用控制器
ReplicaSet 是 kubernetes 中的一种副本控制器,简称 rs,主要作用是控制由其管理的 pod,使 pod副本的数量始终维持在预设的个数。它的主要作用就是保证一定数量的 Pod 能够在集群中正常运行,它会持续监听这些 Pod 的运行状态,在 Pod 发生故障时重启 pod,pod 数量减少时重新运行新的 Pod 副本。
2024-07-02 16:52:28 814
原创 RabbitMQ超详细笔记
百度百科:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。首先RabbitMQ基于AMQP协议开发,所以很多基于AMQP协议的功能RabbitMQ都是支持的,比如SpringCloud中的消息总线bus。
2024-07-02 08:47:08 695
原创 pod&&namespace&&label
created by clients and scheduled onto hosts. [ Pod 是可以在主机上运行的容器的集合。此资源是由客户端创建并安排到主机上。] FIELDS:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md #resources [ APIVersion 定义了对象,代表了一个版本。
2024-07-01 17:08:09 874
原创 k8s安装方式总结
实验环境规划:操作系统:centos7.6配置:16G内存/4vCPU/100硬盘网络:云服务器 kubeadm 是官方提供的开源工具,是一个开源项目,用于快速搭建 kubernetes 集群,目前是比较方便和推荐使用的。kubeadm init 以及 kubeadm join 这两个命令可以快速创建 kubernetes 集群。Kubeadm 初始化 k8s,所有的组件都是以 pod 形式运行的,具备故障自恢复能力。
2024-07-01 17:05:22 1081
原创 Jenkins
v /usr/bin/docker:/usr/bin/docker: 将主机上的 /usr/bin/docker 文件挂载到容器中的 /usr/bin/docker,这样容器内的 Jenkins 可以直接使用宿主机上的 Docker 命令。-v /var/run/docker.sock:/var/run/docker.sock: 将主机上的 Docker socket 文件挂载到容器中的相同位置,这样容器内的 Jenkins 可以与宿主机上的 Docker 引擎进行通信。后期会挂载到宿主机中。
2024-07-01 17:02:39 1792
原创 Docker安装FastDFS
1. FastDFS简介1.1 FastDFS体系结构FastDFS是一个开源的轻量级分布式文件系统,他对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能文件服务器集群提供文件的上传、下载等服务。FastDFS架构包括Tracker Ser
2021-09-13 17:07:34 437
原创 容器数据卷
文章目录什么是容器数据卷使用数据卷实战:安装mysql具名和匿名挂载什么是容器数据卷数据卷就是数据(一个文件或者文件夹)。数据卷是特殊的目录,可以绕过联合文件系统,为一个或多个容器提供访问。数据卷设计的目的是数据的永久化,是完全独立于容器的生命周期,不会在容器删除时删除其挂载的数据卷,也不会存在类似垃圾收集机制,对容器引用的数据卷进行处理。在docker的使用过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,所以这就涉及到Docker容器的数据操作。 容器中数据管理主要有两种方式
2021-05-24 10:33:04 398
原创 Docker镜像原理
文章目录镜像是什么Docker镜像加载原理分层的理解commit镜像镜像是什么镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件的所有内容,包括代码、运行时、库、环境变量和配置文件。所有应用,直接打包成docker镜像,就可以直接跑起来如何得到镜像从远程仓库下载朋友拷贝给你自己制作一个镜像DockerFileDocker镜像加载原理UnionFs(联合文件系统)我们在拉取镜像时,看到的一层一层的下载就是这个东西UnionFS(
2021-05-23 12:54:45 234
原创 Docker安装nginx
文章目录搜索镜像下载镜像端口映射搜索镜像本地搜索[root@ajie ~]# docker search nginxNAME DESCRIPTION STARS nginx Official build of Nginx. 14896 jwil
2021-05-22 22:01:29 256
原创 Ribbon负载均衡算法
文章目录原理源码剖析原理算法公式rest接口第几次请求%服务器集群总数量 = 实际调用服务器位置下标,每次服务器重新启动后rest接口技术从1开始算法公式图解文字描述8001 + 8002组合成为集群,它们共计2台机器,集群总数为2,按照轮询算法原理:当总请求数为1时:1%2 = 1对应下标位置为1,则获得服务地址为127.0.0.1:8001当总请求数为2时:2%2 = 0对应下标位置为0,则获得服务地址为127.0.0.1:8002当总请求数为3时:3%2 = 1对应下标
2021-05-22 21:08:41 202
原创 Ribbon简介
文章目录Ribbon简介Ribbon的职能Ribbon负载均衡演示Ribbon核心组件IRuleRibbon简介Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单地说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单地说,就是在配置文件中列出Load Balancer(简称LB)后面所有机器,Ribbon会自动的帮助你基于某种规则(
2021-05-22 21:01:33 20072
原创 Docker的常用命令
title: Docker的常用命令categories:- Dockertags:- Docker- java后端帮助命令docker version # 打印docker版本信息docker info # 显示docker的系统信息,包括容器和镜像的数量docker 命令 --help # 帮助命令帮助文档地址:https://docs.docker.com/reference/镜像命令docker images 查看所有本地主机中的镜像[root.
2021-05-21 18:17:23 175
原创 Consul简介
Consul简介福利:consul的中文文档,拿去 不用谢!https://www.springcloud.cc/spring-cloud-consul.html是什么?Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用构建全方位的网格,总之Consul提供了一种完善的服务网格解决方案它具有很多优点,包括:基于raft协议;支持健康检查,
2021-05-20 12:24:08 346
原创 centos7安装Docker
安装Docker环境准备1.需要一点点的Linux基础2.Centos73.使用xshell连接远程服务器环境查看# 系统内核3.10以上[root@ajie /]# uname -r3.10.0-862.14.4.el7.x86_64# 系统版本[root@ajie /]# cat /etc/os-releaseNAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_I
2021-05-20 12:21:52 153
原创 springcloud微服务
微服务系列之服务注册与发现一(Eureka) 一. 什么是服务注册与发现 [Eureka](https://baike.baidu.com/item/Eureka/22402835?fr=aladdin)采用了CS的设计架构,Eureka Server作为 服务注册功能的服务器,它是服务注册中心,而系统中的其它微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接。这样 系统中的维护人员就可以通过Eureka Server来监控系统中的各个微服务是否正常运行.
2021-05-13 12:32:13 156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人