- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 Redis持久化方案RDB和AOF
当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。其实就是将存储在内存中的数据以文件的形式存储在硬盘上的。Everysec策略的同步操作是通过后台I/O线程进行的,由于是在子线程中进行,所以主线程并不会被阻塞,可以继续服务新的请求,但是内存和硬盘中的数据会有1秒的差别(不一定精准),这是一种折衷的方案,寻求了一个平衡。Always策略的同步操作是在主进程的主线程中进行的,由于fsync的阻塞特性,会导致其挂起,在此期间无法服务新的请求,因而吞吐量下降,但确实能够保证内存和硬盘中数据的一致性。
2024-01-19 15:14:37 943
原创 搭建Windows版Redis集群
Redis集群的安装1.构建集群节点目录创建一个redis-cluster目录用于存放集群节点拷贝开始下载的redis解压后的目录,并修改文件名(比如按集群下redis端口命名)如:在每个集群节点目录下创建文件start.bat(注意不同的端口号),可以直接执行此脚本启动redis
2024-01-09 16:40:03 1128 1
原创 用雪花算法生成全局唯一序列
通过以上原理,雪花算法可以在分布式环境中生成大量唯一ID,并且保证ID的有序性和唯一性。最后,将时间戳、工作节点ID和序列号进行位运算和组合,生成最终的唯一ID。生成ID的过程可以保证在相同毫秒内、相同工作节点和序列号的情况下生成的ID是唯一的。雪花算法是一种分布式唯一ID生成算法,通过对时间戳、工作节点ID和序列号进行位运算和组合,生成一个可排序且唯一的64位ID。在算法中,我们使用一个64位的long型变量来表示生成的唯一ID。
2024-01-04 15:58:01 547
原创 用Redis实现全局唯一ID
序列号:32bit,秒内的计数器,支持每秒产生2^32个不同ID。时间戳:31bit,以秒为单位,可以使用69年。符号位:1bit,永远为0。
2024-01-02 17:42:51 587
原创 CentOS防火墙操作开放端口
--add-port=xxx/tcp #添加端口,格式为:端口/通讯协议。 --permanent #永久生效,没有此参数重启后失效。 --zone #作用域。查看防火墙某个端口是否开放。
2023-12-20 09:40:29 790
原创 Fastjson反序列化远程代码执行漏洞
5月23日,绿盟科技CERT监测到Fastjson官方发布公告称在1.2.80及以下版本中存在新的反序列化风险,在特定条件下可绕过默认autoType关闭限制,从而反序列化有安全风险的类,攻击者利用该漏洞可实现在目标机器上的远程代码执行。参考链接:https://github.com/alibaba/fastjson/wiki/security_update_20220523影响范围受影响版本Fastjson ≤ 1.2.80解决方案升级到最新版本1.2.83下载链接:https://.
2022-05-24 11:01:13 564 3
转载 IDEA热部署JRebel安装教程
JRebel简介 JRebel是一款实现热部署的开发工具,它可以允许你在启动程序时修改java代码直接进行编译生效,无须手动重启。热部署的实现会为你节省了大量重启时间,明显提高个人开发效率。安装JReable同其它插件安装一样,请按照以下步骤先行按照插件File ——> Settings… ——> Plugins ——> Marketplace ——> 在搜索框中输入jrebel
2022-04-14 10:09:01 5309 1
原创 远程调用Feign
什么是FeignFeign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。集成Feign在服务中添加依赖<!--fegin组件--> <dependency> <groupId>org.springframework.
2021-04-22 19:06:27 534
原创 远程调用负载均衡 Ribbon
什么是负载均衡通俗的讲, 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。根据负载均衡发生位置的不同,一般分为服务端负载均衡和客户端负载均衡。服务端负载均衡指的是发生在服务提供者一方,比如常见的Nginx负载均衡而客户端负载均衡指的是发生在服务请求的一方,也就是在发送请求之前已经选好了由哪个实例处理请求。我们在微服务调用关系中一般会选择客户端负载均衡,也就是在服务调用的一方来决定服务由哪个提供者执行。什么是RibbonRibbon是Netflix发布的开源
2021-04-22 09:20:49 306 1
原创 服务治理 Nacos Discovery
什么是服务治理服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。**服务注册:**在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服务的详细信息。并在注册中心形成一张服务的清单,服务注册中心需要以心跳的方式去监测清单中的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务。**服务发现:**服务调用方向服务注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务实例的访问。通过上面的调用图会发现,除了微服务,还有一个组件是服务注册中心
2021-04-20 11:39:45 239
转载 Redis的高可用、高并发、高性能
高性能,指的是查询快redis是c语言实现,与其他语言相比,在实现语言层面性能高;redis是内存数据库,而传统的关系型数据库是磁盘文件读写,所以redis读写快;单线程,无上下文切换损耗,也不需要线程间同步,在单核cpu上,性能高,如果服务器是多核cpu,可以开启多个进程的单线程redis实例;基于以上原因,才达到了官网所说的,即使pc都支持QPS>10w/s的查询。高可用(High Availability)高可用指的是在节点故障时,服务仍然能正常运行或者进行降级后提供部分服务;单点r
2020-09-13 20:11:00 220
转载 SpringMVC 中 @ControllerAdvice 注解的三种使用场景
SpringMVC 中 @ControllerAdvice 注解的三种使用场景@ControllerAdvice ,很多初学者可能都没有听说过这个注解,实际上,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller。使用这个 Controller ,可以实现三个方面的功能:全局异常处理全局数据绑定全局数据预处理灵活使用这三个功能,可以帮助我们简化很多工作,需要注意的是,这是 SpringMVC 提供的功能,在 Spring Boot 中可以直接使用,下面分别来看。全局异常处理
2020-08-29 20:31:28 187
原创 SpringCloud-服务熔断与降级Hystrix
熔断与降价概念什么是熔断熔断器(CircuitBreaker),英文是CircuitBreaker,软件设计中的熔断器模式实现,思路是用一个函数调用在断路器保护对象,对故障监控。失败达到一定阈值后,断路器工作,接口调用返回一个错误,以达到保护系统,预防线程资源被大量占用,造成系统雪崩的情况生活中的案例生活中每家每户都在用电,小明家的电线因为故障导致了小明家停电了。而小李、小张家的电是正常使用的。电力公司没有因为小明家有故障线路而停掉其他人家的电,同时小明家没有使用有故障的电路的电。这时即为熔断。熔
2020-08-12 20:20:29 341
原创 SpringCloud-服务注册Eureka
什么是Spring Cloud Eureka?Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能。Spring Cloud Eureka 是一个基于 REST 的服务,并且提供了基于 Java 的客户端组件,能够非常方便地将服务注册到 Spring Cloud Eureka 中进行统一管理。为什么需要注册中心注册中心的作用微服务应用和机器越来越多,调
2020-08-10 19:17:48 216
原创 SpringCloud-分布式概念
分布式概念什么是微服务简单来说,微服务架构风格[1]是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。文档: https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa中文翻译: http
2020-08-10 15:26:03 306
原创 消息中间件-RocketMQ
消息中间件-RocketMQ简介阿里巴巴双十一官方指定消息产品,支撑阿里巴巴集团所有的消息服务,历经十余年高可用与高可靠的严苛考验,是阿里巴巴交易链路的核心产品;服务可用性 99.95%,Region 化、多可用区、分布式集群化部署,确保服务高可用,即便整个机房不可用仍可正常提供消息服务;数据可靠性 99.99999999%,同步双写、超三副本数据冗余与快速切换技术确保数据可靠;使用场景异步解耦向上面的假设每次发送请求的处理时间都要50ms,在没有任何优化的情况就要150ms。如果不用消息中
2020-08-09 08:57:33 895
原创 Elasticsearch搜索服务器
Elasticsearch简介Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。1>基于Apache Lucene 构建的开源搜索引擎2>才有java编写的,提供简单易用的RESTFul API3>轻松的横向
2020-07-27 17:21:43 454
原创 Vue入门
Vue了解Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。官网:https://cn.vuejs.org/先建一个HelloWord玩玩下载vue.jshttps://cdn.jsdelivr.net/npm/vue/dist/vue.js创建一个静态项目把下载好的v
2020-07-11 17:41:58 526
原创 Redis基础-Spring集成
RedisRedis介绍NoSQL和关系型数据库的区别在关系型数据库数据都是存放在表中,有分类存放,连接查询,主键,外键等概念NoSQL泛指非关系型数据库,采用区别于关系型数据库的设计,主要是针对关系型数据库性能瓶颈来设计的,专门处理关系型数据库不擅长做的业务场景,不同的NoSQL针对的点不一样,大致分为以下几类:键值存储: Redis 多用于项目的高速缓存文档存储: MongoDB 广泛用于社交类应用文件存储: FastDFS 多用于以文件为载体的在线服务,如相册网站/视频网站等等
2020-07-09 23:09:38 232
原创 MongoDB基础-集成Spring Boot
聚合操作什么是Mongodb聚合框架?MongoDB聚合框架(Aggregation Framewordk) 是一个计算框架,他可以作用在一个或多个集合中,对集合中的数据进行一系列运算。将这些数据转化为期望的形式。从效果而言, 聚合框架相当于SQL查询中 Group by left join原理管道(Pipeline) 与 步骤(Stage)整个聚合运算工程称之为管道, 它是由多个步骤组成每个管道:1:接收一系列文档(原始数据)2:每一个步骤对这些文档进行一系列运算3:结果文档输出
2020-07-08 20:38:32 281
原创 MongoDB基础
MongoDB简介MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。特点高
2020-07-06 23:32:48 253
原创 git-版本控制
版本控制在公司中,一般以团队的形式进行项目的开发。在一个团队中,每一个团队成员都需要一份相同的代码,而大家又都基于这份代码去开发着不同的功能,过程中就会产生相当多的问题,针对这些问题,我们可以采用版本控制的方式来解决,也因此诞生了很多的版本控制工具,如市面上比较常见的 cvs/svn/git 等等版本控制概述版本控制: 版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化过程,以便将来查阅特定版本修订情况的系统。
2020-07-05 15:54:32 339
原创 RESTful风格
先了解一下API和前后端分离什么是API(应用程序编程接口)API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科说人话就是研发人员A开发了软件A,研发人员B正在研发软件B。有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?研发人员A想了一个好主意:我
2020-07-04 09:02:04 240
原创 JavaConfig常用注解用法汇总
目录JavaConfigJavaConfig注解用法汇总JavaConfig配置IoC/DI@Configuration@Bean@Scope@ComponentScan实例@Controller 控制器(注入服务)@Service 服务(注入dao)@Repository (实现dao访问)@ComponentJavaConfig配置导入@Import@ImportResource@PropertySource@Value@ConfigurationProperties案例JavaConfig我们通
2020-07-02 17:40:09 1562
原创 SpringBoot 二次总结补充
SpringBoot的常用组件Springboot提供了非常多以spring-boot-starter-*开头的开箱即用的工具包,常见工具包有以下一些:组件说明spring-boot-starter核心的工具包,提供了自动配置的支持,日志和YAML配置支持spring-boot-starter-activemq针对快速集成ActiveMQ的工具包spring-boot-starter-aop提供了快速集成SpringAOP和AspectJ的工具包spring-
2020-07-02 14:41:23 149
原创 PicGo + gitee 免费搭建个人图床工具
使用gitee搭建免费的图床之前自己在GitHub上搭建过一个GitHub Page ,里面可以上传图片并且图片也可以访问,这不是很好的图床吗,可以使用GitHub提供的地址在线访问图片,这不就解决了免费的图床问题了。但是在经过几日的观察,Github page上的图片在线访问加载还是有点慢,就想到了Gitee(码云),是不是可以用他搭建一个免费的图床,托管我的图片呢?也是查了好多的方法最后觉得还是这个简单方便。准备工作首先要有一个gitee帐户下载picGo图床并安装,下载地址:https://
2020-06-09 22:33:32 2956 5
原创 SpringBoot快速入门
文章目录SpringBoot介绍优缺点SpringBoot快速入门方式1:使用idea创建SpringBoot工程方式2:创建普通Maven工程案例分析父工程坐标web启动器傻瓜式配置的工具包独立运行SpringBoot基本使用Springboot应用的基本结构Springboot应用的热部署SpringBoot参数配置参数来源单个获取参数批量参数获取设置bannerSpringBoot的web开发静态资源FreeMarker集成访问异常静态页面方式统一异常类处理方式:集成druid集成mybatis事务控
2020-06-01 22:12:07 711
原创 Shiro 介绍 + MD5 加密
什么是 Apache Shiro?Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。Shiro 能做什么事情?Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环
2020-05-20 21:07:24 661
原创 Bootstrap-Validator验证插件/异常统一处理
Bootstrap-Validator验证插件在做web项目的时候,表单数据验证是再常见不过的需求了,友好的错误提示能增加用户体验,提高程序稳定性。相关的文档:http://bootstrapvalidator.votintsev.ru/getting-started/https://www.cnblogs.com/landeanfen/p/5035608.htmlhttps://www.cnblogs.com/mzqworld/articles/9068430.html引入插件<!
2020-05-17 11:34:57 405 1
原创 SpringMVC集成FreeMark/PageHelper分页插件/Bootstrap前端框架 的入门用法
FreeMarker一种基于模板和数据,用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具,对比 JSP 而言,FreeMarker 性能更好,渲染速度更快。它也可以用于非Web应用环境中。SpringMVC集成Freemarker添加依赖 <!-- freemarker --><dependency> <groupId>org.freemarker</groupId> <artifactId>fre
2020-05-15 23:49:47 507 1
原创 JQuery02-JSON和AJAX的使用
JSON定义JSON(JavaScript Object Notation, JS 对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的 JS 规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。格式JSON 就是一种有格式的字符串。任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。规则如下:映射用冒号(“:”)表示。”名称” : 值,标准格式名称用双引号括起来;并
2020-05-10 22:41:20 1040 1
原创 jQuery01-jQuery的简单使用
jQuery简介jQuery 是一个优秀的 Javascript 框架。是轻量级的 JS 库 ,它兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 是免费、开源的。兼容多浏览器的 Javascript 库,核心理念是 write less,do more(写得更少,做得更多)。版本介绍jQuery1.x:经典版本,兼容 IE6,7,8。jQuery2.0:改进版本,及后续版本将不再支持 IE6,7,8 浏览器。jQuer
2020-05-09 00:05:57 291 1
原创 spring05-SSM集成
SSM集成作用及本质作用:在框架上基础上开发,发挥各个框架在各层的好处,提高开发效率。本质:Spring去集成Spring MVC和MyBatis,即控制器对象、业务对象、Mapper对象等都交由Spring容器管理,使用Spring IoC和DI来完成对象创建及其属性注入;使用 AOP 来配置事务;使用 Spring MVC 处理请求和响应。集成两个步骤Spring 集成 M...
2020-05-07 11:20:05 134 1
原创 spring04-Spring MVC
Spring Web框架介绍MVC思想JavaBean、JSP、Servlet,减少耦合,提高可维护性。Spring MVCServlet:Web 服务的模块,包含对 MVC 与 REST 的实现,Spring MVC。Web:提供与 Web 的集成,基于 Web 应用程序上下文。WebSocket:实现客户端与服务端主动通信。Portlet:提供了在 Portlet 环境中实现...
2020-04-30 22:58:50 292 1
原创 spring03-AOP思想和SSM集成
AOP思想和重要术语需求问题在开发中,为了给业务方法中增加日志记录,权限检查,事务控制等功能,此时我们需要去修改业务方法代码,考虑到代码的重用性,我们可以考虑使用OOP的继承或组合关系来消除重复,但是无论怎么样,我们都会在业务方法中纵向地增加这些功能方法的调用代码。此时,既不遵循开闭原则,也会为后期系统的维护带来很大的麻烦。(即不管怎样都得修改到原来的代码)为了解决该问题,OOP 思想是不...
2020-04-29 00:21:05 195 1
原创 spring02-注解配置和代理模式
注解配置为什么要使用注解配置完成 Ioc 和 DI?虽然xml配置形象,但是随着项目变大这样配置太过繁琐了,所以就有了ioc和DI思想,而这个思想是由Spring来实现的,在我们以后开发中,不再需要去配置一堆没有任何技术含量的bean,我们就需要在对应的字段上贴注解,让spring来帮我们完成对象的创建和注入DI 注解Spring的Autowire,JavaEE的Resource,两者作用...
2020-04-26 22:31:49 304 1
原创 spring01-介绍和IoC/DI思想
丑陋的代码代码耦合度高,不符合开闭原则控制事务繁琐,大量的重复代码分散不同类的不同方法中,不利于维护。第三方框架运用太麻烦,对使用者而言最关心的是获取到这个对象使用,而不关心这个对象创建。Spring介绍Spring定义源于 Rod Johnson 在其著作 《Expert one on one J2EE design and development》 中阐述的部分理念和原型衍生而...
2020-04-25 23:53:43 230 1
原创 MyBatis加强
Mapper 接口在使用Mapper接口时,如果写错了在编译时候就可以发现,原来那种方式命名空间很容易写错,参数也容易传错,对比来原来 DAO 接口,可以自己不写实现类。使用注意:类似之前的 DAO,在接口中定义 CRUD 等操作方法。Mapper组件 = Mapper接口 + Mapper XML文件接口的命名为实体名Mapper,一般和其对应 XML 文件放一起(只要编译之后字节...
2020-04-24 18:44:52 269 1
原创 Maven 项目的搭建
Maven项目结构Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 能提供一种项目的依赖配置,配置好的项目,Maven 能自动的从 Maven 的中央仓库中帮我们下载并管理项目依赖的 jar 包Maven的安装下载在安装前要检查安装的jdk版本,因为Maven 不同的版本对 JDK 是有要求的,具体请看官网。把下载下来的...
2020-04-20 20:58:01 281 1
原创 MySQL常用语法
数据库三范式和SQL分类三范式三范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。第一范式:是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值(一个列中只能存储一个值)第二范式:要求数据库表中的每个实例或行必须可以被惟一地区分(就是有主键)。第三范式:要求一个数据库表中不包含已在其它表中已包含的非主键段信息。SQL分类数据查询语言(DQL:Dat...
2020-04-19 22:04:33 226 1
rocketmq-console-ng-1.0.1.jar
2020-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人