自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (20)
  • 收藏
  • 关注

原创 Redis Cluster集群模式学习

集群模式:每个节点主数据不同,是数据的子集;,在发送心跳包时用char进行bitmap压缩后是2k大小(2×(8bit)×1024(1k)=16k)在Redis 集群中槽分配的元数据会不间断的在Redis集群中分发,以保证所有节点都知道槽的分配情况。通常我们不会部署超过10000个Redis主节点,因此16384就够用了。哨兵模式:每个节点持有全量数据,且数据保持一致,为系统Redis高可用。集群构建命令,在任何一个节点上创建集群。Redis Cluster集群模式。为什么是16384?

2024-01-01 16:44:23 516 1

原创 从仿写持久层框架到MyBatis核心源码阅读

MyBatis的真正强大在于它的语句映射,这是它的魔力所在,由于它的异常强大,映射器的XML文件就显得相对简单。数据处理层:主要负责SQL的 查询、解析、执行以及结果映射的处理,主要作用解析SQL根据调用请求完成一次数据库操作。BaseExecutor:基础执行器,封装了子类的公共方法及公共变量,包括一级缓存、延迟加载、回滚、关闭等功能;借助功能强大的基于OGNL的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类。,每次编译完成的Statement 都会进行缓存,不会关闭;

2023-12-31 17:50:14 1754 2

原创 仿照MyBatis手写一个持久层框架学习

仿照MyBatis手写一个持久层框架学习

2023-12-10 23:42:50 180

原创 RocketMQ如何保证消息被有序消费

并发消费模式生产者会将消息轮询发送到不同的队列当中,这些队列会和消费者实例建立多个连接(线程),将消息并发送入到不同的消费者,因为消费者处理速度有快慢,所以并不能保证物流数据会按1~9的顺序依次消费。有序消息是指生产者在产生数据的时候,根据Hash规则指定让消息放入哪个队列,在消费者消费时会保证不同消费者针对每一个队列只有唯一的连接(线程)用于消费指定队列。当同一类消息被送入不同队列,且这些消息在处理上并不需要按时序消费时,可以考虑使用并发消费模式。有序消费模式可以保证消息按队列。

2023-10-24 23:53:59 322

原创 Seata学习

注:如果你查询的业务的接口没有@GlobalTransactional 包裹,也就是这个方法上压根没有分布式事务的需求,这时你可以在方法上标注@GlobalLock+@Transactional 注解,并且在查询语句上加 for update。如果你查询的接口在事务链路上外层有@GlobalTransactional注解,那么你查询的语句只要加for update就行。设计这个注解的原因是在没有这个注解之前,需要查询分布式事务读已提交的数据,但业务本身不需要分布式事务。操作出现异常,全局回滚。

2023-10-22 22:47:47 322

原创 Redis-Sentinel高可用架构学习

当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。当Master被Sentinel标记为客观下线时,Sentinel 向下线的 Master 的所有Slave发送 INFO命令的频率会从10秒一次改为每秒一次。Redis-Sentinel高可用架构。

2023-10-21 00:16:16 511

原创 MySQL高可用架构学习

MHA(Master HA)是一款开源的由Perl语言开发的MySQL高可用架构方案。MHA在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的 master 节点,在此期间,MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA 还提供了 master 节点的在线切换功能,即按需切换 master / slave 节点。所有从属服务器日志与主服务器保持同步。VIP虚拟IP漂移,将原有的VIP指向新的主服务器。转移过程:保证所有从属服务器之间数据是一致的。

2023-10-19 23:10:16 1141

原创 MySQL锁学习笔记

锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样很重要。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。为保证数据的一致性,需要对并发操作进行控制,因此产生了锁。

2023-10-16 23:09:35 469

原创 RestTemplate发送HTTPS请求

RestTemplate发送HTTPS请求。

2023-09-20 19:19:26 820

原创 自制centos7.9的wsl发行版

