自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql排序规则

重音不敏感重音敏感大小写不敏感大小写敏感二进制。

2023-11-06 11:24:43 68

原创 JAVA远程调试

java远程调试

2023-03-16 16:31:53 597 1

原创 idea生成wsdl客户端文件

idea生成wsdl客户端文件

2023-02-21 20:20:45 3296 2

原创 Navicat连接不上 MySQL8.0,总是报错1251

Navicat 连接不上 MySQL8.0,总是报错1251

2023-01-29 10:33:20 295

原创 IIS站点发布log

IIS站点发布log网站

2023-01-29 10:27:19 121

原创 第二章 Docker容器常⻅命令

搜索镜像:docker search xxx列出当前系统存在的镜像:docker images拉取镜像:docker pull xxxxxx是具体某个镜像名称(格式 REPOSITORY:TAG)REPOSITORY:表示镜像的仓库源,TAG:镜像的标签运⾏⼀个容器docker run --name nginx-xd -p 8080:80 -d nginxdocker run - 运⾏⼀个容器 -d 后台运⾏ -p 端⼝映射 -..

2022-02-08 16:35:20 70

原创 第一章 Centos 64位安装 Docker

依次运⾏以下命令添加yum源yum updateyum install epel-release -yyum clean allyum list安装并运⾏Dockeryum install docker-io -ysystemctl start docker检查安装结果docker info启动使⽤Dockersystemctl start docker #运⾏Docker守护进程systemctl stop docker #停⽌Docker守护进程systemctl res

2022-02-08 16:26:35 498

原创 第十五章 AlibabaCloud微服务下的分布式配置中⼼

1.微服务下的分布式配置中⼼现在微服务存在的问题配置⽂件增多,不好维护修改配置⽂件需要重新发布什么是配置中⼼⼀句话:统⼀管理配置, 快速切换各个环境的配置相关产品百度的disconf 地址:https://github.com/knightliao/disconf阿⾥的diamand 地址:https://github.com/takeseem/diamondspringcloud的configs-server地址:https://cloud.spring.io/spring-

2022-02-07 21:05:07 194

原创 第十四章 AlibabaCloud微服务下的链路追踪系统

1.微服务架构下的排查问题复杂性概述两个常⻅的问题微服务调⽤链路出现了问题怎么快速排查?微服务调⽤链路耗时⻓怎么定位是哪个服务?链路追踪系统分布式应⽤架构虽然满⾜了应⽤横向扩展的需求,但是运维和诊断的过程变得越来越复杂,例如会遇到接⼝诊断困难、应⽤性能诊断复杂、架构分析复杂等难题,传统的监控⼯具并⽆法满⾜,分布式链路系统由此诞⽣核⼼将⼀次请求分布式调⽤,使⽤GPS定位串起来,记录每个调⽤的耗时、性能等⽇志,并通过可视化⼯具展示出来注意:AlibabaCloud全家桶还没对应的链路追踪系统,

2022-02-07 20:13:31 1891

原创 第十三章 ⽹关Gateway架构 +断⾔+过滤器

1. SpringCloud Gateway配置和交互流程⽹关的配置项路由:是⽹关的基本单元,由ID、URI、⼀组Predicate、⼀组Filter组成,根据Predicate进⾏匹配转发route组成部分id:路由的IDuri:匹配路由的转发地址predicates:配置该路由的断⾔,通过PredicateDefinition类进⾏接收配置。order:路由的优先级,数字越⼩,优先级越⾼。交互流程客户端向Spring Cloud Gateway发出请求如果⽹关处理程序映射确定请求

2022-02-06 18:24:02 1494

原创 第十二章 微服务核⼼组件之⽹关

1.什么是微服务的⽹关和应⽤场景什么是⽹关API Gateway,是系统的唯⼀对外的⼊⼝,介于客户端和服务器端之间的中间层,处理⾮业务功能提供路由请求、鉴权、监控、缓存、限流等功能统⼀接⼊:智能路由,AB测试、灰度测试,负载均衡、容灾处理,⽇志埋点(类似Nignx⽇志)流量监控:限流处理,服务降级安全防护:鉴权处理,监控,机器⽹络隔离主流的⽹关zuul:是Netflix开源的微服务⽹关,和Eureka,Ribbon,Hystrix等组件配合使⽤,依赖组件⽐较多,性能较差kong: 由Mas

2022-02-06 17:35:15 974

原创 第十一章 Sentinel⾃定 义异常-整合Open-Feign

