10 2020 档案

mybatis实现模糊查询
摘要:<!--根据产品件号模糊查询机信息 --> <select id="selectInStockByPartNum" resultType="com.inchlifc.entity.InStock"> SELECT * FROM in_stock <where> <if test="partNum!= 阅读全文

posted @ 2020-10-26 13:29 潮流教父孙笑川 编辑

微服务的概念,调用,组件
摘要:微服务架构是一个分布式系统,按照业务进行划分成为不同的服务单元,解决单体系统性能等不足。 微服务是一种架构风格,一个大型软件应用由多个服务单元组成。系统中的服务单元可以单独部署,各个服务单元之间是松耦合的。 Eureka 服务发现框架 Ribbon 进程内负载均衡器 Open Feign 服务调用映 阅读全文

posted @ 2020-10-25 21:13 潮流教父孙笑川 编辑

Springcloud 网关gateWay
摘要:3大功能: 先过滤请求 断言 路由 配置文件: spring: application: name: cloud-gateway cloud: gateway: discovery: locator: enabled: true #开启从注册中心动态创建路由的功能,利用微服务名进行路由 routes 阅读全文

posted @ 2020-10-25 20:57 潮流教父孙笑川 编辑

SpringCloud Hystrix
摘要:服务调用链路长,容易出现雪崩效应 Hystrix保证一个服务出错时,不会导致服务整体奔溃 hystrix中的重要概念: 1,服务降级,立即返回备用方案结果 比如当某个服务繁忙,不能让客户端的请求一直等待,应该立刻返回给客户端一个备选方案。立即返回 @HystrixCommand(fallbackMe 阅读全文

posted @ 2020-10-25 20:45 潮流教父孙笑川 编辑

SpringCloud 的负载均衡 Ribbon OpeFeign
摘要:RestTemplate + ribbon返回Json格式数据 @Resource private RestTemplate restTemplate; @Resource private LoadBalancer loadBalancer; @Resource private DiscoveryC 阅读全文

posted @ 2020-10-25 20:06 潮流教父孙笑川 编辑

红黑树的时间复杂度为: O(lgn) b+数的特点
摘要:红黑树的性质: 红黑树是一棵二叉搜索树,它在每个节点增加了一个存储位记录节点的颜色,可以是RED,也可以是BLACK;通过任意一条从根到叶子简单路径上颜色的约束,红黑树保证最长路径不超过最短路径的二倍,因而近似平衡。 具体性质如下: 每个节点颜色不是黑色,就是红色 根节点是黑色的 如果一个节点是红色 阅读全文

posted @ 2020-10-25 16:53 潮流教父孙笑川 编辑

内存泄漏排查流程
摘要:1、使用top -c 查看 CPU 占用高的进程: ,从 top 命令的结果看,19272 号进程 CPU 占用率最高,基本确定问题是该进程引起,可以从 Command 栏看到这正是算法模块程序,注意图是线下4C机器上复现时的截图。 2、使用ps -mp pid -o THREAD,tid,time 阅读全文

posted @ 2020-10-25 16:16 潮流教父孙笑川 编辑

分布式事务解决方案
摘要:分布式事务的实现主要有以下 6 种方案: 两阶段/XA 方案 TCC 方案 SAGA 方案 本地消息表 可靠消息最终一致性方案 最大努力通知方案 1、两阶段/XA 方案 两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库 阅读全文

posted @ 2020-10-25 15:33 潮流教父孙笑川 编辑

session 和 watch ,监听目标结点的父节点,已达到重复监听的目的
摘要:3.6. 会话(Session) Session 可以看作是 ZooKeeper 服务器与客户端的之间的一个 TCP 长连接,通过这个连接,客户端能够通过心跳检测与服务器保持有效的会话,也能够向 ZooKeeper 服务器发送请求并接受响应,同时还能够通过该连接接收来自服务器的 Watcher 事件 阅读全文

posted @ 2020-10-25 14:31 潮流教父孙笑川 编辑

dubbo的概念和参数
摘要:一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。简单来说 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 RPC原理 服务消费方(client)调用 阅读全文

posted @ 2020-10-25 13:51 潮流教父孙笑川 编辑

Mybatis,模糊查询的concat
摘要:1、#{}和${}的区别是什么? #{}是预编译处理,${}是字符串替换。 Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值; Mybatis在处理${}时,就是把${}替换成变量的值。 使用#{}可以有效的防止SQL注入,提高系 阅读全文

posted @ 2020-10-25 13:06 潮流教父孙笑川 编辑

模板模式
摘要:模板方法 模板方法模式是一种行为设计模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤的实现方式。 public abstract class Template { //这是我们的模板方法 public final 阅读全文

posted @ 2020-10-24 21:51 潮流教父孙笑川 编辑

SpringMvc工作原理
摘要:上图的一个笔误的小问题:Spring MVC 的入口函数也就是前端控制器 DispatcherServlet 的作用是接收请求,响应结果。 流程说明(重要): 客户端(浏览器)发送请求,直接请求到 DispatcherServlet。 DispatcherServlet 根据请求信息调用 Handl 阅读全文

posted @ 2020-10-24 20:12 潮流教父孙笑川 编辑

Spring容器启动
摘要:@Override public void refresh() throws BeansException, IllegalStateException { // 来个锁,不然 refresh() 还没结束,你又来个启动或销毁容器的操作,那不就乱套了嘛 synchronized (this.star 阅读全文

posted @ 2020-10-24 19:02 潮流教父孙笑川 编辑

Spring定时任务,@Scheduled注解
摘要:@Component @EnableScheduling//可以在启动类上注解也可以在当前文件 public class TestJob { @Scheduled(cron = "0/10 * * * * ?") public void runfirst(){ System.out.println( 阅读全文

posted @ 2020-10-24 16:50 潮流教父孙笑川 编辑

Redis 启动命令,哨兵模式,集群配置文件,主从同步
摘要:启动redis: /usr/local/bin/redis-server /home/data/redis-3.2.1/redis.conf 主库打开:工作模式:cluster-enabled yes 集群模式启动redis设置为yes,表示开启集群,否则会以单实例启动。 从库配置文件:slaveo 阅读全文

posted @ 2020-10-24 12:12 潮流教父孙笑川 编辑

Redis 和 Memcached 区别
摘要:共同点 : 都是基于内存的数据库,一般都用来当做缓存使用。 都有过期策略。 两者的性能都非常高。 区别 : Redis 支持更丰富的数据类型(支持更复杂的应用场景)。Redis 不仅仅支持简单的 k/v 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。Memcache 阅读全文

posted @ 2020-10-24 11:18 潮流教父孙笑川 编辑

TCP3次握手和4次挥手
摘要:客户端–发送带有 SYN 标志的数据包–一次握手–服务端 服务端–发送带有 SYN/ACK 标志的数据包–二次握手–客户端 客户端–发送带有带有 ACK 标志的数据包–三次握手–服务端 SYN:同步序列编号(Synchronize Sequence Numbers) 是 TCP/IP 建立连接时使用 阅读全文

posted @ 2020-10-24 10:51 潮流教父孙笑川 编辑

sql执行顺序
摘要:1st) FROM字句:执行顺序为从后往前、从右到左。数据量较大的表尽量放在后面。 2nd) WHERE字句:执行顺序为自下而上、从右到左。将能过滤掉最大数量记录的条件写在WHERE字句的最右。 3rd) GROUP BY:执行顺序从右往左分组,最好在GROUP BY前使用WHERE将不需要的记录在 阅读全文