执行完后目录会出现ext4.vhdx文件,同时文件资源管理器会出现Linux,点击进去会有个centos目录。执行完成可以看到根目录下生成了centos.tar文件,这里我通过FileZilla工具下载下来。如果过程中涉及更新,则按照网址提示,下载wsl_update_x64.msi进行更新。我在E盘创建了OS/CentOS两个目录,并将centos.tar文件放到目录下。下载完成后先安装虚拟机,这里采用Hyper-v虚拟机,按照参考文档进行安装。此时进入了CentOS系统。安装完成后,准备制作发行版。

2023-08-31 21:33:02 445

原创 开发者本地搭建性能监测工具(Windows)

SkyWalking 9.5.0 版本下载:https://dlcdn.apache.org/skywalking/9.5.0/apache-skywalking-apm-9.5.0.tar.gz。Oracle JDK 官方下载:https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe。SkyWalking官网:https://skywalking.apache.org/访问:http://localhost:8888/

2023-08-17 00:02:59 298

原创 ElasticSearch 8.9.0 开发模式安装

MacOS(Apple芯片):https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-darwin-aarch64.tar.gz。官方提供版本与JDK支持关系:https://www.elastic.co/cn/support/matrix#matrix_jvm。安装教程参考:https://es-cn.blog.csdn.net/article/details/123936913。

2023-08-14 23:50:45 1421

原创 L4与L7负载均衡器选型

负载均衡,英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行。负载均衡会对外部展现一个虚拟的服务器地址,当用户试图连接时,它会将连接通过双向网络地址转换(NAT)转到最适合的真实服务器上,以完成用户的请求。

2023-07-27 20:23:31 413

原创 Filebeat学习笔记

Filebeat是一种轻量级日志采集器,内置有多种模块(auditd、Apache、Nginx、System、MySQL等),针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可。之所以能实现这一点,是因为它将自动默认路径(因操作系统而异)与Elasticsearch采集节点管道的定义和Kibana仪表板组合在一起。不仅如此,数个Filebeat模块还包括预配置的 Machine Learning 任务。另一点需要声明的是:根据采集的数据形式不同,形成了由多个模块组成的Beats。

2023-07-26 23:03:53 300

原创 MySQL数据库服务器的优化步骤

我们可以通过观察了解数据库整体的运行状态,通过性能分析工具可以让我们了解执行慢的 SQL 都有哪些,查看具体的 SQL 执行计划,甚至是 SQL 执行中的每一步的成本代价,这样才能定位问题所在,找到了问题,再采取相应的行动。如果 A2 和 A3 都不能解决问题,我们需要考虑数据库自身的 SQL 查询性能是否已经达到了瓶颈,如果确认没有达到性能瓶颈,就需要重新检查,重复以上的步骤。字母S的部分代表观察(会使用相应的分析工具),字母A代表的部分是行动(对应分析可以采取的行动)。在数据库调优中,我们的目标就是。

2023-01-02 11:35:58 475

原创 MySQL索引的设计原则

为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引。索引设计不合理或者缺少索引都会对数据库和应用程序的性能造成障碍。高效的索引对于获得良好的性能非常重要。设计索引时,应该考虑相应准则。

2023-01-01 20:37:13 663

原创 SPI示例学习

服务发现机制:通过在ClassPath路径下的META-INFO/services文件夹中查找文件,并自动加载文件里所定义的类。SPI机制能够使接口与具体的实现类解耦,可以根据实际的业务情况启用或替换具体组件。

2022-10-25 23:53:21 581

原创 Spring Validation使用指南

Bean Validation 中constraints。Spring Validation使用指南。

2022-10-05 16:12:23 1342

原创 本地缓存组件

GuavaCache 并不保证在过期时间到了之后立刻删除该 Key,如果你此时去访问了这个 Key,它会检测是不是已经过期,过期就删除它,所以过期时间到了之后你去访问这个 Key 会显示这个 Key 已经被删除,但是如果你不做任何操作,那么在 时间 到了之后也许这个 Key 还在内存中。默认情况下,对每个不在缓存中的键,getAll方法会单独调用CacheLoader.load来加载缓存项。返回的映射包含已缓存的条目,以及新加载的条目;返回与此缓存中的键关联的值,如果没有键的缓存值,则返回null。

2022-09-23 00:08:35 275

原创 Ribbon学习