异常种类FlowException //限流异常DegradeException //降级异常ParamFlowException //参数限流异常SystemBlockException //系统负载异常AuthorityException //授权异常实现BlockExceptionHandler并且重写handle⽅法@Component public class XdclassUrlBlockHandler implements BlockExceptionHandler {..

2022-02-02 18:52:54 288

原创 第十章 Sentinel流控规则

1.Sentinel流量控制功能流量控制(flow control)原理是监控应⽤流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进⾏控制,以避免被瞬时的流量⾼峰冲垮,从⽽保障应⽤的⾼可⽤性两种规则1)基于统计并发线程数的流量控制并发数控制⽤于保护业务线程池不被慢调⽤耗尽Sentinel 并发控制不负责创建和管理线程池,⽽是简单统计当前请求上下⽂的线程数⽬(正在执⾏的调⽤数⽬)如果超出阈值,新的请求会被⽴即拒绝,效果类似于信号量隔离2)基于统计QPS的流量控制当 QPS 超过

2022-02-02 18:01:41 759

原创 第九章 分布式系统的流量防卫兵-Sentinel

1.分布式系统的流量防卫兵Sentinel介绍什么是Sentinel阿⾥巴巴开源的分布式系统流控⼯具以流量为切⼊点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性丰富的应⽤场景:消息削峰填⾕、集群流量控制、实时熔断下游不可⽤应⽤等完备的实时监控:Sentinel 同时提供实时的监控功能提供开箱即⽤的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合官网:https://github.com/alibaba/Sentinel/wiki/主

2022-02-01 21:35:34 540

原创 第八章 ⾼并发下的微服务架构存在的问题和解决⽅案

1.⾼并发下的微服务存在的问题⾼并发下存在的问题微服务拆分多个系统,服务之间互相依赖,可能会由于系统负载过⾼,突发流量或者⽹络等各种异常情况 导致服务不可⽤核⼼思想-⾯向失败编程不要外界影响不被请求拖垮2.⾼并发下的微服务容错⽅案限流漏⽃,不管流量多⼤,均匀的流⼊容器,令牌桶算法,漏桶算法熔断保险丝,熔断服务,为了防⽌整个系统故障,包含当前和下游服务降级抛弃⼀些⾮核⼼的接⼝和数据,返回兜底数据 旅⾏箱的例⼦:只带核⼼的物品,抛弃⾮核⼼的,等有条件的时候再去携带这些

2022-02-01 18:02:17 292

原创 第七章 ⼀致性和可⽤性的权衡结果 BASE理论

什么是Base理论CAP 中的⼀致性和可⽤性进⾏⼀个权衡的结果,核⼼思想就是:我们⽆法做到强⼀致,但每个应⽤都可以根据⾃身的业务特点,采⽤适当的⽅式来使系统达到最终⼀致性, 来⾃ ebay 的架构师提出Basically Available(基本可⽤)假设系统,出现了不可预知的故障,但还是能⽤, 可能会有性能或者功能上的影响Soft state(软状态)允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可⽤性,即允许系统在多个不同节点的数据副本存在数据延时Eventually cons.

2022-02-01 17:55:07 427

原创 第六章 分布式架构CAP理论

CAP定理: 指的是在⼀个分布式系统中,Consistency(⼀致性)、 Availability(可⽤性)、Partitiontolerance(分区容错性),三者不可同时获得⼀致性(C):所有节点都可以访问到最新的数据可⽤性(A):每个请求都是可以得到响应的,不管请求是成功还是失败分区容错性(P):除了全部整体⽹络故障,其他故障都不能导致整个系统不可⽤CAP理论就是说在分布式存储系统中,最多只能实现上⾯的两点。⽽由于当前的⽹络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。.

2022-02-01 17:12:28 2826

原创 第五章 负载均衡进阶之 Ribbon和Feign实战

1.Ribbon负载均衡源码2.微服务新⼀代负载均衡组件Open-Feign原先ribbon代码存在的问题:不规范,⻛格不统⼀,维护性⽐较差什么是FeignSpringCloud提供的伪http客户端(本质还是⽤http),封装了Http调⽤流程,更适合⾯向接⼝化让⽤Java接⼝注解的⽅式调⽤Http请求.不⽤像Ribbon中通过封装HTTP请求报⽂的⽅式调⽤ Feign默认集成了RibbonNacos⽀持Feign,可以直接集成实现负载均衡的效果3.集成Feign实现远程⽅法调

2022-02-01 16:24:16 1016

