- 博客(129)
- 收藏
- 关注
原创 Dubbo学习笔记
Dubbo简介Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC框架,可以和Spring框架无缝集成。 其中文官网:https://dubbo.gitbooks.io/dubbo-user-book/content/特性和用法架构节点角色说明节点角色说明Provider暴露服务的服务提供方Consumer调用远程服务的服务消费方Registry服务注册与发现的注册中心Moni
2024-07-18 10:29:04
533
原创 kafka学习笔记
Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基于zookeeper协 调的分布式日志系统(也可以当做MQ系统),常见可以用于webynginx日志、访问日志,消息服务等等,Linkedin于 2010年贡献给了Apache基会并成为顶级开源项目。主要应用场景是:日志收集系统和消息系统。以时间复杂度为O(1)的⽅式提供消息持久化能⼒,即使对TB级以上数据也能保证常数时间的访问性能。⾼吞吐率。
2024-07-18 10:28:25
1246
1
原创 MongoDB学习笔记
NoSQL=Not Only SQL,⽀持类似SQL的功能, 与Relational Database相辅相成。其性能较⾼,不使⽤SQL意味着没有结构化的存储要求(SQL为结构化的查询语句),没有约束之后架构更加灵活。NoSQL数据库四⼤家族 列存储 Hbase,键值(Key-Value)存储 Redis,图像存储 Neo4j,⽂档存储 MongoDBMongoDB 是⼀个基于分布式⽂件存储的数据库,由 C++ 编写,可以为 WEB 应⽤提供可扩展、⾼性能、易部署的数据存储解决⽅案。
2024-07-18 10:27:52
1567
原创 ZK学习笔记
zk源码下载地址:https://github.com/apache/zookeeper/tree/release-3.5.4注意:因为zk是由ant来构建的,所以需要使⽤ant命令来转换成⼯程,然后导⼊idea将准备好的zookeeper-release-3.5.4导⼊idea中基于Idea启动zookeeper源码。
2024-07-18 10:26:37
1075
原创 RocketMQ学习笔记
应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。流量削峰应用系统如果遇到系统请求流量的瞬间猛增,有可能会将系统压垮。有了消息队列可以将大量请求缓存起来,分散到很长一段时间处理,这样可以大大提到系统的稳定性和用户体验。举例:业务系统正常时段的QPS如果是1000,流量最高峰是10000,为了应对流量高峰配置高性能的服务器显然不划算,这时可以使用消息队列对
2024-07-18 10:25:41
1076
1
原创 redis学习笔记
在redis.conf可以配置save参数来控制多少秒内数据变了多少时触发快照。save 可以配置多个,是一个漏斗设计,这样可以提供更高的性能。
2024-07-18 10:24:36
1012
原创 RabbitMQ学习笔记
当前业界比较流行的开源消息中间件包括:ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等,其中应用最为广泛的要数RabbitMQ、RocketMQ、Kafka这三款。消息传输的可靠性:保证消息不会丢失。支持集群,包括横向扩展,单点故障都可以解决。性能要好,要能够满足业务的性能需求。RabbitMQ优点轻量级,快速,部署使用方便支持灵活的路由配置。RabbitMQ中,在生产者和队列之间有一个交换器模块。
2024-07-18 10:23:09
769
原创 Mysql学习笔记
一.Mysql原理1.1 架构MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。网络连接层客户端连接器(Client Connectors):提供与MySQL服务器建立的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、.NET等,它们通过各自API技术与MySQL建立连接服务层服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和缓存六个部分。连接池(
2024-01-31 15:01:26
1299
原创 RPC与Netty简介
RPC一.Socket介绍Socket概述Socket,套接字就是两台主机之间逻辑连接的端点。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议、本地主机的IP地址、本地进程的协议端口、远程主机的IP地址、远程进程的协议端口。Socket整体流程Socket编程主要涉及到客户端和服务端两个方
2022-04-22 11:33:52
1910
原创 Tomcat简介及优化思路
Tomcat简介及优化思路Tomcat 处理请求大致流程和架构请求流程1.HTTP服务器会把请求信息使⽤ServletRequest对象封装起来2.进⼀步去调⽤Servlet容器中某个具体的Servlet3.在 2中,Servlet容器拿到请求后,根据URL和Servlet的映射关系,找到相应的Servlet4.如果Servlet还没有被加载,就⽤反射机制创建这个Servlet,并调⽤Servlet的init⽅法来完成初始化5.接着调⽤这个具体Servlet的service⽅法来处理请求,
2021-11-16 14:48:19
489
原创 SpringBoot简介
SpringBoot第一部分 SpringBoot应用相关概念约定优于配置约定优于配置(Convention over Configuration),又称按约定编程,是一种软件设计规范。本质上是对系统、类库或框架中一些东西假定一个大众化合理的默认值(缺省值)。例如在模型中存在一个名为User的类,那么对应到数据库会存在一个名为user的表,此时无需做额外的配置,只有在偏离这个约定时才需要做相关的配置(例如你想将表名命名为t_user等非user时才需要写关于这个名字的配置)。如果所用工具的约定
2021-11-16 14:47:52
3139
原创 spring MVC简介
Spring MVC ⾼级框架第一部分 Spring MVC 的应用springmvc简介三层架构:在java开发中基本上都是B/S架构,即浏览器/服务器。系统标准的三层架构包括:表现层、业务层、持久层。表现层 :也就是我们常说的web 层。它负责接收客户端请求,向客户端响应结果,通常客户端使⽤http 协议请求web 层,web 需要接收 http 请求,完成 http 响应。表现层包括展示层和控制层:控制层负责接收请求对应controller,展示层负责结果的展示对应页面。表现层依赖业
2021-11-16 14:46:37
261
原创 Spring简介
Spring ⾼级框架第⼀部分 Spring 概述Spring的优势⽅便解耦,简化开发通过Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进⾏控制,避免硬编码所造成的过度程序耦合。⽤户也不必再为单例模式类、属性⽂件解析等这些很底层的需求编写代码,可以更专注于上层的应⽤。AOP编程的⽀持通过Spring的AOP功能,⽅便进⾏⾯向切⾯的编程,许多不容易⽤传统OOP实现的功能可以通过AOP轻松应付。声明式事务的⽀持@Transactional可以将我们从单调烦闷的
2021-11-16 14:46:03
288
原创 Linux下安装mysql-8.0.22
安装环境主机是购买的阿里云的云服务器系统是云服务器自带的CentOS 8.2 64位mysqlmysql是mysql-8.0.22版本,可以去https://dev.mysql.com/downloads/mysql/下载对应的版本安装1.在安装前需要确保没有安装过mysql,如果安装过请彻底删除对应的文件,具体方法可以自行百度2.检查mysql用户组和用户是否存在cat /etc/group | grep mysqlcat /etc/passwd |grep mysql3.如果用户
2021-01-16 11:41:55
1361
原创 Mysql中sql执行的过程
1、客户端和服务器建立连接,发送请求2、服务器先检查查询缓存。如果在查询缓存中发现了该sql,则会进行权限校验,权限校验通过,直接返回结果。如果查询缓存中没有,则进入下面的步骤(对应查询缓存这一过程,8.0这一过程已经不存在了,8.0完全抛弃了这个功能)3、服务器对sql进行解析。识别出sql里面的字符串是否符合标准,比如select关键字不能写错。识别出sql里面的字符串的具体意思是什么,比如T1是表名,C1是列名(对应解析器这一过程)4、服务器对sql进行预处理。确定sql的执行路径,比如走索引.
2020-07-09 19:26:13
434
转载 HTTP协议详解
HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中
2020-07-07 13:52:30
536
转载 数据库索引原理及优化
本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接。一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打...
2020-04-24 15:49:42
627
1
转载 Nginx配置
反向代理与前向代理前向代理:作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,服务端(如Web服务器)只知道代理的IP地址而不知道客户端的IP地址;反向代理:是作为服务器端(如Web服务器)的代理使用,而不是客户端,客户端知道代理服务器IP地址而不知道具体后台服务器的IP地址。举个例子,在公司通过代理服务器访问外网,这里代理服务器属于前向代理服务器,而客户通过代理服务...
2020-03-16 15:59:12
433
原创 Mac安装Nginx
一.安装Pcre1.到Pcre官网,下载安装包2.解压压缩包3.在命令行中执行sudo -i切换到root用户下,并进入解压后的目录4.执行./configure --prefix=/usr/local/pcre进行相关检查5.执行make && make install,如果没有报错,则安装完毕6.执行make -k check检查安装是否完成,完成的界面如下:二...
2020-03-13 15:51:01
1162
原创 Zookeeper 安装(Mac)、配置、常用命令及简单的java实例
Zookeeper介绍zookeeper是一个分布式服务框架,主要是用来解决分布式应用中的数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。 可以把zookeeper理解为一个由文件系统+监听通知机制组成的框架。详细介绍可以去Zookeeper官网查询,1、 文件系统Zookeeper维护一个类似文件系统的数据结构:每个子目录项如 NameService.........
2020-01-13 10:45:04
1904
转载 如何使用RedisTemplate访问Redis数据结构
Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。下面来对这5种数据结构类型作简单的介绍:结构类型结构存储的值结构的读写能力String可以是字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作;对象和...
2020-01-04 18:09:05
212
原创 jdk1.8 jstat命令
简介Jstat是JDK自带的一个轻量级小工具,位于java的bin目录下。主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控。jstat工具可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]示例使用jps -v找到要统计的JVM进程id,这里的进程id为8470。示例中没...
2019-12-28 15:04:16
1195
原创 Linux vmstat命令
简介vmstat命令用来显示Linux系统虚拟内存状态,也可以报告关于进程、内存、I/O等系统整体运行状态。安装yum install -y sysstat字段解释vmstat命令输出的第一行是自从系统重新启动以来所有指标的平均值。procsprocs代表进程相关参数字段名意义说明r等待运行的进程数如果该值长期大于CPU数,就表示需要添加CPU...
2019-12-27 21:29:48
446
原创 SpringCloud之Zuul简单实例(springboot2.2.2RELEASE)
一. API网关简介网关就可以对外暴露聚合API,屏蔽内部微服务的微小变动,保持整个系统的稳定性。它还可以做负载均衡,统一鉴权,协议转换,监控监测等一系列功能。二. Zuul简介Zuul是Spring Cloud全家桶中的微服务API网关。所有从设备或网站来的请求都会经过Zuul到达后端的Netflix应用程序。作为一个边界性质的应用程序,Zuul提供了动态路由、监控、弹性负载和安全功能...
2019-12-26 12:00:15
1766
原创 SpringCloud之Feign的简单实例,包括声明式REST调用及容错处理(springboot2.2.2RELEASE)
eureka地址示例(代码地址)1.pomxml<properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version> </properties&g...
2019-12-24 10:01:43
732
原创 SpringCloud之eureka简单实例(springboot2.2.2RELEASE)
一. Eureka简介Eureka是Netflix开源的服务发现组件,本身是基于Rest的服务,它包含服务端和客户端两部分;在SpringCloud中将它集成在其中,从而实现了微服务的发现与注册;Eureka的GitHub:https://github.com/Netflix/Eureka二. Eureka Server说明服务端:服务实例需要执行服务注册、发送心跳去续约(服务续约...
2019-12-21 19:03:25
1936
原创 Eureka自我保护机制
Eureka自我保护机制:eureka虽然收不到实例的心跳,但它认为实例还是健康的,eureka会保护这些实例,不会把它们从注册表中删掉。默认情况下,当eureka server在一定时间内没有收到实例的心跳,便会把该实例从注册表中删除(默认是90秒)。但是,短时间内丢失大量的实例心跳,便会触发eureka server的自我保护机制(开发测试时),此时eureka不会删除实例,但是会出现红...
2019-12-21 19:03:05
789
转载 《Maven官方文档》-Maven依赖机制简介
依赖机制是Maven最为用户熟知的特性之一,同时也是Maven所擅长的领域之一。单个项目的依赖管理并不难,但是当你面对包含数百个模块的多模块项目和应用时,Maven能帮你保证项目的高度控制力和稳定性。文章目录一.传递性依赖二.依赖范围三.依赖管理集中管理控制传递性依赖导入依赖系统依赖一.传递性依赖传递性依赖是Maven2.0的新特性。假设你的项目依赖于一个库,而这个库又依赖于其他库。你不必自...
2019-12-11 11:20:00
256
原创 JVM中GC常用参数说明及理解GC日志
JVM中GC常用参数参数解释-agentlib:ipharmacare_hook公司指定文件:解析密钥需用到-XX:MetaspaceSize=256m元空间初始空间大小-XX:MaxMetaspaceSize=512m元空间 最大空间,默认是没有限制的。-Xms1024m设置JVM最大可用内存为1024M。-Xmx1024m设置JVM促使内...
2019-12-10 16:30:35
1711
原创 vue2.0 实例的生命周期方法
生命周期图示例:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>...
2019-12-10 10:39:42
234
原创 Java try-with-resource语法
JDK1.7之前在JDK1.7之前要确保外部资源关闭一般使用finally,如下FileInputStream inputStream = null;try { inputStream = new FileInputStream(new File("user.csv")); System.out.println(inputStream.read());} catch (IO...
2019-12-09 21:05:46
283
原创 MySQL中DATE_FORMAT的使用
DATE_FORMAT:DATE_FORMAT(date,format) 函数用于以不同的格式显示日期/时间数据。date是要转化的日期,format是格式示例:select DATE_FORMAT(NOW(),'%Y-%m-%d');结果:2018-09-12format格式格式描述%a缩写星期名%b缩写月名%c月,数值%D带有英...
2019-12-09 20:29:57
870
原创 mysql数据库事务隔离级别(脏读、幻读、不可重复读)
一、脏读、幻读和不可重复读1、脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。例如:张三的工资为5000,事务A中把他的工资改为8000,但事务A尚未提交。与此同时,事务B正在读取张三的工资,读取到张三的工资为8000。随后,事务A发生异常,而回滚了事务。张三的工资又回滚为5000。...
2019-12-09 18:49:11
1524
2
转载 MySQL Explain优化
1.1. EXPLAIN在MySQL中可以使用EXPLAIN查看SQL执行计划。示例:EXPLAIN SELECT * FROM tb_item1.2. 结果说明1.2.1. idSELECT识别符。这是SELECT查询序列号。这个不重要。1.2.2. select_type表示SELECT语句的类型。有以下几种值:1、 SIMPLE表示简单查询,其中不包含连接查询和子查询。...
2019-12-09 17:26:02
207
原创 MyBatis 中resultType属性
resultType:MyBatis中resultType是用来指定查询结果类型的属性一.返回一般数据类型对于引用类型一般采用大写字母转小写的方式。基本类型一般在前面加"_",下面给了两个例子stringmapper接口:String getPasswordByName(@Param("name") String name);xml:<select id="getPass...
2019-12-09 16:01:01
1720
1
原创 @NotNull和@NonNull的区别和使用
区别@NotNull在类字段中使用,表示该字段不能为空。它是 JSR303(Bean的校验框架)的注解。在调用controller的方法中加入@Valid就可以验证该方法参数中该类的对应属性是否为空,如果为空,注解中的提示信息会保存在result中。@NonNull在方法或构造函数的参数上使用,表示该参数不能为空。@NotNull使用/** * user类 */@Datapubli...
2019-12-09 12:30:06
8643
原创 BigDecimal加减乘除计算及舎入模式
运算函数加法 add()函数减法subtract()函数乘法multiply()函数除法divide()函数绝对值abs()函数示例BigDecimal num1 = new BigDecimal(100);BigDecimal num2 = new BigDecimal(-100);BigDecimal num3 = new BigDecimal("0.5");BigDe...
2019-12-09 10:40:10
232
原创 String.format()的用法
普通转换符转换符详细说明%s返回字符串类型%c返回字符类型%b返回布尔类型%d返回整数类型(十进制)%x返回整数类型(十六进制)%o返回整数类型(八进制)%f返回浮点类型%a返回十六进制浮点类型%e返回指数类型%g返回通用浮点类型(f和e类型中较短的)%h返回散列码%%返回百分比类型 %...
2019-12-07 15:12:28
560
原创 springboot+log4j2+阿里云日志
1. springboot配置文件log4j2可以有多个配置文件根据环境的不同(本地环境、测试环境、线上环境)可以选择不同的配置,在application中可以使用以下属性进行配置:logging.config=classpath:log4j2-dev.xml2. log4j2文件格式log4j2配置文件后缀名只能为".xml",".json"或者".jsn"。系统选择配置文件的优先...
2019-12-06 21:17:04
2395
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人