自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux命令—vi命令详解

Linux的Vi命令用法

2022-11-19 15:12:55 241 1

原创 Kubernetes基础二

一、POD网络结构1.1、POD网络结构概念: 1、pod是k8s最小的操作单元2、pod也是一个容器,独立的沙箱环境,有自己的ip地址,有自己的hostname3、pod是容器的容器,内部用来封装docker容器Pod本身就是运行在操作系统中一个进程,相当于是一台独立机器;(虚拟化概念),pod内部可以封装一个容器,也可以封装多个容器;在物理机节点上,pod和pod之间是相互独立;当创建一个pod的资源对象的时候,先创建一个pause容器,此容器会帮助pod创建共享网卡,共享存储卷;网卡

2022-02-06 11:11:59 4639 1

原创 Kubernetes基础一

一、K8S的架构介绍1.1 Docker原理:依赖于镜像,容器之间隔离使用cgroup + namespace 实现隔离的;1.2 K8S的架构介绍了解K8S之前需要掌握DockerKubernetes设计之初就是为了管理,调度容器技术;是google开发的一套开源的容器化编排技术;业界还有其他公司的容器编排技术例如Docker-compose,Docker-swarm,Mesos,目前k8s使用最广泛。Kubernetes则采用了Pod和Label这样的概念把容器组合成一个个的互相存在依赖关系

2022-01-27 10:36:08 1138

原创 SpringCloud

Eureka,Zuul,Feign,Ribbon,Hystrix,Config,Sleuth

2021-12-17 11:19:04 577

原创 Tomcat

一、Tomcat的目录结构bin执行目录sh文件liux上的,bat文件windows上的lib依赖的jar包confcatalina.policy权限相关 Permission ,Tomcat是跑在jvm上的,所以有 些默认的权限。server.xml:Server节点->Service ->Executor(线程池)、Connector连接器Connector连接器 用线程池的话,connector里面的maxThreads是无效 的。Executor (线程池)max

2021-11-29 21:45:23 76

原创 ELK培训

一、ELK简介1.1 Elastic Stack简介1.2 Elasticsearch介绍1.2.1 Lucene:https://blog.csdn.net/weixin_42633131/article/details/82873731/1.2.2 倒排索引1.2.3Lucene和Elasticsearch的关系1.3 FileBeat介绍Filebeat的介绍:https://www.cnblogs.com/zsql/p/13137833.html1.4 Logstash介绍

2021-10-20 16:03:57 390

原创 Mybatis_2

三、MyBatis整体架构介绍3.1 基础支撑层源码分析3.1.1 日志模块适配器模式动态代理模式3.1.2 数据源模块工厂模式3.1.3 缓存模块3.1.4 反射模块二、MyBatis核心流程分析

2021-10-20 15:26:13 56

原创 Mybatis_1

一、MyBatis的流程介绍二、配置文件的介绍2.1 XML文件的配置介绍2.2 SQL语句的配置介绍(insert,update,delete,select)3.3 动态SQL3.4 关联查询3.5 一级缓存和二级缓存

2021-10-20 14:57:34 54

原创 Spring相关源码流程

一、Spring普通bean的创建流程Spring普通bean的创建流程org.springframework.context.annotation.AnnotationConfigApplicationContext#AnnotationConfigApplicationContext(java.lang.Class<?>…)org.springframework.context.support.AbstractApplicationContext#refresh

2021-06-19 16:44:32 163

原创 Spring源码解读[1]—注册bean

一、Spring体系1.1、 Spring Core:即,Spring核心,它是框架最基础的部分,提供IOC和依赖注入特性1.2、 Spring Context:即,Spring上下文容器,它是BeanFactory功能加强的一个子接口1.3、 Spring Web:它提供Web应用开发的支持1.4、 Spring MVC:它针对Web应用中MVC思想的实现1.5、 Spring DAO:提供对JDBC抽象层,简化了JDBC编码,同时,编码更具有健壮性。1.6、 Spring ORM:它支持用于

2021-06-04 00:20:48 248 1

原创 IDEA中debug快捷键

按键功能按F8在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内,跳到下一条执行语句 (单步执行)按F7在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则会进入该内嵌的方法中 (单步执行,会进入方法中)Shift+F8跳出该方法,可以按Shift+F8,在 Debug 模式下,跳回原来地方。(跳出方法)按F9当我们执行到第二个断点处,如果想直接执行到第三个断点处,可以按F9。...

2021-06-03 18:39:19 375

原创 数据结构_树_6

