![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后台
javHao
这个作者很懒,什么都没留下…
展开
-
阿里canal
用于mysql数据库异构数据的同步增量日志数据的订阅 消费和解析 可以订阅到mysql二进制日志的变化 然后可以拿到数据进行消费 ,历史数据无效 只能通过其他方式进行全量同步io 和 thread线程间隔一下执行一次 主从同步有时间的延迟 不是立刻马上的canal原理工作场景数据库实时备份对业务缓存进行刷新!索引构建 例如插入es中可以通过对binlog日志的监控实现数据库中的商品降价后发送通知跨数据库的数据备份/异构数据同步 mysql->oracle ->mo原创 2021-02-19 17:53:13 · 216 阅读 · 0 评论 -
MQ总结归纳
首先为什么要用mq1应用系统服务接耦合 通过mq把同步调用改成异步调用2实现缓存流量消峰RocketMq原创 2021-02-04 00:22:36 · 255 阅读 · 0 评论 -
Spring Security OAuth2.0
RBAC权限模型:1 基于角色2 基于资源 ---- 用得比较多加载spring容器:spring security封装了认证的过程原创 2021-01-18 23:12:04 · 94 阅读 · 0 评论 -
并发编程
Tsequential是算法串行版的执行时间,而Tconcurrent是算法并行版的执行时,P是可以进行并行化处理的代码的百分比,而N 是你准备用于执行该算法的计算机的核数。基本并发类Thread类:该类描述了执行并发Java应用程序的所有线程。Runnable接口:这是Java中创建并发应用程序的另一种方式。ThreadLocal类:该类用于存放从属于某一线程的变量。ThreadFactory接口:这是实现Factory设计模式的基类,你可以用它来创建定制线程。同步机制:原创 2021-01-18 23:09:20 · 99 阅读 · 0 评论 -
代码模块设计模式实践以及idea操作
idea1idea支持模块化操作 可以节省代码编写时间2idea可以对命令集成整合javap 编译与汇编的命令代码块1等待线程代码全部执行完毕后才继续走main方法 ,默认两个线程 gc和main线程原创 2021-01-18 12:23:48 · 158 阅读 · 0 评论 -
java面试题2021 - 1- 9总结
volatile1轻量级(因为不保证原子性)同步机制 保证可见行 不保证原子性 禁止指令重排序!2JMM(java内存模型): 规则要求 关于同步的规定 1线程解锁之前,必须吧共享变量的值刷新回驻内存 因为 速度 :硬盘《内存(主内存 硬件8g 16g...)《cpu(缓存 : 各自线程的工作线程) 可见性 : 某个线程修改了值并且写到主内存后 另外一个线程必须马上知道 马上被通知到! 2线程枷锁之前,必须读取主内存的最新值到自己的原创 2021-01-11 21:00:41 · 801 阅读 · 2 评论 -
mqtt协议
发布订阅模式的轻量级协议构建在tcp ip协议之上可以用 少代码 有限带宽 为连接远程设备提供实时可靠的消息服务,在物联网小型设备 移动应用方面有广泛的应用特点1发布订阅模式 可以同时发布信息 也可以同时订阅信息 全双工...原创 2021-01-08 13:25:32 · 100 阅读 · 0 评论 -
dubbo 总结
分布式 rpc框架(远程过程调用)用来维护治理分布式系统中复杂的调用关系!archiitect注册中心 消费者 生产者 container 监控中心**消费者同步调用服务提供者!zookeeper树型目录服务 超时精确设置的优先:方法优先 接口次之 全局再次之消费者设置的优先(级别一样的情况下) 无论是time-out retries(重试 默认轮训) loadblanace actives等都是一样的规则配置多版本可以用version进行配置 实现灰度发布本地存原创 2021-01-08 10:06:08 · 87 阅读 · 0 评论 -
java cpu占用过高怎么处理??
top -c查看CPU使用率高的进程的PIDtop -p PID -H查看CPU使用率高的线程信息 记下对应线程的PIDjstack PID > xxx.log输出java应用当前堆栈信息到文件使用jstat -gc PID查看jvm的GC情况jmap -histo:live PID > xxx.log将内存对象统计情况输出到文件可以使用jmap -dump:live,format=b,file=xxx.hprof PID命令来输出内存对象的明细,来定位具体方法位置。这个命令是将内存原创 2021-01-05 11:40:48 · 517 阅读 · 0 评论 -
istio
service mresh 使运维更方便(1)治理能力独立 专注于业务 服务治理交给istio 应用程序无感知 服务通信的基础设施层(2)负载均衡 动态路由 灰度发布 故障注入 调用脸 访问日志 监控 限流 ACL 认证 鉴权 k8s eureka cloudfoundry consual k8a(部署 运维 扩所容) + istio(服务治理 负载均衡 服务发现)pilot获取用户自定义规则,和k8s本身的service 部署的时候作为一个pod部署在k8s的集群里 会原创 2020-07-04 20:47:20 · 214 阅读 · 0 评论 -
JVM面试知识归纳(持续更新)
JVM主要分三块:类加载子系统执行引擎java运行时数据区本地方法栈服务的对象是JVM执行的native方法,而虚拟机栈服务的是JVM执行的java方法栈(虚拟机栈和本地方法栈)、程序计数器是线程私有的很好理解:每个线程执行都需要记录代码执行的位置和所需要的变量已经方法调用(主要是代码的开始地址) 这样当然需要为每一个线程维护自己的栈和计数器了虚拟机栈的每个方法栈桢都包括: java...原创 2020-03-07 20:00:19 · 142 阅读 · 0 评论 -
springboot源码分析之--自动配置
看springboot的pom依赖的parent是spring boot starter parent(1)首先是资源过滤 过滤application配置文件 推荐使用yml(2)其次是pluginsmanagement 插件管理 配置了依赖环境dependency 所以在写自己的dependency的时候不用写版本**springbootapplication**元注解...原创 2020-03-01 14:13:22 · 136 阅读 · 0 评论 -
rpc和http
rpc:1处在会话层 可以用http协议 也可以用tcp2使用自定义的tcp协议 二进制传输 可以让请求报文体积小 提高传输效率3高校二进制传输4自带负载均衡5服务治理可以自动进行通知6主要用于公司内部的网络 性能消耗比较少http:1性能消耗相对大一点(字节大小和序列化消耗) 一般通过json 实现2需要配合nginx来实现负载均衡!3主要用于外界的网络环境...原创 2020-02-04 10:26:25 · 113 阅读 · 0 评论 -
负载均衡算法简单归纳
1简单轮询2随机算法3源地址哈希法4加权轮询法:在简单轮训的基础上加上权重(返回一个由此算法得来的列表进行轮训)5加权随机法:6最小连接法:轮询服务器列表,返回连接数量最少的Ribbon 客户端负载均衡:客户端会有一个服务器地址列表,在发送请求前通过负载均衡选择一个服务器(所有客户端节点都有一份从注册中心获得的负载均衡后的服务器列表) 微服务中RPC远程调用实现本地服务负载均衡 例如d...原创 2020-02-04 10:08:55 · 92 阅读 · 0 评论 -
mysql语句执行顺序
from 确定你锁筛选的表 ----笛卡尔积on 过滤掉不符合条件的 外连接 补充被on消除掉的某些数据 用null表示where过滤 group by分组having 过滤select 选择出我们所要的内容DISTINCT 增加唯一索引去除重复数据ORDER BY 排序LIMIT分页注意的是 每一步都会在上一步的基础上生成一个临时表 再往下进行(...原创 2020-01-31 16:49:02 · 138 阅读 · 0 评论 -
mysql for update
在对mysql 进行for update加锁的时候:有索引 例如主键id ------ 行锁没有索引 例如 like <> 或者根本没枷锁-----------表锁没有查到数据当然不加锁原创 2020-01-30 15:00:48 · 171 阅读 · 0 评论 -
java设计模式简单大白话归纳
1工厂模式:用来创建单一产品( 生产产品的接口只有一个方法 通过不用的实现生产不同的产品)用统一接口来完成生产类的方法 具体对象通过具体实现类来产生类对象的方法也可以用接口定义 具体功能也是通过具体实现类产生2抽象工厂模式:和工厂模式的区别就是用来创建多个产品(生产产品的接口可以有很多方法 每一个来生产不同的产品 不同的实现类区别在于各个产品又有不同分类)3单利模式:懒汉:原始标准版 ...原创 2020-01-25 11:15:51 · 425 阅读 · 0 评论 -
Lock和syncronized
ReentrantLock是可重入锁(获取多少次锁就要释放多少锁) 公平/非公平都可以synchronized 可重入 非公平:配合常量池中的ACC_SYNCHRONIZED标识位 通过竞争监视器或者说管程monitor(两个原语monitorenter monitorexit 同一个时刻,只有一个 进程/线程能进入monitor中定义的临界区——》 monitor 能够达到互斥的效果)来实...原创 2020-01-22 14:44:52 · 305 阅读 · 0 评论 -
linux内核参数配置(持续更新)
我们可以在sysctl.conf中看到linux的配置 这里可以修改内核参数来达到功能优化的目的**关闭ipv6:**首先可以通过ifconfig查看是否开启了ipv6(ifconfig route netstat 命令不多说)运行netstat会发现没有相关的ipv6了net.ipv6.conf.all.disable_ipv6 = 1net.ipv6.conf.default.d...原创 2020-01-18 11:40:45 · 793 阅读 · 0 评论 -
spring和springMVC容器初始化过程
spring初始化过程:入口点是<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>在这个监听器中创建容器 放到ServletContext中,key是ROOT...原创 2020-01-18 11:16:41 · 766 阅读 · 2 评论 -
nginx归纳总结
**作用默认监听80端口**(1)可以提供HTTP服务 但是仅限于静态资源 这就是跟tomcat的区别(2)虚拟主机:可以在一台服务器上虚拟出多个网站(3)方向代理 负载均衡服务器 这里需要知道反响代理是负载均衡的实现原理**虚拟主机**配置server root表示以什么为根目录 index 表示默认访问的页面 error_page 表示出现错误的时候找的...原创 2019-06-20 11:24:23 · 128 阅读 · 0 评论 -
Spring总结
**IOC**控制反转:new 对象的操作交给spring容器来使用 使用xml配置或者注解配置就可以直接注入使用: bean对象一定要有无参构造 在创建Spring容器ApplicationContext对象时候创建bean对象(默认) 调用getBean多次 也只会创建同一个bean对象 可以用FileSystemXmlApplicationCo...原创 2019-06-06 08:16:24 · 108 阅读 · 0 评论 -
eclipse mybatis配置文件提示配置
复制 “http://mybatis.org/dtd/mybatis-3-config.dtd”并且在add里面关联config.dtd配置文件mapper配置文件同理“http://mybatis.org/dtd/mybatis-3-mapper.dtd”原创 2019-04-29 22:26:35 · 284 阅读 · 0 评论 -
数据库连接池
DBCP数据库连接池C3P0数据库连接池首先说说DBCP:方式一:1创建BasicDataSource 对象并设置相对应的url username...2设置initialsize maxActive等参数3返回Connection 对象方式二:1利用BasicDataSourceFactory.createDataSource(properties)从properties配置文...原创 2019-04-20 16:52:46 · 105 阅读 · 0 评论 -
springMVC总结
springMVC的核心就是DispatcherServlet程序,所有的请求都是先进入这个Servlet对象。 官方的图:使用:(1)准备log 和 spring的xml配置文件(2)在web.xml中配置dispatchServlet方式一:<!-- The front controller of this Spring Web application, responsi...原创 2019-06-10 16:50:02 · 324 阅读 · 0 评论 -
监听器归纳
**监听器**1 ServletContextListener 两个方法 (1)服务器启动时创建ServletContext对象时执行此方法 : 用ServletContextEvent 获取ServletContext对象 进而来获取上下文对象 可以管理项目的上下文路径 (将上下文路径放到ServletContext域中) (2)服务器停止时或卸载项目时 Serv...原创 2019-06-16 12:56:53 · 88 阅读 · 0 评论 -
java校招我的归纳总结
**数据库**1数据库有哪些索引?原理是什么唯一索引:UNIQUE 表明此索引的每一个索引值只对应唯一的数据记录,对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。主键索引:数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。 在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的...原创 2019-06-11 09:56:14 · 916 阅读 · 0 评论 -
FastDFS归纳
FastDFS作为分布式文件系统 首先我门需要知道传统方式的问题**传统文件管理方式的缺陷**1web应用重新部署会导致用户上传文件会丢失2集群环境下 如果有多个tomcat 没有文件同步机制 所以用户可能会发现文件突然消失 又突然出现3扩容缺乏弹性4如果每个文件在每个服务器只存了一份 那么就会有单点故障问题**FastDFS的功能**1文件不会存储在应用服务器上面 不受应...原创 2019-06-21 17:20:10 · 107 阅读 · 0 评论 -
linux
**首先介绍一下三种网络连接方案:**1桥接模式 和物理机使用同一个局域网,在局域网上物理机和虚拟机可以互相访问。物理机和虚拟机的IP地址不能重复。2NAT模式 虚拟机和物理机不在同一个局域网内,不能被局域网内的其他主机访问。 好处1:不受物理机局域网IP网段限制; 好处2:借助网络地址转换机制通过物理机接入Internet3HostOnly 虚拟机也不在物理机所在的...原创 2019-06-18 17:29:12 · 236 阅读 · 0 评论 -
MyBatis大全总结
首先讨论一下基本的概念~:(1)MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。(2)MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。(3)MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.(4)是半自动化...原创 2019-04-29 22:21:13 · 938 阅读 · 0 评论 -
数据库的隔离级别
一般数据库有三个问题:1 脏读:读取还未被提交的数据(此问题不可以忍耐)2不可重复读:T1读取了一个字段后 T2更新了该字段并提交 T1再次读取该字段 值会不同(此问题勉强可以忍耐,因为数据永久生效了)3 幻读:T1从一个表中读取一个字段后 T2在该表中插入了一些新的行 后 T1再次读取同一个表 会发现多出几行(此问题勉强可以忍耐,因为数据永久生效了)数据库为了解决这三个问题提供了四种隔离...原创 2019-04-20 16:20:44 · 89 阅读 · 0 评论 -
Http协议内容
HTTP协议请求的内容:GET1请求行:(1)请求的方式GET (2)请求的资源路径 (3)请求的协议和版本HTTP/1.12请求头:POST: 1请求行: (1)请求的方式POST (2)请求的资源路径 (3)请求的协议和版本HTTP/1.1 2请求头 空格 3请求体:客户端提交的数据所以一般有哪些是get请求哪些是post请求呢:Get:1for...原创 2019-04-21 18:08:04 · 452 阅读 · 0 评论 -
Servlet总结
首先要知道javaWeb三大组件(Servlet程序 Listener监听器 Filter过滤器 都配置在web.xml文件下)生命周期:1先执行Servlet的构造方法2执行Servlet程序的init初始化方法以上两个方法是在第一次访问的时候由tomcat服务器来调用的~ 只调用一次3执行Service方法:接受客户端请求 并且响应数据 每次请求进来的时候处理业务(每次访问都会调用~...原创 2019-04-21 17:34:03 · 211 阅读 · 0 评论 -
eclipse dynamic project动态工程目录结构
src:存放java源文件JRE System Library :JavaSE的类库Apache Tomcat :javaEE(javaWeb)的类库build:src源码翻译成为.class字节码后存放的目录WebContent:存放html css js jsp等文件WEB-INF:该目录是一个受服务器保护的目录,里面的资源是不可以通过浏览器直接访问的只能通过服务器代码间接访问 例如...原创 2019-04-21 15:52:18 · 1256 阅读 · 0 评论 -
tomcat归纳
首先要知道tomcat提供的是对jsp 和 servlet的支持 所以也叫做 Servlet容器安装以及目录1解压即可用~2目录: bin 保存tomcat程序的可执行文件 conf 保存tomcat服务器的配置文件 lib 保存tomcat运行时候需要的jar包 logs 保存tomcat运行时输出的日记 temp 保存临时的数据 webap...原创 2019-04-21 15:23:25 · 111 阅读 · 0 评论 -
dom4j解析xml
1利用SaxReader对象读取xml文件 创建Document对象2document.getRootElement(); 返回根元素对象 root3 root 的elements(标签名)获取子元素 返回一个Element的LIst4遍历每一个Element...原创 2019-04-21 11:39:25 · 89 阅读 · 0 评论 -
在父接口中获取子类实现类实现父接口时所携带的泛型类型
可以在父类的无参构造器中写:Type type = this.getClass().getGenericSuperclass(); //Type是一切类型的父类型 此代码可以后去带泛型的父类类型ParameterizedType t = (ParameterizedType) type ; //获取参数化类型Type[] types = t.getActualTypeArguments(...原创 2019-04-20 22:39:58 · 773 阅读 · 0 评论 -
DBUtils的使用
1首先导入jar包2增删改1创建QueryRunner对象 (不考虑事务的话可以直接传入连接池对象)2需要Connection对象(考虑事务的情况下),sql语句,参数3关闭自己传入的连接3查询1调用queryRunner对象的query方法 传入Connection对象 sql ResultSetHandler对象 参数 注意的点在于ResultSetHandler对象 (...原创 2019-04-20 17:15:10 · 159 阅读 · 0 评论 -
mysql数据库大全总结
DML数据操纵语言:查询和修改数据记录(INSERT UPDATE DELETE SELECT)DDL数据定义语言:定义数据库的结构(CREATE ALTER DROP )DCL数据控制语言:控制数据库的访问(GRANT REVOKE COMMIT ROLLBACK SAVEPOINT LOCK)SELECT:选择全部数据select * from table1; 别名:空格➕名字 ...原创 2019-04-15 23:29:49 · 295 阅读 · 0 评论 -
java8 新特性总结
interface1 接口里面可以定义方法 (默认都是public) (1)静态方法 public static void do(){ ...} 调用:接口名.静态方法 (2) 默认方法 public default void do(){ ...} 调用:实现类的对象.对应的方法(实现类对象优先调用自己本类的重写方法~) (3)原来的抽象方法 2如果实现...原创 2019-04-08 12:12:30 · 223 阅读 · 0 评论