Ribbon学习什么是Ribbon?Spring Cloud Ribbon是基于Netflix Ribbon实现的一套,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也可以实现我们自己的负载均衡算法。客户端的负载均衡例如spring cloud中的Ribbon,客户端会有一个服务器地址列表,在发送请求前通过负载均衡新算法选择一个服务器,然后进行访问,这是客户端负载均衡;

2022-08-23 23:28:04 172

原创 Nacos学习

服务注册:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请肯求后,就会把这些元数据信息存储在一个双层的内存Map中。服务心跳:在服务注册后,Nacos Client会维护一个定时心跳来持续通知NacosS Server,说明服务一直处于可用状态,防止被剔除。默认**5s**发送一次心跳。服务同步:Nacos Server集群之间会互相同步服务实例,用来保证服务信息的一致性。..

2022-08-22 23:56:11 754

原创 Spring Cloud Gateway学习

自定义路由断言工厂需要继承AbstractRoutePredicateFactory类,重写apply方法的逻辑,在apply方法中可以通过exchange.getRequest()拿到ServletHttpRequest对象,从而可以获取到请求的参数、请求方式、请求头等信息。必须Spring组件Bean类必须加上作为结尾必须继承AbstractRoutePredicateFactory类必须在类中实现一个静态内部类,声明属性来接收配置文件中对应的断言信息。

2022-08-15 23:25:18 526 1

原创 Sentinel基础学习

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。..................

2022-08-11 23:31:13 443

原创 Hystrix学习

降级是指,当请求超时、资源不足等情况发生时进行服务降级处理,不调用真实服务逻辑,而是快速失败直接返回托底数据,保证服务链条的完整,避免服务雪崩。解决服务雪崩效应,都是避免客户端请求服务端时,出现服务调用错误或网络问题。所有的处理手法都是在客户端中实现。超时降级、资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据。保证服务出现问题整个项目还可以继续运行。本文示例是在OpenFeign教程上做修改,链接地址:https://blog.csdn.net/liwenyang1992/article/

2022-08-09 22:28:16 557

原创 OpenFeign学习

OpenFeign是Spring Cloud的一个声明性HTTP客户端(出自于Netflix的Feign),它简化了我们与其他服务交互的方式。Spring Cloud对OpenFeign进行了增强,使得Spring Cloud OpenFeign支持Spring MVC注解。同时,Spring Cloud整合了Ribbon和 Eureka注册中心(Nacos也可以),这让 Spring Cloud OpenFeign的使用更加方便。.........

2022-08-04 21:44:20 397

原创 Canal学习

Canal数据异构 Kafka Redis MySQL

2022-07-10 21:57:46 554

原创 CompletableFuture常用方法(基于Java8)

CompletableFuture

2022-04-21 23:31:58 766

原创 MongoDB基本操作

