自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (4)
  • 收藏
  • 关注

原创 使用Jconsole监控JMX

jconsole远程连接

2023-09-14 21:57:12 172

原创 2021年省市区街道居委五级联动

国际统计局2021年省市区街道联动数据抓取

2022-07-05 22:50:26 941

原创 nacos入门

nacos入门nacos介绍什么是nacos启动nacos服务服务启动访问动态配置服务服务发现及管理动态DNS服务修改为mysql存储配置nacos介绍nacos官网,nacos是阿里那套微服务中的一个组件,可以单独使用可以,配合其他的组件一起使用。我们用的最多还是nacos的动态配置,这个对与其他可替代的微服务组件来说,这个比价简单,使用也非常的方便。什么是nacosNacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元

2021-07-27 23:53:23 215

原创 Sentinel使用

这里写目录标题Sentinel简介Sentinel 是什么?Sentinel 组成Sentinel 与 Hystrix 的对比使用Sentinel添加依赖限流测试使用方式Sentinel Dashboard概述Dashboard下载运行使用Dashboard使用限流Sentinel简介可以直接参考官网Sentinel 是什么?Sentinel: 分布式系统的流量防卫兵随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维

2021-07-21 23:39:28 384 3

原创 gateway网关

gateway网关网关业务作用功能基本实现断言 predicates整合Eureka负载均衡自定义过滤器权重限流完整配置代码地址网关网关是一个服务,是访问内部系统的唯一入口,提供内部服务的路由中转,额外还可以在此基础上提供如身份验证、监控、负载均衡、限流、降级与应用检测等功能。业务作用网关是业务服务,可以作为业务整体业务入口。微服务即是一个整体,也是个体。个体体现在所有的服务都是独立单一的,可以自行运行。整体表现在需要所有微服务都正常就能提供一个完整的服务,整体服务又依赖于注册中心,对外提供服务又依

2021-06-22 21:25:54 317 1

原创 springcloud config配置中心

配置中心配置中心意义实际好处配置中心介绍实现config 服务git 文件创建创建config server添加依赖修改配置文件修改启动类服务测试config client使用修改配置文件名配置匹配规则配置文件修改依赖加载测试代码刷新配置手动刷新配置自动刷新代码地址配置中心意义配置中心就是将配置文件统一管理,所有配置放到一起方便管理。实际好处1、集中管理所有的环境信息只需要一个角色管理,开发人员无法直接接触配置信息,可以更加安全。2、放在一起,方便管理,减少找配置的问题。3、部分参数的修改可以做

2021-06-15 09:02:59 272 1

原创 SpringBoot Admin健康检查

Admin健康检查admin实现admin功能创建客户端主动上报的服务端实现效果异常通知邮件通知其他通知代码地址admin监控检查,检查的是什么了。检查的是应用实例状态,说白了就是被查服务提供信息给检查服务端。在spring cloud 中可以有两种方式进行健康检查,一种是应用主动上报到admin服务端,第二种就是的admin项目eureka服务端拉取信息。admin主要就是告诉运维人员,服务出现异常,然后进行通知(微信、邮件、短信、钉钉等)可以非常快速通知到运维人员,相当报警功能。应用中如果没有监控

2021-06-11 16:58:11 1463 7

原创 微服务服务链路追踪zuul+Sleuth+zipkin使用

服务链路追踪链路追踪的必要性zuul使用zuul使用创建新模块Sleuth使用Sleuthzipkin原理存储方式使用项目添加启动zipkin服务器zipkin服务端使用代码地址链路追踪的必要性前端的一个请求,打到后台,后台响应结果,这就是一个业务的场景。如果响应异常、请求超时、业务使用那些服务等。这些问题我们可以通过链路追踪来解决这个问题,当然业务通过其他方式。我在实际项目中跟踪问题的时候,那个时候没有使用框架,不过也使用网关。一个结果返回错误,我先查看nginx中有没有这个请求url过来,查看请求