一、什么是树树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。这里面每个元素我们叫作 “ 节点 ” ;用来连线相邻节点之间的关系,我们叫作 “ 父子关系 ” 。A节点就是B节点的父节点,B节点是A节点的子节点。B、C、D这三个节点的父节点是同一个节点,所以它们之间互称为兄弟节点。我们把没有父节点的节点叫作根节点,也就是图中的节点E。我们把没有子节点的节点叫作叶子节点或者叶节点,比如图中的G、H、I、J、K、L都是叶子节点。除.

2021-05-30 12:12:23 125

原创 数据结构和算法_哈希算法_5

一、什么是哈希算法将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值。二、哈希算法的要求从哈希值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法);对输入数据非常敏感,哪怕原始数据只修改了一个Bit,最后得到的哈希值也大不相同;散列冲突的概率要很小,对于不同的原始数据,哈希值相同的概率非常小;哈希算法的执行效率要尽量高效,针对较长的文本,也能快速地计算出哈希值三、哈希算法的应用3.1 安全加密①常用于加密的哈

2021-05-27 16:46:52 144

原创 数据结构和算法_散列表_4

散列表一、散列思想散列表用的就是数组支持按照下标随机访问的时候,时间复杂度是 O(1) 的特性。我们通过散列函数把元素的键值映射为下标,然后将数据存储在数组中对应下标的位置。当我们按照键值查询元素时,我们用同样的散列函数,将键值转化数组下标,从对应的数组下标的位置取数据。二、散列函数顾名思义,它是一个函数。我们可以把它定义成 hash(key) ,其中 key 表示元素的键值, hash(key) 的值表示经过散列函数计算得到的散列值。散列函数设计的基本要求散列函数计算得到的散列值是一个非负

2021-05-27 12:34:25 167

原创 数据结构和算法—跳表_3

一、跳表的概述一个值有序的链表建立多级索引,比如每 2 个节点提取一个节点到上一级,我们把抽出来的那一级叫做索引或索引层。如下图所示,其中 down 表示 down 指针,指向下一级节点。以此类推,对于节点数为 n 的链表,大约可以建立 log2n-1 级索引。像这种为链表建立多级索引的数据结构就称为跳表。(并且Redis中的有序集合(Sorted Set)就是用跳表来实现的)那怎么来提高查找效率呢?如果像图中那样,对链表建立一级 “ 索引 ” ,查找起来是不是就会更快一些呢?每两个结点提取一个结点到

2021-05-27 11:53:35 145

原创 数据结构和算法_算法

一、递归算法1.1 问题描述:如何知道自己在电影院的第几排?1.2 问题解答你就问前面一排的人他是第几排,你想只要在他的数字上加一,就知道自己在哪一排了。但是,前面的人也看不清啊,所以他也问他前面的人。就这样一排一排往前问,直到问到第一排的人,说我在第一排,然后再这样一排一排再把数字传回来。直到你前面的人告诉你他在哪一排,于是你就知道答案了这就是一个非常标准的递归求解问题的分解过程,去的过程叫 “ 递 ” ,回来的过程叫 “ 归 ” 。基本上,所有的递归问题都可以用递推公式来表示。1.3 问题结论

2021-05-26 18:34:17 158

原创 数据结构_线性表_2

1.1 数组数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。它相对立的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为,在非线性表中,数据之间并不是简单的前后关系。第二个是连续的内存空间和相同类型的数据。正是因为这两个限制,它才有了一个堪称“杀手锏”的特性:“随机访问”。但有利就有弊,这两个限制也让数组的很多操作

2021-05-26 18:20:08 163

原创 数据结构_时间复杂度_1

