- 博客(51)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 查询日期数据区间按天拆分查询优化
行驶数据查询和导出优化:Ymatrix查询一天数据会很快在1秒内,区间查询时间超过7天效率会下降到7秒+。所以在区间日期查询行驶数据时做优化,将区间日期拆分为一天去查ymatrix提升查询效率。执行时间拆分如下 、 并发查询每一条时间总条数据(查询效率500ms以内)计算页码归属日期条件。
2023-12-15 13:38:20 1065
转载 kubectl 创建 Pod 背后到底发生了什么?
Kubernetes是用来管理容器集群的平台。既然是管理集群,那么就存在被管理节点,针对每个Kubernetes集群都由一个Master负责管理和控制集群节点。我们通过Master对每个节点Node发送命令。简单来说,Master就是管理者,Node就是被管理者。Node可以是一台机器或者一台虚拟机。在Node上面可以运行多个Pod,Pod是Kubernetes管理的最小单位,同时每个Pod可以包含多个容器(Docker)......
2022-07-22 13:33:15 266
转载 Kubernetes Service 负载均衡实现机制
KubernetesSerivce是一组具有相同labelPod集合的抽象(可以简单的理解为集群内的LB),集群内外的各个服务可以通过Service进行互相通信。
2022-07-20 17:28:23 723
转载 kube-Controller Manager 原理
ControllerManager作为集群内部的管理控制中心,负责集群内Node、Pod副本、服务端Endpoint、服务账号(ServiceAccount)、命名空间(Namespace)、资源定额(Resoucequota)等的管理,当某一个节点宕机时,controllermanager会及时发现故障并执行自动化修复流程,确保集群始终处于预期的工作状态。...
2022-07-20 17:17:34 1836
转载 kube-proxy 工作原理
kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现KubernetesService的通信与负载均衡机制的重要组件;kube-proxy负责为Pod创建代理服务,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络。kube-proxy有三种模式userspace、iptables和IPVS,其中userspace模式不太常用。...
2022-07-20 17:09:36 2616
转载 kube-scheduler工作原理
Kube-scheduler调度概述Kubemetes Scheduler 在整个系统中承担了承上启下的重要功能,承上是指它负责接收Controller Manager 创建的新Pod,为其安排一个落脚的家(目标 Node);启下是指安置工作完成后,目标 Node 上的 kubelet 服务进程接管后继工作,负责 Pod 生命周期中的下半生。具体来说,Kubernetes Scheduler的作用是将待调度的Pod按照特定的调度算法和调度策略绑定到集群的某个合适的Node上,并将绑定信息存储到etc
2022-05-27 16:40:07 381
转载 kube-apiserver功能特性
apiserver 提供了对各类资源对象,如 Pod、Service、Deployment、CRD 等的增删改查,以及 Watch 的 API 接口,是整个集群的操作入口。kube-apiserver 是 Kubernetes 最重要的核心组件之一,主要提供以下的功能提供集群管理的 REST API 接口,包括认证授权、数据校验以及集群状态变更等 提供其他模块之间的数据交互和通信的枢纽(其他模块通过 API Server 查询或修改数据,只有 API Server 才直接操作 etcd)kube
2022-05-27 16:35:02 3278
转载 Kubernates架构组件
Kubernetes是利用共享网络将多个物理机或者虚拟机组成一个集群,在各个服务器之间进行通信,Kubernetes采用的是常见的主从架构,每一个 Kubernetes 集群都由一组 Master 节点和一系列的 Node节点组成。Master:是集群的网关和中枢枢纽,主要作用:暴露API接口,跟踪其他服务器的健康状态、以最优方式调度负载,以及编排其他组件之间的通信。单个的Master节点可以完成所有的功能,但是考虑单点故障的痛点,生产环境中通常要部署多个Master节点,组成Cluster。N
2022-05-27 15:57:14 132
转载 什么是 Kubernetes
Kubernetes 是一个开源容器编排平台,可自动部署、管理和扩展应用,它消除了容器化应用程序在部署、伸缩时涉及到的许多手动操作。Kubernates使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维团队的帮助。Kubernates同时能够让运维团队监控整个系统,并且在硬件故障时重新调度应用。我们可以将多台主机组合成集群来运行 容器,而 Kubernetes 可以帮助我们简单高效地管理那些集群。容器是打包和运行应用程序的好方式。在生产环境中,你需要管理运行应用程序的容器,并确保不会停机。 例如
2022-05-27 15:43:02 165
转载 Docker Swarm 介绍和工作原理
什么是Docker SwarmDocker Swarm是Docker公司推出的用来管理Docker集群的平台,Swarm是容器集群管理工具,可以统一管理分布在不同主机的多个容器,相比起Kubenetes,Docker Swarm无需额外安装。下面这个图,就可以看到docker swarm管理docker的一个架构图。以前使用docker命令行是针对docker主机的,然后到这台机器上单独的控制这台机器上的主机,有了swarm之后,客户端命令是针对docker集群的。它的命令几乎等同于docker的原
2022-05-27 14:57:45 961
转载 Docker Compose详解
问题我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知介绍Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
2022-05-27 14:45:36 862
原创 项目使用mybatis-plus采用mysql/clickhouse多数据库配置,报错Invalid bound statement (not found)
当前使用版本(必填,否则不予处理)com.baomidou mybatis-plus-boot-starter 3.4.2 com.baomidou mybatis-plus-extension 3.4.2 com.baomidou dynamic-datasource-spring-boot-starter 3.1.0该问题是如何引起的?(确定最新版也有问题再提!!!)mybatis plus是否支持多数据库类型,我现在同一个项目想支持mysql/clickhouse数据库。我通过mybat
2022-05-24 16:41:46 1445
转载 Docker镜像存储原理
Docker 是如何构建并且存储镜像的Docker 中的每一个镜像都是由一系列只读的层组成的,Dockerfile 中的每一个命令都会在已有的只读层上创建一个新的层:FROM ubuntu:15.04COPY . /appRUN make /appCMD python /app/app.pyDocker容器中的每一层都只对当前容器进行了非常小的修改,上述的 Dockerfile 文件会构建一个拥有四层 layer 的镜像:当镜像被docker run命令创建时就会在...
2022-05-07 13:39:01 703
转载 Docker网络-bridge/host/container/none模式
bridge模式bridge 模式下,Docker Daemon 会创建出一个名为 docker0 的虚拟网桥,用来连接宿主机与容器,或者连接不同的容器,Docker 利用 veth pair技术,在宿主机上创建了两个虚拟网络接口 veth0 和 veth1(veth pair 技术的特性可以保证无论哪一个 veth 接收到网络报文,都会无条件地传输给另一方)。Bridge桥接模式的实现步骤主要如下:1. Docker Daemon利用veth pair技术,在宿主机上创建两个虚拟网络接口..
2022-05-07 10:06:45 875
转载 Linux虚拟网络设备(bridge & veth pair)
veth pairveth pair 全称是 Virtual Ethernet Pair,是一个成对的端口,所有从这对端口一 端进入的数据包都将从另一端出来,反之也是一样。引入 veth pair 是为了在不同的 Network Namespace 直接进行通信,利用它可以直接将两个 Network Namespace 连接起来。用户可以使用ip link命令增加veth pair设备,下面的范例中该veth pair设备的两个网卡为veth20和veth21:ip link.
2022-05-07 09:50:41 3001 1
转载 docker底层基石 Linux CGroup
CGroups介绍在一个容器,如果不对其做任何资源限制,则宿主机会允许其占用无限大的内存空间,有时候会因为代码bug程序会一直申请内存,直到把宿主机内存占完,为了避免此类的问题出现,宿主机有必要对容器进行资源分配限制,比如CPU、内存,Linux Cgroups 全称是 Linux Control Group,主要的作用就是限制进程组使用的资源上限,包括 CPU,内存,磁盘,网络带宽。Docker引入了Linux cgroup来控制进程资源,让进程更可控cgroups 提供以下四个功能:资源限制
2022-05-07 09:37:17 314
转载 Docker底层技术-Namespace
Namespace是对全局系统资源的一种封装隔离,使得处于不同Namespace的进程拥有独立的全局系统资源,改变一个Namespace中的系统资源只会影响当前Namespace里的进程,对其他Namespace中的进程没有影响。Namespace 是 Linux 为我们提供的用于分离进程树、网络接口、挂载点以及进程间通信等资源的方法。在日常使用 Linux 时如果我们在服务器上启动了多个服务,这些服务其实会相互影响的,每一个服务都能看其他服务的进程,也可以访问宿主机器上的任意文件,这是很多时候...
2022-05-07 09:31:10 512
转载 Docker底层技术概览
docker run -it redis /bin/bash。执行这个命令运行一个redis容器,以交互模式运行容器,为容器重新分配一个伪输入终端,并执行/bin/bash。这个命令背后都做了什么?1.如果本机没有redis镜像,则会从你配置的镜像仓库里面拉取一个redis的latest版本的镜像,跟运行了docker pull redis效果一样。 2.创建容器。跟运行docker create一样。 3.给容器分配一个读写文件系统作为该容器的final layer(最底层),容器可以在它的文件系
2022-05-07 09:17:03 156
转载 Docker架构是由那些模块构成的
首先是Docker客户端和服务端Docker daemon的交互,Docker 客户端要向服务器Docker daemon发出请求,服务器或者将完成所有工作并返回结果。docker的构成解析:Docker Client是用户通过docker命令行工具可以发起请求。Docker Client可以通过tcp://host:port方式和Docker Daemon建立通信。Docker daemon是Docker架构中常驻在后台的系统进程,功能是接受并处理Docker Client发送..
2022-05-07 09:14:21 553
原创 容器 & 虚拟机
我们可以看到虚拟化技术通过Hypervisor(虚拟机管理系统)为每个app启动一个Guest OS(客户机操作系统),也就是为每个app启动一个虚拟机。而Docker容器减少GuestOS这一层级使用Docker Engine 进行调度和隔离,所有app应用共用主机操作系统,因此在体量上,Docker较虚拟机更轻量级。容器Docker 将软件代码和其依赖,全打包在一个文件中。运行单个文件,就会生成虚拟容器。在这个虚拟容器中,不管本地的操作系统是如何的不同,此容器都能照常运行。虚拟机
2022-05-07 09:11:24 770
原创 mybatis拦截器做数据权限
package com.geely.dt.configuration;import com.geely.dt.service.pipeline.*;import com.geely.dt.service.pipeline.menuresouceperimissiondata.ResouceMenuData;import com.geely.dt.service.pipeline.menuresouceperimissiondata.ResouceMenuDataPipeline;import c.
2022-05-05 13:17:55 645
原创 k8s跨主机网络方案之Flannel
什么是overlay network?Overlay 技术是在现有的物理网络之上构建一个虚拟网络,上层应用只与虚拟网络相关。Overlay 在网络技术领域,指的是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于 IP 的基础网络技术为主。vxlanVxLAN 使用虚拟隧道端点(Virtual Tunnel End Point、VTEP)设备对服务器发出和收到的数据包进行二次封装和解封。VXLAN
2021-07-01 15:34:50 786
原创 我的从编码到架构思想的转变
入门:在刚开始工作时,一个业务需求过来,只想的是用代码怎么样实现这个需求,没有去追求写的代码质量问题,大量的if else、重复代码copy等1年:随着工作1年后的编码思想转变,看过一些书籍文章,有了代码抽取的思想,会封装util工具包,将公共方法独立抽取出来。 写代码时方法不再是那么冗长让人难懂,而是将业务逻辑抽取出多个小方法中,每个方法只做一件事。2-3年:在工作2年+后,经过阅读源码和书籍文章的沉淀,具备了基础的抽象代码思想,在代码设计方面会考虑用设计模式来解决问题,怎么样设计出来
2021-03-29 10:39:02 170 1
原创 秒杀设计
业务背景秒杀的业务流程是:首页展示秒杀商品,用户参与秒杀的前提是有积分。在秒杀时间到用户可直接点击兑换此秒杀商品,秒杀成功则生成对应订单且扣除用户积分。业务流程图问题解析业务系统很依赖redis缓存,服务端是先扣缓存中的库存和积分,之后是异步处理真实的扣库存和积分,如果缓存服务器挂了怎么解决?出现缓存中积分剩余7,真实数据库还是10, 在异步执行时,缓存服务器挂了,用户查询是是10积分(锁行?如果是查询之前,执行扣除怎么解决?不去解决他,异步执行扣除时会真实的减去,如果执行失败会根据业务
2021-03-24 11:13:14 139
转载 Kubernetes网络模型
Kubernetes网络基本要求Kubernetes对容器技术做了更多的抽象,其中最重要的一点是提出pod的概念,pod是Kubernetes资源调度的基本单元,我们可以简单地认为pod是容器的一种延伸扩展,从网络的角度来看,pod必须满足以下条件:每一个Pod都有一个独特的IP地址,所有pod都在一个可以直接连通的、扁平的网络空间中 同一个pod内的所有容器共享同一个netns网络命名空间基于这样的基本要求,我们可以知道:同一个pod内的所有容器之间共享端口,可直接通过localhos
2020-09-05 14:48:14 288
原创 对es搜索使用fork/join优化搜索
需求:查询某个日期区间关于吉利相关舆情es索引库有12个,吉利相关词有50+个查询12个es索引库,查询出日期区间的结果 且 满足这50+词中其中一个词则将对应的文章查询出来 1个索引 查询 一个月区间日期 2019-10-01 2019-10-31 多个词(吉利、帝豪....)包含这50个词的都查出来 ...
2019-11-29 17:18:04 341
原创 元数据项目使用的设计模式
业务需求用户输入语句后,点击“生成字段”按钮,自动生成字段。1、用户点击DDL建表,2、在谈出的框输入创建语句,3、点击生成字段后字段列表展示对应的字段。实现思路-策略模式+工厂模式通过策略者模式+工厂模式实现不同数据库解析对应的ddl后得到的对象都不同,获取的字段方式也不同,通过策略者模式将对应的获取方式封装在对应的数据库类内部处理。然后通过工厂类获取对应的...
2019-11-26 20:55:12 549
原创 logback将日志传输到 logstash然后在kibana展示
场景一: 生产环境因集群,无法快速定位日志,以下配置可在kibana可视化界面查看系统日志系统报如下日志在kibana搜索实现步骤一)application.properties文件新增配置#logstash服务器地址logstash.host=10.86.210.18#logstash端口logstash.port=8084二)引入pom文件...
2019-06-01 17:07:54 5227 3
原创 mybatis解析流程浅析
1)获取Configuration.xml配置文件,使用DOM方式解析。2)在Configuration.xml配置文件中查找<configuration>节点,并开始解析。(列出常用的几个节点,只详细介绍如何解析<mappers>节点) 2.1)解析<properties>节点 <properties> <...
2018-12-18 16:03:12 171
原创 图深度优先遍历执行步骤分析
public class MatrixUDG { private char[] mVexs; // 顶点集合 private int[][] mMatrix; // 邻接矩阵 /* * 创建图(用已提供的矩阵) * * 参数说明: * vexs -- 顶点数组 * edges -- ...
2018-07-12 18:34:02 748
原创 平衡二叉树AVL插入执行步骤分析
public class AVLTree2<T extends Comparable<T>> { private AVLTreeNode<T> mRoot; // 根结点 // AVL树的节点(内部类) class AVLTreeNode<T extends Comparable<T>> { ...
2018-07-09 18:09:56 212
原创 堆排序执行步骤分析
public static void main(String []args){ System.out.println(7/2-1); int[] arr = new int[]{1,4,2,7,9,8,3,6,0,5}; sort(arr); System.out.println(Arrays.toString(arr)); ...
2018-06-30 10:26:55 222
垃圾回收的算法与实现-高清文字版
2019-01-04
JAVA多态问题,求指教。谦虚滴不要
2015-12-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人