2021-06-10 21:42:39 579

原创 hystrix使用

hystrix使用hystrix介绍hystrix是什么Netflix的hystrix功能Netflix功能实现方式直接调用Resttemplate请求Feign请求fallback方式fallbackFactory方式hystrix参数配置hystrix介绍hystrix是什么hystrix是springCloud的一个容错组件,是有Netflix提供的开源库。实现了超时机制和断路器模式。最新版本的springCloud 2020.0.x 已经不再使用Netflix的hystrix,不过旧版本没有修

2021-06-09 20:03:01 372

原创 OpenFeign使用

OpenFeign使用Feign和OpenFeign实现OpenFeign功能远程服务调用启动类加载feign创建common公共模块使用远程调用user服务中提供接口远程服务调用结果get请求带参数问题负载均衡ribbon方式springCloud LoadBalancer身份验证服务提供者开启身份证验证服务调用方添加验证信息直接添加配置文件方式原理代码地址OpenFeign是Netflix 开发的声明式、模板化的HTTP请求客户端。可以更加便捷、优雅地调用http api。就是解决微服务之间rest接

2021-06-04 21:28:04 5197 1

原创 ribbon负载均衡

ribbon实现负载均衡软件负载均衡硬件负载均衡Ribbon组成使用ribbon依赖加载初始化RestTemplateBean负载均衡策略选择业务调用Ribbon去除Eureka依赖代码地址负载均衡当用户使用量很大,一个实例已经不能满足使用,这样我们就需要在同一个服务扩展出多个实例,他们都是同一个应用,在不同服务器中运行,这种就是应用的横向扩展(集群)。负载均衡就是解决多个同一应用多台服务,调度问题,让服务器一种处于高效运作中,保证系统处理能力。软件负载均衡lvs:Linux Virtual Ser

2021-06-03 22:19:32 287 1

原创 Eureka核心实现

Eureka原理eureka的核心功能基础功能服务注册服务调用获取所有服务列表注册到eureka的具体的服务查看服务续约更改服务状态删除状态更新删除服务元数据标准元数据自定义元数据EurekaClient的使用自我保护机制含义解决的问题思想触发自我保护方式多网卡选择Eureka 健康检查eureka的核心功能基础功能服务注册服务的注册发生在第一次心跳时提交,主要提供服务客户端服务运行信息。服务的注册主要是给消费方获取然后根据注册的信息中地址和状态根据情况进行服务的调用,所有注册时需要提供状态信息网络

2021-06-02 09:21:40 213

原创 注册中心eureka

注册中心eureka注册中心背景概念好处有哪些注册中心技术服务组成Eurekaclient功能server注册中心功能单节点eureka服务eureka服务端eureka客户端效果代码地址高可用eureka服务修改hosts效果代码地址注册中心背景在传统应用中,组件之间的调用,通过有规范的约束的接口来实现,从而实现不同模块间良好的协作。但是被拆分成微服务后,每个微服务实例的网络地址都可能动态变化,数量也会变化,使得原来硬编码的地址失去了作用。需要一个中心化的组件来进行服务的登记和管理。概念实现服务

2021-05-25 21:06:28 130 1

原创 springCloud微服务

spring cloud版本信息springCloud版本信息官网最新使用的版本为2020.0.x我下面演示的项目版本是2020.0.2这个是2021-03-17的最新版本。这个版本中spring-cloud-netflix已经删除一些支持。为什么使用最新的,学习吗不用最新的用什么。版本信息参考官网Spring-Cloud-2020.0-Release-Notes.Spring Cloud 自 2016 年 1 月发布第一个 Angel.SR5 版本,到目前 2021 年 4 月21发布 Ho

2021-05-20 18:38:02 154

原创 StreamAPI使用