MongoDB基本操作插入文档建立集合如果该集合当前不存在,则插入操作将创建该集合。db.<集合>.insertOne(<JSON对象>) 将单个文档插入集合中。> db.user.insertOne({name:"张三",age:NumberInt(18)});{ "acknowledged" : true, "insertedId" : ObjectId("61ef68

2022-01-25 20:10:28 2239

原创 Redis操作工具类

核心Redis操作工具类RedisOperateUtil如下,主要包括Redis键(Key)、字符串(String)、哈希(Hash)、列表(List)、集合(Set)等常用的操作。

2022-01-18 23:51:34 9303

原创 Kafka 2.8.0 学习

Kafka基础知识,Kafka-Client的使用,Spring Boot 整合Kafka

2021-12-06 23:06:58 1630

原创 CentOS 7.X 常用软件安装

CentOS 7.X 常用软件安装Windows10支持Hyper-V虚拟机,我们可以在Hyper-V安装CentOS 7.X系统来学习。Hyper-V简介:https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/about/CentOS-7-x86_64-Minimal-2009.iso系统文件下载:http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/安装好后分配局

2021-12-05 00:21:48 590

原创 单元测试Mock工具TestableMock使用

TestableMock Mock工具使用SpringBoot单元测试H2数据库单元测试Junit

2021-12-01 20:59:35 2813

原创 Windows10本地数据库搭建(MySQL、PostgreSQL)

MySQL环境搭建MySQL Community Server (Archived Versions)版本:5.7.35下载链接:https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.35-winx64.zip解压,修改目录名为MySQL,修改环境变量:环境变量–>添加或更新系统变量,变量名:MYSQL_HOME;变量值:(根据实际情况填写,例如,D:\Program Files\MySQL)在Path变量值后加入:%MYSQL_HOME

2021-11-24 13:58:06 1991

原创 QLExpress入门学习

QLExpressgithub地址:https://github.com/alibaba/QLExpress推荐博文:https://blog.csdn.net/YuYunTan/article/details/101436910本文通过规则引擎实现用户输入规则,根据用户规则过滤出用户想要的数据。数据库初始化,创建testdb数据库:DROP TABLE IF EXISTS book_info_t;CREATE TABLE book_info_t ( book_id INT PRIMARY

2021-11-03 22:15:24 2355

原创 Idea编译器Spring Profile与Maven Profile联动

Idea工具使用Maven多Profile运行示例如下:SpringBoot在两个Profile下分别连接两个不同的数据库PostgreSQL和MySQLMaven在两个Profile下分别依赖PostgreSQL和MySQL的驱动数据库及数据准备见:https://blog.csdn.net/liwenyang1992/article/details/120311490application.properties文件如下:使用@变量@作为配置占位符#业务变量,观察打包是否被替换busines

2021-10-18 23:25:33 293

原创 SpringBoot 2 MyBatis Druid 多数据源(二)

SpringBoot 2 MyBatis Druid 多数据源(二)建库建表等准备请看:https://blog.csdn.net/liwenyang1992/article/details/120311490Druid使用文档:https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 (关注 32. 如何在 Spring Boot 中配置数据库密码加密?)Druid加密指导:https://github.co

2021-09-17 15:10:37 211

原创 由浅入深全面解析ThreadLocal

由浅入深全面解析ThreadLocalThreadLocal类用来提供线程内部的局部变量。这种变量在对线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。ThreadLocal的作用是:提供线程内的局部变量,不同线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。线程并发:多线程并发的场景下传递

2021-09-15 23:38:59 109

原创 SpringBoot多数据源动态切换,不影响业务逻辑正常运行,服务高可用

SpringBoot多数据源动态切换,不影响业务逻辑正常运行,服务高可用本文使用Spring Boot 2.4.10版本和MyBatis实现多数据源动态切换,当主库MySQL宕机后自动切换到容灾PostgreSQL数据库。数据库及数据表示例如下:MySQL数据库(主库):创建goodsdb数据库,创建book_t数据表并初始化数据。DROP TABLE IF EXISTS book_t;CREATE TABLE book_t ( book_id INT PRIMARY KEY AUTO_IN

2021-09-15 16:30:51 1427 4

原创 PostgreSQL JSON 学习

创建示例表:DROP TABLE IF EXISTS book_info_t;CREATE TABLE book_info_t( id serial PRIMARY KEY, book_name VARCHAR(128), book_price NUMERIC(5,2), book_chapters JSONB, create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP);-- 表描述信息COMMENT ON TABLE book_

2021-08-11 22:33:01 103

转载 ABAC权限控制学习

ABAC模型什么是ABAC模式?ABAC是基于属性的访问控制,可以使用主体、客体或动作的属性,而不是字符串本身来控制访问。 您之前可能就已经听过 XACML ,是一个复杂的 ABAC 访问控制语言。 与XACML相比,Casbin的ABAC非常简单:在ABAC中,可以使用struct(或基于编程语言的类实例) 而不是字符串来表示模型元素。例如,ABAC的官方实例如下:[request_definition]r = sub, obj, act[policy_definition]p = sub

2021-08-05 13:50:51 1996

Redis Cluster集群模式学习

Redis Cluster集群模式学习

2024-01-01

MyBatis3.5.15源码阅读注释

MyBatis3.5.15源码阅读注释

2023-12-31

仿照MyBatis手写一个持久层框架对应源码

仿照MyBatis手写一个持久层框架对应源码,适用于文档学习下载使用

2023-12-10

Redis-Sentinel高可用架构学习

Redis-Sentinel高可用架构学习

2023-10-21

skywalking-demo

SkyWalking学习资料示例

2023-08-20

springboot-cache.zip

Spring Cache 学习示例源码

2021-07-10

SpringBoot学习材料.pdf.zip

SpringBoot学习材料.pdf.zip

2021-07-05

org.eclipse.jface.text_3.16.200.v20200218-0828.jar

org.eclipse.jface.text_3.16.200.v20200218-0828 Eclipse自动补全插件(去除空格、等号、分号)

2020-03-24

org.eclipse.jface.text_3.16.100.v20191203-1634.jar

Eclipse自动补全插件(去除空格、等号、分号)org.eclipse.jface.text_3.16.100.v20191203-1634.jar

2020-03-15

org.eclipse.jface.text_3.15.300.v20190819-0725.jar

Eclipse自动补全插件(去除空格、等号、分号)org.eclipse.jface.text_3.15.300.v20190819-0725.jar Eclipse Version: 2019-09 (4.13)

2019-10-02

Spring Boot 2 Maven 模板

Spring Boot 2 Maven 模板,用于学习

2019-05-29

MyBatis Generator 逆向工程

MyBatis Generator 逆向工程示例代码,使用PostgreSQL数据库,内部包含使用说明。

2019-03-13

GDAL和OGR资料

OGR是一个读取和处理GIS矢量数据的开源代码库。它可以读取和处理多种流行的矢量数据(如ESRI的Shapefile、S-57、SDTS、PostGIS、Oracle Spatial、以及Mapinfo的mid/mif和TAB格式),本文将讲解OGR库的安装、OGR的数据模型以及主要类的函数功能,最后将通过几个实例具体的讲述如何调用OGR的函数来满足我们的需求。 (网上找到的,感觉挺不错的,就和大家共享一下资源)

2014-07-30

CSV文件转换shapefile文件的源代码(C++版)

CSV转换成空间数据格式(shapefile)的工具的源代码。 QT(C++)结合GDAL/OGR库编写,里面含有vs2010编译好的GDAL库,图形化界面。

2014-07-30

Java Web注册登录模板

一个利用postgresql数据库和Java web技术结合的登陆注册模板,里面有详细的步骤。环境是jdk1.7及以上,IDE是MyEclipse,服务器是tomcat 7.0。 内含详细的说明文档。

2014-04-26

摄影测量前方交会源码C++

MFC界面,用vc++编写,摄影测量学前方交会源代码

2014-03-31

ArcGIS10.0安装及破解

ArcGIS 10.0软件的安装和破解教程,里面附有注册机和其他资源,很容易破解。(只适用学习,请支持正版)

2013-12-09

空间分析最小凸包算法

一个由MFC编写的最小凸包的算法,图形界面,可以加深对空间分析中最小凸包的理解。

2013-11-28

教学管理系统

一个教学管理系统的C++程序。可作为课程设计的成果。也是一个很好的学生管理系统。

2013-07-01

角度转换,度分秒-->度,度-->度分秒

一个好用的角度转换软件,用MFC做的。可以在度分秒-->度,度-->度分秒之间进行角度转换,release形式的,可以直接运行,不用安装vc和vs。

2013-06-02

Visual Assist X 1929破解版

Visual Assist X是一款非常好的Microsoft Visual Studio插件,可以支持VC++6.0,Microsoft Visual Studio 2003,Microsoft Visual Studio 2005,Visual Studio 2008,Microsoft Visual Studio 2010,支持C/C++,C#,ASP,VisualBasic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等,有助于提高开发过程的自动化和开发效率。

2013-04-21

学生管理系统

一个简单的学生信息管理系统(含有源码),帮助初学者了解学生管理系统的简单制作!

2012-11-27

VS2008学习版

一个很好的web开发工具 很适用于新手,安装简单。

2012-09-30

VS2008C#学习版

一个很好的C#开发软件。适用于新手及学生在学习过程中使用。

2012-09-30

VS2008C++速成版

VS2008C++学习版 很适合新手使用 不是很大 在线安装!

2012-09-29

空空如也

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

TA关注的人

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