原创 第四章 AlibabaCloud集成Ribbon实现负载均衡

1.什么负载均衡和常见的解决方案什么是负载均衡(Load Balance)分布式系统中一个非常重要的概念,当访问的服务具有多个实例时,需要根据某种“均衡”的策略决定请求发往哪个节点,这就是所谓的负载均衡,原理是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,从而提高了数据的吞吐量软硬件角度负载均衡的种类通过硬件来进行解决,常见的硬件有NetScaler、F5、Radware和Array等商用的负载均衡器,但比较昂贵的通过软件来进行解决,常见的软件有LVS、Nginx等,它们是基于Li

2022-01-30 22:23:12 892 1

原创 第三章 AlibabaCloud核心组件服务治理Nacos

1. 什么是微服务的注册中心微服务架构图什么是注册中心(服务治理)服务注册:服务提供者provider,启动的时候向注册中心上报自己的网络信息服务发现:服务消费者consumer,启动的时候向注册中心上报自己的网络信息,拉取provider的相关网络信息核心:服务管理,是有个服务注册表,心跳机制动态维护,服务实例在启动时注册到服务注册表,并在关闭时注销为什么要用微服务应用和机器越来越多,调用方需要知道接口的网络地址,如果靠配置文件的方式去控制网络地址,对于动态新增机器,维护带来

2022-01-30 21:43:01 1764

原创 第二章 Maven聚合工程创建微服务项目

1.创建聚合工程 xdclass-cloud,修改pom文件注意:记得删除聚合工程src目录 <!-- 一般来说父级项目的packaging都为pom,packaging默认类型jar类型--> <packaging>pom</packaging> <properties> <java.version>1.8</java.version> </properties>

2022-01-30 17:50:25 1644

原创 第一章 单机应用到分布式架构演进

1.传统单机-分布式架构演进历史单机架构优点: 易于测试 便于集成 小型项目友好缺点: 开发速度慢 启动时间长 依赖庞大分布式架构SOA :Service Oriented Architecture 面向服务的架构 其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能, 一个服务 通常以独立的形式存在与操作系统进程中, 各个服务之间 通过网络调用微服务:将一个大的单体应用进行细粒度的服务化拆分,每个拆分出来的服务各自独立打包部署,各个服务之间 通过网络调用优点:易开发、理解和

2022-01-30 17:18:04 238

原创 第二十七章 SpringBoot开启跨域配置

跨域:浏览器同源策略 1995年,同源政策由 Netscape 公司引⼊浏览器。⽬前,所有浏览器都实⾏这个政策。 最初,它的含义是指,A⽹⻚设置的 Cookie,B⽹⻚不能打开,除⾮这两个⽹⻚"同 源"。所谓"同源"指的是"三个相同"解决⽅法...

2022-01-29 23:05:02 174

原创 第二十六章 登录检验解决⽅案 JWT

单机tomcat应⽤登录检验sesssion保存在浏览器和应⽤服务器会话之间⽤户登录成功,服务端会保存⼀个session,当然客户端有⼀个sessionId客户端会把sessionId保存在cookie中,每次请求都会携带这个sessionId分布式应⽤中session共享真实的应⽤不可能单节点部署,所以就有个多节点登录session共享的问题需要解决tomcat⽀持session共享,但是有⼴播⻛暴;⽤户量⼤的时候,占⽤资源就严重,不推荐使⽤redis存储token服务端使⽤.

2022-01-27 22:57:21 1510

原创 第二十五章 SSM整合打通Mysql数据库控制事务

1.Spring 常⻅的事务管理事务:多个操作,要么同时成功,要么失败后⼀起回滚具备ACID四种特性Atomic(原⼦性)Consistency(⼀致性)Isolation(隔离性)Durability(持久性)常⻅的Spring事务管理⽅式编程式事务管理代码中调⽤beginTransaction()、commit()、rollback()等事务管理相关的⽅法,通过TransactionTempalte⼿动管理事务(⽤的少)声明式事务管理通过AOP实现,可配置⽂

2022-01-26 22:45:51 917

原创 第二十四章 基于Spring注解配置AOP⾯向切⾯编程

声明切⾯类 @Aspect(切⾯): 通常是⼀个类,⾥⾯可以定义切⼊点和通知配置切⼊点和通知开启SpringAOP注解配置配置环绕通知:打印⽅法请求耗时时间环绕通知获取⽬标⽅法和参数

2022-01-26 18:32:24 146

原创 第二十三章 基于Spring的AOP快速实现通⽤⽇志打印

