自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pp_hu的博客

只要学不死,就往死里学,干

  • 博客(86)
  • 收藏
  • 关注

原创 微服务入门到入土(09)-分布式事务

分布式事务常见解决方案

2022-03-22 14:58:06 2776 1

原创 k8s configMap挂载(项目配置文件放到configMap中,不同环境不同配置)

再yml部署文件中(k8s),将important.properties文件的内容放到configMap中,然后将configMap挂载到编译后的important.properties文件地址下。这样只要进行部署,important.properties文件的内容就会被yml部署文件里的内容替换。但是密文只能放到指定的配置文件中(important.properties),该配置文件又不能接收环境变量,所以就很难区分不同环境的不同配置(不同环境的数据库密码、redis密码一般都不一样)。

2023-11-07 17:54:27 657

原创 Nacos本地修改编译源码2.2.3

nacos设置数据密码的位置在:nacos-config模块下:src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceProperties.java 类下的build方法下。nacos密码加密修改源码的方式有很多,由于我们这边项目要求,只能使用内部的jar包。在nacos-config模块下创建libs文件夹,让后将jar放到改文件夹下。或者直接下载2.2.3的源码。源码导入idea,然后编译。

2023-11-03 11:34:50 371

原创 内网环境制作nacos镜像

修改docker-startup.sh的编码格式,默认是windows,改成Unix,在notepad++就可以更改。执行docker构建命令:docker build -t nacos-server:2.2.2 .一些高版本要收到加上这三个环境变量,否则启动会报错。认证也要开启,不然可以直接通过接口创建用户。将下载的压缩包,放到build文件夹。认证可以在Dockerfile中开启。也可以在yml部署文件开启。以2.2.2版本为例。

2023-05-29 16:46:45 1090

原创 mysql优化面试整理-吊打面试官

MySQL性能分析、优化

2022-10-13 15:38:08 499

原创 快速学习JUC并发编程,应对时间紧迫的面试突击。

1. JUC概述JUC是java.util.concurrent工具包的简称,这是一个处理线程的工具包,jdk1.5开始出现的。

2022-04-19 15:23:16 178

原创 常见面试题

1. 微服务篇1.SpringCloud常见组件有哪些?注册中心组件: Eureka、Nacos等负载均衡组件: Ribbon远程调用组件:OpenFeign网关组件:Zuul、Gateway服务保护组件:Hystrix、Sentinel服务配置管理组件: SpringCloudConfig、Nacos2.Nacos与Eureka的区别有哪些?nacos与euraka都实现了服务注册、发现功能nacos实例有永久和临时之分,eureka只有临时实例健康检测方面nacos对临时实例

2022-04-19 15:22:56 920

原创 MySQL面试知识点总结 - 超强超详细的mysql优化教程,不要只会收藏呦,要好好学习才是王道呀。

本课程不会从0开始,只列出一些可能会在面试环节出现的知识点

2022-04-13 17:28:34 250