一、复杂度分析1.1 大 O 复杂度表示法 /** * 每行代码运行时间为:unit_time * * 总共花费时间:(2n+1)*unit_time * T(n) =(2n+1)*unit_time */ private static void addSum(int n) { int sum = 0; for (int i = 1; i <= n; ++i) { sum =.

2021-05-26 18:06:09 553 2

转载 Kafka_基础篇

五、代码实现第一个Kafka程序创建我们的主题kafka-topics.bat --zookeeper localhost:2181/kafka --create --topic hello-kafka --replication-factor 1 --partitions 4生产者发送消息必选属性创建生产者对象时有三个属性必须指定。bootstrap.servers该属性指定broker的地址清单,地址的格式为host:port。清单里不需要包含所有的broker地址,生产者会从给定的bro

2021-04-26 14:31:46 96

转载 JVM [3]—执行子系统

一、Class类文件结构1.1 Java跨平台的基础各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石,也是语言无关性的基础。Java虚拟机不和包括Java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。1.2 Class类的本质任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,Class文件实际上它并不一定以磁盘文件的形式存

2021-04-26 14:27:30 127

原创 常用命令

设置git用户名和邮箱git config --global user.name “test”git config --global user.email “[email protected]”初始化仓库git init仓库状态git status添加文件(临时缓冲区)git add demo.txt提交仓库git commit -m “text commit” #commit表示提交,-m表示提交信息,提交信息写在双引号""内查看提交记录git log查看 Git 仓库的分支情况:git

2021-04-20 00:46:10 62

原创 JVM [2] —垃圾收集器与内存分配策略

一、判断对象的存活1.1 引用计数算法引用计数法:快,方便,实现简单,缺点:对象相互引用时,很难判断对象是否改回收。1.2 可达性分析来判定对象是否存活的。这个算法的基本思路就是通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。作为GC Roots的对象包括下面几种:虚拟机栈(栈帧中的本地变量表)中引用的对象。方法区中类静态属性引用

2021-04-05 15:49:54 214 2

原创 Mysql常用sql

#JOINselect * from student s INNER JOIN teacher t ON s.s_id=t.t_id;select * from student s LEFT JOIN teacher t ON s.s_id=t.t_id;select * from student s RIGHT JOIN teacher t ON s.s_id=t.t_id;#BETWEENselect * from student WHERE s_id NOT BETWEEN 01 and

2021-03-29 15:47:46 128

原创 消息中间件[3]—Kafka,学废了吗??

一、Kafak的基本概念概念:Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。功能:发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因;以容错的方式记录消息流,kafka以文件的方式来存储消息流;可以再消息发布的时候进行处理;二、基本属性2.1 消息和批次消息,Kafka里的数据单元,也就是我们一般消息中间件里的消息的概念。

2021-03-22 22:24:56 318

原创 Zookeeper[5]—服务注册与发现/集群选举/分布式锁/配置中心

Zookeeper的服务注册与发现架构在此架构中有三类角色:服务提供者,服务注册中心,服务消费者。服务提供者服务提供者作为服务的提供方将自身的服务信息注册到服务注册中心中。服务注册中心服务注册中心主要提供所有服务注册信息的中心存储,同时负责将服务注册信息的更新通知实时的Push给服务消费者。服务消费者服务消费者在启动时从服务注册中心获取需要的服务注册信息,将服务注册信息缓存在本地根据本地缓存中的服务注册信息构建服务调用请求,并根据负载均衡策略(随机负载均衡,Round-Robin负载均衡等

2021-03-17 19:47:35 185

原创 Zookeeper[4]—2PC/3PC/Paxos/ZAB协议算法/集群的安装

一、 一致性协议概述前面已经讨论过,在分布式环境下,有很多不确定性因素,故障随时都回发生,也讲了CAP理论,BASE理论我们希望达到,在分布式环境下能搭建一个高可用的,且数据高一致性的服务,目标是这样,但CAP理论告诉我们要达到这样的理想环境是不可能的。这三者最多完全满足2个。在这个前提下,P(分区容错性)是必然要满足的,因为毕竟是分布式,不能把所有的应用全放到一个服务器里面,这样服务器是吃不消的,而且也存在单点故障问题。所以,只能从一致性和可用性中找平衡。怎么个平衡法?在这种环境下出现了BASE

2021-03-10 15:45:52 169

原创 Zookeeper[3]—客户端介绍

一、Zookeeper客户端简介1.1 Zookeeper原生客户端zookeeper官方提供的java客户端API;红色是同步必选参数;绿色是异步参数依赖的pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2021-03-09 15:49:11 261 3

原创 ServiceComb入门篇

一、 ServiceComb 概述1.背景介绍ServiceComb 作为 Apache 开源组织下的一款微服务框架,其前身为华为云的 微服务引擎CSE(Cloud Service Engine) 云服务。 它意味着国内一款微服务框架在华为和 Apache 组织的共同努力下,随着微服务市场的火爆,一定会让越来越多的开发者所喜欢。2.技术方案解决方案级,多语言、多通信协议、标准服务契约、事务最终一致性开源开放,拥抱 SpringBoot、 SpringCloud、 ServiceMesh 等主流生态

2021-03-02 10:09:39 2527

原创 CentOS环境安装各种软件(持续更新)

环境:CentOS7一、安装JDK1.81.首先安装下载JDK的安装包https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html或者通过网盘链接下载:链接:https://pan.baidu.com/s/1yKBbqeC6_2YllH1EshMDsQ提取码:etsa2.全局环境变量的配置文件:vi /etc/profile将下面内容放到/etc/profile文件中export

2021-01-27 09:47:21 751 1

原创 Linux基础

前提准备1.安装vmware虚拟机和CentOS7linux下的目录分类与作用介绍/:根目录,一般根目录下只存放目录,不要存放文件,也不要修改,或者删除目录下的内容/mnt:测试目录/root:root用户的家目录/home:普通用户的家目录/tmp:临时目录(比如文件上传时)/var:存放经常修改的数据,比如程序运行的日志文件/boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件/etc:系统默认放置配置文件的地方/bin:所有用户都能执行的程序/sbin:只

2021-01-13 16:28:36 192

原创 消息中间件(3)

嵌入式ActiveMqpackage com.sinosun.embeddedmq;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/** * 类说明: */public class EmbedJmsConsumer { private static final String USERNAM

2020-12-11 10:43:33 162

原创 常用工具

JDKhttps://blog.csdn.net/u012187452/article/details/72595040(转载)Mavenhttps://blog.csdn.net/Alexshi5/article/details/78976413(转载)Tomcathttps://blog.csdn.net/zs20082012/article/details/7913820...

2020-12-08 15:02:57 133

原创 消息中间件(2)—JMS和ActiveMQ

JMS和ActiveMQJMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,实际上是一套api,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,ActiveMQ而是这个规范的一个具体实现JMS对象模型1)连接工厂。连接工厂负责创建一个JMS连接。2)JMS连接。JMS连接(Connection)表示JMS客户端和服务器端之间的一个活动的连接,是由客户端通过调用连接工厂的方法建立的。3)

2020-12-03 10:09:51 300

原创 cron表达式详解

cron表达式功能非常强大可以和quartz结合做定时器任务调度一个Cron-表达式是一个由六至七个字段组成由空格分隔的字符串,其中6个字段是必须的而一个是可选的,如下:'*' 字符可以用于所有字段,在“分”字段中设为"*"表示"每一分钟"的含义。'?' 字符可以用在“日”和“周几”字段. 它用来指定 '不明确的值'. 这在你需要指定这两个字段中的某一个值而不是另外一个的时候会被用到。在后面的例子中可以看到其含义。'-' 字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"

2020-11-19 09:00:12 1780

原创 消息中间件[1]—基本概述

一、消息中间件(MQ)的定义其实并没有标准定义。一般认为,消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。二、 为什么要用消息中间件?假设一个电商交易的场景,用户下单之后调用库存系统减库存,然后需要调用物流系统进行发货,如果交易、库存、物流是属于一个系统的,那么就是接口调用。但是随着系统的发展,各个模块越来越庞大、业务逻辑越来越复杂,必然是要做服务化和业务拆分的。这个时候就需要考虑这些系统之间如何交互,第一反应就是R

2020-11-11 10:51:55 218

原创 通信协议之RPC

package com.sinosun.transfer.rmi;import java.rmi.Remote;/** * 订单接口 */public interface IOrder extends Remote { // 付款方法 String pay(String id) throws RuntimeException;}package com.sinosun.transfer.rmi;import java.rmi.RemoteException;...

2020-10-18 01:27:01 428

原创 通讯协议之TCP、HTTP、UDP

ACK等于上一次的seq+1

2020-10-09 20:54:41 84

原创 Docker [2] —镜像制作和容器管理

仓库使用## 标题1、docker官方仓库注册https://hub.docker.com自由注册,邮件激活即可使用命令使用Docker pull/search/login/push/tagtag [镜像名:版本] [仓库]/[镜像名:版本]:标记本地镜像,将其归入某一仓库Push [仓库]/[镜像名:版本]: 推送镜像到仓库 --需要登陆Search [镜像名]:在仓库中查询镜像 – 无法查询到tag版本Pull [镜像名:版本]: 下载镜像到本地Login:登陆仓库1.命

2020-09-26 16:59:44 236

原创 Docker [1] —Docker的基础操作和概念

一. Docker简介Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。(背景),云计算兴起后,服务器硬件扩展非常便利,软件服务部署成为了瓶颈,docker趁势而兴。

2020-09-13 17:14:37 236

原创 Linux命令(持续更新)

ls -lr默认是最近修改的在前ls -lrt那么想升序只需反转下就可以了,所以加上-r参数ps -ef 和 ps -auxLinux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。ps

2020-09-11 15:33:11 269

java8新特性_day04_(Stream,过滤器,常用API)

该文件中包括java8学习的第四天内容,前面三天内容在以博客形式发布

2019-06-23

空空如也

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

TA关注的人

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