需求分析:针对Videoservice接⼝实现⽇志打印三个核⼼包spring-aop:AOP核⼼功能,例如代理⼯⼚aspectjweaver:简单理解,⽀持切⼊点表达式aspectjrt:简单理解,⽀持aop相关注解定义service接⼝和实现类定义横切关注点引⼊相关包添加schema配置bean和aop...

2022-01-26 17:52:36 59

原创 第二十二章 Spring AOP⾥⾯的代理知识

1.静态代理和动态代理什么是代理为某⼀个对象创建⼀个代理对象,程序不直接⽤原本的对象,⽽是由创建的代理对象来控制对原对象,通过代理类这中间⼀层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实施不同控制策略预留了空间A ->B-> C什么是静态代理由程序创建或特定⼯具⾃动⽣成源代码,在程序运⾏前,代理类的.class⽂件就已经存在什么是动态代理在程序运⾏时,运⽤反射机制动态创建⽽成,⽆需⼿动编写代码JDK动态代理   &nbs

2022-01-25 18:59:37 61

原创 第二十一章 Spring5.X ⾯向切⾯编程 AOP

1.什么是AOP⾯向切⾯编程什么是AOPAspect Oriented Program ⾯向切⾯编程在不改变原有逻辑上增加额外的功能,⽐如解决系统层⾯的问题,或者增加新的功能场景权限控制缓存⽇志处理事务控制AOP思想把功能分两个部分,分离系统中的各种关注点核⼼关注点:业务的主要功能横切关注点:⾮核⼼、额外增加的功能好处减少代码侵⼊,解耦可以统⼀处理横切逻辑⽅便添加和删除横切逻辑2.AOP⾯向切⾯编程核⼼概念横切、通知、连接点、切⼊点、切⾯横切关注点对哪些⽅法进⾏拦

2022-01-25 18:34:02 192

原创 第二十章 Spring5.X bean 的⽣命周期和⼆次处理

1.Spring⾥⾯bean的⽣命周期⾥⾯的init和destroy⽅法2. bean的⼆次加⼯-Spring5.x后置处理器 BeanPostProcessor什么是BeanPostProcessor是Spring IOC容器给我们提供的⼀个扩展接⼝在调⽤初始化⽅法前后对 Bean 进⾏额外加⼯,ApplicationContext 会⾃动扫描实现了BeanPostProcessor的 bean,并注册这些 bean 为后置处理器是Bean的统⼀前置后置处理⽽不是基于某⼀个bean执⾏顺

2022-01-24 19:12:57 87

原创 第十九章 Spring5.X bean 的作⽤域和注⼊

1.Spring5.x的bean的scope作⽤域scope属性singleton:单例, 默认值,调⽤getBean⽅法返回是同⼀个对象,实例会被缓存起来,效率⽐较⾼ 当⼀个bean被标识为singleton时候,spring的IOC容器中只会存在⼀个该beanprototype: 多例,调⽤getBean⽅法创建不同的对象,会频繁的创建和销毁对象造成很⼤的开销其他少⽤ (作⽤域 只在 WebApplicationContext)     &n

2022-01-24 18:57:31 64

原创 第十八章 Spring Framework5.X快速⼊⻔

1.快速认知Spring Framework5.X什么是Spring:轻量级的 DI / IoC 和 AOP 容器的开源框架https://spring.io/projects/spring-framework优点管理创建和组装对象之间的依赖关系 使⽤前:⼿⼯创建使⽤后:Spring创建,⾃动注⼊⾯向切⾯编程(AOP)可以解耦核⼼业务和边缘业务的关系场景:⽤户调⽤下单购买视频接⼝,需要判断登录,拦截器是AOP思想的⼀种实现使⽤前:代码写逻辑,每次下单都调⽤⽅法判断,多个⽅法需要判断登录则都

2022-01-24 18:36:02 100

原创 第十七章 MyBatis3.X整合Mysql数据库事务

1.MyBatis3.x 的事务管理形式使⽤JDBC的事务管理使⽤ java.sql.Connection对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())使⽤MANAGED的事务管理MyBatis⾃身不会去实现事务管理,⽽让程序的容器如(Spring, JBOSS)来实现对事务的管理事务⼯⼚TransactionFactory 的两个实现类JdbcTransactionFactory->JdbcTransactionManagedTran

2022-01-24 18:12:40 222

原创 第十六章 MyBatis3.X玩转多级缓存和懒加载