Stream干什么用的使用原理Stream特性Stream运行机制Stream的创建Stream常用API中间操作终止操作总结干什么用的Stream是一组用来处理数组、集合的API。使用原理代码简洁函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环。多核友好,Java函数式编程使得编写并行程序从未如此简单,你需要的全部就是调用一下parallel()方法。Stream特性1:不是数据结构,没有内部存储2:不支持索引访问3:延迟计算4:支持并行5:很容易生成数组

2021-05-13 11:17:50 247 1

原创 Arrays.asList基础类型使用问题

Arrays.asList问题从源码中找问题代码演示总结从源码中找问题这个源码的截图看出来的问题就是的这里出入的参数类型是泛型T,这就是问题的根源。这个T表示派生自Object类的任何类,比如String,Integer,Double等等。泛型只能是引用类型,基础类型int、double等不是引用类型,但是数组是引用类型,那么这个参数泛型T只能是数组的引用类型。所以我们传基础类数组的时候,就只会认为你只传一个值。代码演示 int[] array={1,2,4,5}; for(int aa:ar

2021-05-12 15:45:25 318 3

原创 lamdda表达式笔记

lamdda表达式介绍说明lambda表达式作用使用情景如何看懂别人的lambda表达式定义调用代码演示1清楚函数式编程2 lambda 表达式基础写法3自定义函数接口4更简洁的::写法5java自定义的标准函数接口6方法引用的分类介绍说明lambda表达式作用可以替代只有一个抽象函数的接口实现,告别匿名内部类,代码看起来更简洁易懂。同时还提升了对集合、框架的迭代、遍历、过滤数据的操作。可以极大的减少代码冗余,同时代码的可读性要好过冗长的内部类,匿名类。使用情景1、需要自定义简单的代码块,

2021-05-10 11:14:04 201

原创 Java SPI机制详解

这里写目录标题什么是SPISPI的使用总结什么是SPISPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。SPI是一种动态替换发现的机制, 比如有个接口,想运行时动态的给它添加实现,你只需要添加一个实现。我们经常遇到的就是java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,mysql和postgresql都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。如上图所示,接口对应的抽象SPI接

2021-05-07 19:33:41 155 1

原创 springBoot整合mybatis

springBoot整合mybatis依赖引入配置参数DTO实体类Mapper接口MappeXML文件控制层项目的很简单没有多少代码,具体的使用的需要详细说明,后面我会更新的mybatis的使用手册。依赖引入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc&lt

2021-04-28 23:08:55 89

原创 SpringBoot项目使用druid

druid使用依赖引入初始化DruidDataSourceTestController测试代码数据源配置效果依赖引入<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> &lt

2021-04-28 18:22:48 374

原创 SpringBoot多数据源druid

SpringBoot多数据源druid依赖引入数据源和druid的配置druid的servlet和filter设置代码多语言切换注解枚举数据源AOP 代码创建dataSource的Bean对象自定义DynamicDataSource设置数据源注解的有效范围效果源码AbstractRoutingDataSource类依赖引入主要包含JDBC、mysql、druid(需要logj4d的依赖)、aop(多数据源选择时需要切面)<dependency> <groupI

2021-04-28 16:35:23 424 1

原创 SpringBoot使用jdbc

SpringBoot使用jdbc依赖引入配置数据源信息测试的数据库的连接JdbcTemplate的CURL源码初始化bean创建连接依赖引入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </depen

2021-04-27 11:58:55 306

原创 SpringBoot国际化i18n

SpringBoot国际化依赖加载设置IDEA编码器格式添加国际化语言文件添加配置多语言页面多语言切换配置代码实现过程源码依赖加载<!--thymeleaf模板--><dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId></dependency><dependency&gt

2021-04-26 21:41:37 233 1

原创 thymeleaf模板引擎

thymeleaf模板引擎依赖引入<!--thymeleaf模板--> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> </dependency> <dependency>

2021-04-25 23:28:33 82

原创 SpringMVC扩展

SpringMVC开发使用模板引擎视图的解析器源码中看一下实现过程自定义视图解析器自定义SpringMVC功能官网中关于Spring MVC 配置说明源码中MVC的配置重写addViewControllers模板引擎官网中个提供的模板引擎,我使用Thymeleaf做例子。依赖版本的选择thymeleaf官网依赖引入<!--thymeleaf模板--> <dependency> <groupId>org.thymele

2021-04-25 17:39:24 205

原创 SpringBoot静态资源加载

springBoot项目静态资源静态资源项目中默认静态资源加载顺序自定义静态资源加载顺序加载webjars文件项目首页静态资源项目中默认静态资源加载顺序静态资源存放则我们html、js、img等静态文件。加载顺序是resources目录下的resources、static 、public的优先级进行。从源码中可以看到我们我们默认加载顺序是就是这样设定。自定义静态资源加载顺序在配置文件中指定加载路径就可以了spring.web.resources.static-locations=class

2021-04-23 11:45:39 395

原创 SpringBoot学习之路

用idea创建springBoot项目springBoot配置文件springBoot中使用servlet

2021-04-20 18:19:29 90

原创 springBoot中使用servlet、过滤器、拦截器

springBoot中使用servletServlet注解注入代码注入过滤器监听器注解注入代码注入Servlet现在基本不会使用servlet,特殊情况也可以使用,但是我们可能会使用监听器和过滤器。两种注入方式第一通过注解、代码注入。注解注入1、 在启动类中天的Servlet包的扫描2、 在servlet类中添加的注解代码注入自定义bean的注入过滤器过滤器中可以过来的请求做多次拦截过滤。一般用作参数的过滤、统一的数据加解密、请求状态判断。监听器监听器一般用于监听servle

2021-04-20 18:14:08 295

原创 springBoot配置文件

springBoot配置文件配置优先级项目配置优先级项目运行时制定配置文件配置文件值选择代码测试类运行配置优先级项目配置优先级官方给的解释(中文翻译),我给总结一下,序号的越大,越会被小的覆盖。项目运行时制定配置文件1、指定名称的时候会安装上面的优先级进行文件选择。2、指定文件会按照文件路径去选择配置文件。配置文件值选择配置文件中设置值配置方式字符数值listMap占位符 ${}配置随机值获取值@ConfigurationProperties 和@Value@

2021-04-19 16:42:54 105

原创 用idea创建springBoot项目

用idea创建springBoot项目创建项目选择jdk版本配置项目信息报错关注创建web项目选择工具选择 (热部署、lombok)选择项目目录报错关注项目运行Banner修改 小玩具项目打包运行打包打好的包直接运行运行成功创建项目选择jdk版本配置项目信息报错关注项目标识和名称可能会出现的问题“Artifact contains illegal characters”大写改成小写创建web项目选择工具选择 (热部署、lombok)选择项目目录报错关注错误,项目下载时

2021-04-15 10:34:16 111

原创 redis问题总结

redis的应用场景redis是单线程还是多线程redis穿透、 击穿、雪崩Redis做限流数据库与缓存不一致如何解决

2021-04-02 19:09:21 44

原创 数据库与缓存不一致如何解决

文章目录前言一、先更新redis再更新数据库问题二、先更新数据数据再更新redis (最常用)问题补救操作三、通过消费消息中间件前言Redis是缓存,倾向于稍微的有时差,数据不一致。所有我们要保证数据的准确性牺牲redis.一、先更新redis再更新数据库问题这种不建议使用,因为redis没法回滚会回导致redis数据不准确。二、先更新数据数据再更新redis (最常用)问题redis里面的数据会有时差,redis数据不一致。补救操作1、先删除redis,等数据库操作之后再添加r.

2021-04-02 18:55:54 173

原创 Redis做限流

流量限制锁: 我们用zset存储当前时间戳,只要总数量大于界限值就进行限流。 假设,限流1秒100次。具体步骤1、 删除大于当前时间1秒的数据。2、 判断剩下set的size是否大于100。大于就直接的返回限流。3、 不大于就插入当前时间戳到zset 中。如果使用的是redis集群就需要在限流前面加锁排他锁。代码public boolean isOverLimitRate(String key, int num, int second) { RedisCallback<Boo

2021-04-02 17:29:24 163

原创 redis穿透、 击穿、雪崩

redis并发问题1、redis穿透原因需要达到效果场景解决方法加锁过程流程击穿原因解决方法雪崩原因解决方法流量限制锁具体步骤:1、redis穿透原因穿透的意思,我们穿过redis直接查询数据库,发现数据库也没有值,透过redis和数据库。需要达到效果发现数据没有值的时候我们就不要再查数据,拦截这种无效的请求,给数据库带来的压力。场景1、 你不知道请求是不是并发。2、 保证DB的压力,进行有效的响应。解决方法1、使用布隆过滤器,初始化所有key到redis中。(相对复杂点)2、我们加锁

2021-04-02 16:52:50 177

原创 redis是单线程还是多线程

无论能版本,工作线程都是但线程6.X高版本出现IO的多线程内核事情,从内核中吧数据搬运到程序,然后把搬运过来的数据做计算单线程满足redis的串行原子,IO多线程,把输入/输出进行多线程并行,这样可以缩短执行时间,更好的压缩系统和硬件资源(网卡的利用率更高)。多线程并行的顺序,在一个连接中通过socket保证。单线程IO多线程...

2021-04-01 21:31:11 212

原创 redis的应用场景

a) 五大数据类型:string、list、hash、set、zset有序。有序的zset,可以做限流,排序。参考b) 只是做缓存。不做持久化的,数据可能会丢失,数据不安全。c) 服务的无状态。锁的添加,如果单机就需要单机锁,多机就需要分布式锁。d) 无锁化。...