posted @ 2020-10-23 20:55 潮流教父孙笑川 编辑

Atomic 原子类
摘要:基本类型 使用原子的方式更新基本类型 AtomicInteger:整形原子类 AtomicLong:长整型原子类 AtomicBoolean:布尔型原子类 数组类型 使用原子的方式更新数组里的某个元素 AtomicIntegerArray:整形数组原子类 AtomicLongArray:长整形数组原 阅读全文

posted @ 2020-10-23 18:24 潮流教父孙笑川 编辑

线程池,重要参数,拒接策略,阻塞队列。补充线程池的5种状态,分析线程池源码
摘要:使用线程池的好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。 阅读全文

posted @ 2020-10-23 18:16 潮流教父孙笑川 编辑

ThreadLocal ,使用场景,内存泄漏问题。更正对threadlocal的理解。SimpleDateFormat中使用了threadlocalMap
摘要:set方法 public void set(T value) { Thread t = Thread.currentThread(); //获取当前线程 ThreadLocalMap map = getMap(t); //获取当前线程的threadlocalmap,不是threadlocal的,th 阅读全文

posted @ 2020-10-23 17:55 潮流教父孙笑川 编辑

ReentrantLock 和 synchronized
摘要:synchronized 是依赖于 JVM 实现的 ReentrantLock 是 JDK 层面实现的(也就是 API 层面,需要 lock() 和 unlock() 方法配合 try/finally 语句块来完成),所以我们可以通过查看它的源代码,来看它是如何实现的。 相比synchronized 阅读全文

posted @ 2020-10-23 17:45 潮流教父孙笑川 编辑

单例模式的双重校验
摘要:双重校验锁实现对象单例(线程安全) public class Singleton { private volatile static Singleton uniqueInstance; private Singleton() { } public static Singleton getUnique 阅读全文

posted @ 2020-10-23 17:40 潮流教父孙笑川 编辑

sleep() 方法和 wait() 方法区别和共同点
摘要:两者最主要的区别在于:sleep 方法没有释放锁只是让出CPU等待指定时间,而 wait 方法释放了锁 。 两者都可以暂停线程的执行。 Wait 通常被用于线程间交互/通信,sleep 通常被用于暂停执行。 wait() 方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的 notify( 阅读全文

posted @ 2020-10-23 15:12 潮流教父孙笑川 编辑

线程,进程的关系,从JVM角度看。为什么要有多线程。破坏死锁的条件
摘要:进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。 线程与进程相似,但线程是 阅读全文

posted @ 2020-10-23 14:42 潮流教父孙笑川 编辑

comparator ,重写 compareTo 方法实现按年龄来排序
摘要:ArrayList<Integer> arrayList = new ArrayList<Integer>(); arrayList.add(-1); arrayList.add(3); arrayList.add(3); arrayList.add(-5); arrayList.add(7); a 阅读全文

posted @ 2020-10-20 20:36 潮流教父孙笑川 编辑

分库分表,sharding-jdbc
摘要:分库分表一定是为了支撑高并发、数据量大两个问题的 你了解哪些分库分表的中间件,各个中间件的优缺点是啥?然后你用过哪些分库分表的中间件。 比较常见的包括: Cobar TDDL Atlas Sharding-jdbc Mycat Cobar 阿里 b2b 团队开发和开源的,属于 proxy 层方案,就 阅读全文

posted @ 2020-10-19 17:05 潮流教父孙笑川 编辑

explain问题,补充select_type、extra
摘要:id:选择标识符select_type:表示查询的类型。table:输出结果集的表partitions:匹配的分区type:表示表的连接类型possible_keys:表示查询时,可能使用的索引key:表示实际使用的索引key_len:索引字段的长度ref:列与索引的比较rows:扫描出的行数(估算 阅读全文

posted @ 2020-10-17 19:16 潮流教父孙笑川 编辑

mysql慢查询,mysqldumpslow
摘要:配置文件中my.cnf 开启慢查询[mysqld] slow_query_log = ON slow_query_log_file = D:\\MySql_log\\slow.loglong_query_time = 1 //时间 mysqldumpslow工具 -s 按照那种方式排序 c:访问计数 阅读全文

posted @ 2020-10-17 19:12 潮流教父孙笑川 编辑

避免使用select *
摘要:禁止使用 SELECT * 必须使用 SELECT <字段列表> 查询 原因: 消耗更多的 CPU 和 IO 以网络带宽资源 无法使用覆盖索引 可减少表结构变更带来的影响 阅读全文

posted @ 2020-10-16 20:00 潮流教父孙笑川 编辑

数据库优化,设计表的三范式、数据库引擎选择、索引设计
摘要:1、什么是三范式 设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 目前关系型数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF 阅读全文

posted @ 2020-10-16 17:00 潮流教父孙笑川 编辑

消息重试问题,死信队列
摘要:1.4.1 顺序消息的重试 对于顺序消息,当消费者消费消息失败后,消息队列 RocketMQ 会自动不断进行消息重试(每次间隔时间为 1 秒),这时,应用会出现消息消费被阻塞的情况。因此,在使用顺序消息时,务必保证应用能够及时监控并处理消费失败的情况,避免阻塞现象的发生。 1.4.2 无序消息的重试 阅读全文

posted @ 2020-10-09 18:55 潮流教父孙笑川 编辑

cookie和session区别
摘要:1、cookie数据存放在客户的浏览器上,session数据放在服务器上. 2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。 3、Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务 阅读全文

posted @ 2020-10-09 10:46 潮流教父孙笑川 编辑

Eureka
摘要:Eureka 就是 Netflix 的 服务发现框架 。 可以充当服务发现的组件有很多:Zookeeper ,Consul , Eureka 服务注册 Register:当 Eureka 客户端向 Eureka Server 注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页 阅读全文

posted @ 2020-10-09 10:14 潮流教父孙笑川 编辑

SSO,单点登录问题。token问题
摘要:https://mp.weixin.qq.com/s/drPVkRbCsDIlX6Ls2pDmqA 单系统登录功能主要是用Session保存用户信息来实现的,但我们清楚的是:多系统即可能有多个Tomcat,而Session是依赖当前系统的Tomcat,所以系统A的Session和系统B的Sessio 阅读全文

posted @ 2020-10-08 15:48 潮流教父孙笑川 编辑

Eureka与ZooKeeper、consul对比,Eureka的优势
摘要:结论 我们来比较一下,在CAP理论中,zk更看重C和P,即一致性和分区容错性。但Eureka更在意的是A和P,A为高可用。zk中有master和follower区别,当进入选举模式时,就无法正常对外提供服务。但Eureka中,集群是对等的,地位是相同的,虽不能保证一致性,但至少可以提供注册服务。 根 阅读全文

posted @ 2020-10-08 15:05 潮流教父孙笑川 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示