1.Mybatis3.X ⼀级缓存什么是缓存程序经常要调⽤的对象存在内存中,⽅便其使⽤时可以快速调⽤,不必去数据库或者其他持久化设备中查询,主要就是提⾼性能Mybatis⼀级缓存⼀级缓存的作⽤域是SQLSession,同⼀个SqlSession中执⾏相同的SQL查询(相同的SQL和参数),第⼀次会去查询数据库并写在缓存中,第⼆次会直接从缓存中取基于PerpetualCache 的 HashMap本地缓存默认开启⼀级缓存失效策略:当执⾏SQL时候两次查询中间发⽣了增删改的操作,即insert、

2022-01-24 17:54:36 313

原创 第十五章 MyBatis3.X复杂Sql查询

1.MyBatis3.X的resultMapMybatis的SQL语句返回结果有两种resultType      查询出的字段在相应的pojo中必须有和它相同的字段对应,或者基本数据类型      适合简单查询resultMap      需要⾃定义字段,或者多表查询,⼀对多等关系,⽐resultType更强⼤&

2022-01-24 16:34:13 77

原创 第十四章 MyBatis3.X玩转常⻅配置

1. MyBatis3.X 配置⽂件mybatis-config.xml常⻅属性核⼼配置⽂件(dom节点顺序要求,不然报错)官⽅⽂档:https://mybatis.org/mybatis-3/zh/configuration.html#2.MyBatis3.X 查询typeAlias别名的使⽤typeAlias类型别名,给类取个别名,可以不⽤输⼊类的全限定名如果有很多类,不⽤⼀个个配置,使⽤包扫描即可本身就内置很多别名,⽐如Integer、String、List、Map 等3

2022-01-24 16:14:51 204

原创 第十三章 MyBatis3.X玩转更新和删除

1. MyBatis3.X实战更新语法之视频更新操作update 语法更新视频对象2.MyBatis3.X更新语法之选择性更新标签使⽤可以选择性更新⾮空字段if test标签介绍if 标签可以通过判断传⼊的值来确定查询条件,test 指定⼀个OGNL表达式常⻅写法代码(⾥⾯包含⼀个惨痛教训,⼀定要看pojo类⾥⾯的是基本数据类型,还是包装数据类型)3.MyBatis3.X实战之删除语法和转义字符使⽤delete删除语法为什么要转义字符由于MyBatis的sql写在XM

2022-01-24 16:02:45 142

原创 第十二章 MyBatis3.X玩转查询和新增操作

1.Mybatis开发必备调试之控制台打印SqlMybatis使⽤流程创建mybatis-config.xml 全局的配置⽂件创建XXXMapper.xml配置⽂件创建SqlSessionFactory⽤SqlSessionFactory创建SqlSession对象⽤SqlSession执⾏增删改查CRUD内置的⽇志⼯⼚提供⽇志功能, 使⽤log4j配置打印sql,添加依赖在应⽤的classpath中创建名称为 log4j.properties 的⽂件2. Mybatis实战参数别

2022-01-24 15:46:45 347

原创 第十一章 从Javaweb原⽣jdbc到MyBatis3.X

1.javaweb通过原⽣jdbc访问数据库原⽣jdbc访问数据库步骤加载JDBC驱动程序创建数据库的连接创建preparedStatement执⾏SQL语句处理结果集关闭JDBC对象资源Springboot项⽬测试原⽣JDBC连接加载依赖包Main函数访问代码实操2.原⽣jdbc访问数据库缺点和ORM框架介绍原⽣jdbc缺点每次要加载驱动,连接信息是硬编码sql和java代码耦合⼀起,改动不易参数设置缺少灵活性处理结果集麻烦,不能⾃动映射到实体类连接资源不能复⽤

2022-01-24 14:47:42 384

原创 第⼗章 SpringBoot2.X整合定时任务和异步任务

1.SpringBoot2.X定时任务schedule讲解什么是定时任务,使⽤场景某个时间定时处理某个任务发邮件、短信等消息提醒订单通知统计报表系统常⻅定时任务Java⾃带的java.util.Timer类配置⽐较麻烦,时间延后问题Quartz框架: 配置更简单,xml或者注解适合分布式或者⼤型调度作业SpringBoot框架⾃带SpringBoot使⽤注解⽅式开启定时任务启动类⾥⾯ @EnableScheduling开启定时任务,⾃动扫描定时任务业务类 加注解 @Compone

2022-01-23 21:03:30 180

空空如也

空空如也

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

TA关注的人

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