2021-04-01 21:04:19 79

原创 Mysql 主从同步延迟分析

起源Mysql的主从复制都是单线程的操作,主库对所有ddl和dml产生的日志写进binlog,由于binlog是顺序写,所有效率很高,slave的sql thread线程将主库的ddl、dml操作事件在slave重放。DDL和DML的操作是随机的,不是顺序,所有成本很高。另一方便,由于sql thread 是单线程的,当主库并发较高时,产生的DML数量超过slave的sql thread处理的速度,或者当slave中有大型query语句产生锁等待,那么延时就会产生了。解决方案:1、 业务的持久层的实现

2021-03-31 21:39:45 73

原创 mysql面试问题总结

面试过程中mysql 问题我列了一下。mysql实现中MVCC简介数据库的事务特性mysql数据库幻读mysql join原理mysql 索引失效mysql引擎Innodb和MyISAM的区别聚簇索引和非聚簇索引mysql引擎innodb的B+树分布式数据库同步mysql sql执行原理...

2021-03-31 21:15:17 144

原创 mysql sql执行原理

AST抽象树

2021-03-31 20:49:33 109

原创 分布式数据库同步

分布式部署时数据库之间的数据同步数据的同步原理就是同步binlog日志到需要复制的其他的数据库上,其他数据库根据binlog日志里面的ddl和dml语句,执行该语句同步到当前数据库,就能保证多个数据库的数据的一致性。Binlog日志主要是的数据库执行的ddl、dml语句执行的日志。Relaylog 主要是来同步其他数据binlog,之所以需要,因为ddl、dml的执行的速度比读取binlog的数据慢,要保证的数据一致性,我们就需要先存在relaylog中。在本库中读取执行ddl、dml语句,就是通信中

2021-03-31 20:44:29 1521 1

统计的省市区街道居委数据

2021年最新数据

2022-07-05

typora-setup-ia32_0.9.78.exe

typora,读取.md文件

2021-04-01

kubernetes-1.14.tar

kubernetes-1.14

2021-03-31

jsp学习项目

<title>My JSP 'a.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->

2014-05-22

空空如也

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

TA关注的人

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