原创 Sentinel簇点链路只显示/error和/**

原因这里先说明产生的原因及解决方案。原因是我用了Spring Cloud Alibaba 2.2.0.RELEASE版本,把版本换成其他版本就可以了,比如Spring Cloud Alibaba 2.1.0.RELEASE详细过程请求/seckill/test路径,却不能在簇点链路里显示出来。只显示/error和/**研究了好长时间才发现是Spring Cloud Alibaba 2.2.0.RELEASE版本的问题。换成其他版本就没问题了。换成Spring Cloud Alibaba 2.

2022-04-07 14:03:01 868 2

原创 秒杀专题-秒杀系统怎么支持高并发而又不影响其他业务?快速响应式秒杀系统设计方案

1. 秒杀业务1.1 特点瞬时高并发独立部署如果不独立部署的话,比如放到订单系统中。如果秒杀时间一到,订单系统可能瞬间就会有大量的并发进来,订单系统中其他的业务(比如正常下单、取消订单等)可能会收到影响甚至瘫痪。因此秒杀系统应该独立部署,哪怕秒杀服务器应对不了这么高的并发,也不会影响其他服务。...

2022-04-02 16:13:18 1397

原创 微服务入门到入土(08)-消息队列RabbitMQ

RabbitMQ基础及高级知识

2022-02-28 16:16:44 2000

原创 Redis 手摸手教程(番外篇)Redis在电商系统中的使用场景及问题分析

文章目录前言1. 商品分类缓存1.1 介绍1.2 可能遇到的问题及解决方案1.3 代码片段2. 购物车3. 秒杀前言在介绍redis使用场景之前,首先要明白为什么使用?哪些情况下使用?使用的时候可能会遇到哪些常见问题等。不要为了想用而用,更不能为了那虚无缥缈的成就感而过度设计redis,增加系统的复杂度。哪些数据不适合放到redis中?强一致性、实时性较高的数据写多读少的数据数据量较少,查询简单快速哪些数据适合放到redis中写少读多的数据实时性要求不是很高的数据数据量较大,查询复

2022-02-22 13:29:23 2476

原创 微服务入门到入土(07)-分布式搜索ElasticSearch

elasticsearch基础、高级

2022-01-29 15:54:37 1939 4

原创 微服务入门到入土(06)-Sentinel

1. 初始SentinelSentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。1.1 微服务雪崩问题解决雪崩问题的几种常见方式1.2 Sentinel和Hystrix1.3 微服务整合Sentinel2. 流量控制2.1 快速入门2.1.1 簇点链路2.1.1 流控规则流控模式流控模式 - 关联流控模式 - 链路流控效果流控效果-w

2021-12-09 15:24:12 388

原创 微服务入门到入土(05)-Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2021-12-06 13:47:12 302

原创 微服务入门到入土(04)-统一网关 Gateway

1. 网关的作用2. Gateway快速入门总结3. 路由断言工厂我们在路由中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的条件。Spring中提供了11中基本的断言工厂:总结4. 过滤器4.1 路由过滤器 GatewayFilterGatewayFilter是网关中提供的一种过滤器,可以对网关的请求以及微服务返回的相应做处理。4.2 全局过滤器 GlobalFilter全局过滤器的作用与GatewayFilte

2021-12-01 16:18:47 363

原创 微服务入门到入土(03)-Feign

1. 介绍Feign是一种声明式的http客户端(意思就是只需要把http请求需要的东西告诉Spring就行了,Spring会帮我们封装请求信息)。其作用就是帮助我们更优雅的实现http请求,使用起来比RestTemplate简单、灵活。Feign是基于Ribbon开发的,所以自带负载均衡。2. 使用Feign的步骤3. 自定义配置Feign默认日志级别就是NONE4. Feign的性能优化Feign底层的客户端实现:URLConnection:默认实现,不自持连接池Apache

2021-12-01 14:30:01 365

原创 微服务入门到入土(02)-Nacos

1. 简介nacos最主要以及最常用的功能就是作为微服务生态体系中的服务注册中心以及服务配置中心.它的安装很简单,这里就不做介绍了,安装完之后默认的登录名和密码都是nacos2. 注册中心2.1 服务分级储存模型启动三个userservice实例,其中两个设置为HZ集群,一个设置为SH集群,在nacos查看服务详情如下所示:总结Nacos服务分级存储模型一级是服务,例如用户服务:userservice。二级是集群,例如杭州或上海。三级是实例,例如杭州机房部署了userservi

2021-11-30 17:48:59 351

原创 微服务入门到入土(01)-Ribbon

1.Ribbon1.1 负载均衡源码/原理ribbon可实现微服务中单个服务多个实例的负载均衡,其实现负载均衡的核心代码如下图所示:1.2 负载均衡策略负载均衡规则的接口是IRule,默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询。配置文件的方式修改负载均衡策略1.3 开启饿加载Ribbon默认采用懒加载,也就是第一次访问时才会去创建LoadBalanceClient,请求时间会很长。而饥饿加载会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启

2021-11-30 11:10:49 263

原创 Redis 手摸手教程(3/3) - Redis集群及常见企业级解决方案

本篇主要介绍Redis集群以及常见Redis问题和解决方案

2021-11-26 16:55:03 903

原创 Redis 手摸手教程(2/3) - Redis进阶部分

本篇主要包含Redis的持久化、事务、锁。

2021-11-23 15:20:59 490

原创 Redis 手摸手教程(1/3) - Redis基础部分

本章内容主要是Redis的基础部分,主要包含redis简介,5种基本类型,通用命令,案例解析等.

2021-11-19 17:41:17 734

原创 JVM 手把手保姆级教程(3/3):类加载与字节码技术&内存模型

类加载与字节码技术&内存模型

2021-11-09 17:45:55 529

原创 JVM 手把手保姆级教程(2/3):垃圾回收

垃圾回收

2021-10-28 17:50:57 276

原创 JVM 手把手保姆级教程(1/3):java虚拟机内存结构详细教程

程序计数器、虚拟机栈、本地方法栈、堆、方法区以及常见问题等

2021-10-26 11:24:47 266

原创 MySql高级-02:优化步骤以及优化方法【重点】

文章目录第一章:优化SQL步骤1.1 查看SQL执行频率1.2 定位低效率SQL1.3 explain分析执行计划1.3.1 环境准备第二章:索引的使用第三章:SQL优化第一章:优化SQL步骤在应用程序开发过程中,由于前期数据量小,开发人员更注重功能上的实现。功能上线后随着数据量越来越大,有些SQL可能就会变得很慢,成为系统的瓶颈,这时候就需要对SQL就行系统的优化。本章主要介绍应该从何处以及怎么快速定位SQL问题。1.1 查看SQL执行频率MySQL客户端链接成功后,通过命令来查看服务器的统计结

2021-10-18 17:39:13 330

原创 MySql高级-01:索引、视图、储存过程、触发器

本教程引自黑马程序员MySQL视频:https://www.bilibili.com/video/BV1zJ411M7TB文章目录第一章:索引1.1 概述1.2 优势和劣势1.3 索引结构1.3.1 BTree结构1.3.2 B+Tree结构第一章:索引1.1 概述MySQL官方定义为:索引是帮助MySQL高效获取数据得数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法得数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索.

2021-10-11 15:06:20 111

原创 Shell教程

目录第1章 Shell概述第2章 解析器第3章 Shell脚本入门第4章 Shell中的变量第1章 Shell概述为什么要学习Shell脚本?1.需要看懂 运维人员编写的Shell脚本2.会编写一些简单Shell程序来管理集群、提高开发销量概述Shell是一个命令行解释器,它接收客户端的命令,然后调用操作系统内核。第2章 解析器查看Linux系统提供的解析器有哪些cd /binll | grep bash查看系统默认的解析器echo $SHELL第3章 Shell脚本入门

2021-09-24 11:24:47 248

原创 linux docker常用命令

重启dockersystemctl restart docker重启jenkinssystemctl restart jenkins重启harbor在harbor安装目录下执行docker-compose down./preparedocker-compose up -d重启所有docker服务docker restart $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)设置开机启动docker update mysql --rest

2021-09-03 09:42:15 103

原创 k8s安装

关闭防火墙systemctl stop firewalldsystemctl disable firewalld关闭selinuxsed -i ‘s/enforcing/disabled/’ /etc/selinux/config #永久关闭 swapsed -ri ‘s/.swap./#&/’ /etc/fstab设置主机名hostnamectl set-hostname 将桥接的IPv4流量传递到iptables的链cat > /etc/sysctl.d/k8s.co

2021-09-03 09:40:26 95

原创 Harbor安装

离线安装docker-compose首先现在安装包:https://github.com/docker/compose/tags然后上传到linux服务器并执行以下命令mv docker-compose-Linux-x86_64 /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose -v安装harbor下载Harbor的压缩包https://github.com/goharbor

2021-09-03 09:37:00 227

原创 离线安装Harbor

离线安装docker-compose安装Harbor之前要先安装docker-compose。下载地址:https://github.com/docker/compose/tagssudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose -v离线安装Harbor下载地址:https://github.c

2021-08-31 14:22:14 258

原创 jenkins 配置Java和Maven

下载并配置mavenwget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gztar -xzf apache-maven-3.6.3-bin.tar.gzmkdir -p /opt/mavenmv apache-maven-3.6.3/* /opt/maven#**配置环境变量**vi /etc/profileexport JAVA_HOME=/usr

2021-08-27 14:51:31 285

原创 Jenkins插件管理

Manage Jenkins->Manage Plugins点击Available 等待插件加载完成在然后将插件地址替换成国内地址,命令如下:cd /var/lib/jenkins/updatessed -i ‘s/http://updates.jenkinsci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g’ default.json && sed -i ‘s/http://www.google.com

2021-08-26 22:37:24 128

原创 centos7安装jenkins

1.首先安装jdk1.8的环境:yum install java-1.8.0-openjdk* -y2.下载jenkins地址:http://mirrors.jenkins.io/redhat-stable/3.安装jenkins:rpm -ivh jenkins-2.277.1-1.1.noarch.rpm4.修改jenkins配置:vi /etc/sysconfig/jenkinsJENKINS_USER=“root”JENKINS_PORT=“8081”5.启动jenkinssy

2021-08-26 18:06:15 81

原创 MySql高级-03:MySql优化快速学习

索引索引时帮助mysql高效获取数据的数据结构优点提高数据库的检索速度,降低IO消耗降低数据排序的成别,降低CPU消耗缺点索引也展内存空间提高了查询的速度却会降低更新表的速度分类单值索引唯一索引:允许有空值复合索引:一个索引包含多列什么情况下需要建索引频繁查找的字段查询中与其他表关联的字段频繁更新的字段不适合创建索引where条件里用不到的字段不创建索引高并发下最好创建组合索引查询中排序的字段适合创建索引查询中统计或分组字段什么情况下不要创建索引表

2021-04-15 15:05:24 91

原创 多线程基础

多线程的几种创建方法方法一:基础Thread类方法二:实现Runnable接口方法三:FutureTask配合Thread线程的生命周期一个线程完整的生命周期 一般要经历一下5个状态:新建:刚被创建的线程就处于新建状态。就绪:新建状态的线程被执行start()方法后,将进入线程队列等待CPU的调用,它已经具备了运行的条件,只是没有分配到 CPU资源运行:就绪状态的线程获得CPU资源并且被调度,就进入运行状态,运行状态下调用yield()会重新变成就绪状态,调

2021-03-23 15:38:23 66

原创 22、设计模式之代理模式

概述由于某些原因需要给对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理类在编译器生产,而动态代理类是在java运行时动态生成。动态代理又有JDK代理和CGLib代理两种。结构抽象代理类(Subject):通过接口或抽象类声明真实主题和代理对象实现的业务方法。真实主题类(Real Subject):实现了抽象代理类中的具体业务,是代理对象所代表的真实对

2021-01-05 14:35:35 63

原创 21、设计模式之解释器模式【难】

定义给定一个语言,定义的它文法(描述语言的语法结构)表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。‘’文法规则:expression ::= value | plus | minusplus ::= expression ‘+’ expressionminus ::= expression ‘-’ expressionvalue ::= integer注意:这里的“::=”表示“定义为”的意思,竖线 | 表示或,引号内为字符本身,引号外为语法。上述的规则可以描述为:

2020-12-31 14:15:28 73

原创 20、设计模式之备忘录模式

定义又叫快照模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。结构发起人角色(Originator):记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能。它可以访问备忘录里的所有信息。备忘录角色(Memento):负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人管理者角色(Caretaker):对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与

2020-12-31 11:19:07 85

空空如也

空空如也

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

TA关注的人

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