摘要: 1.java线程特性 1.原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行 银行转账,自己转100给别人,自己账户少100 别人多100 不会出现,自己少了100 别人那里却也没有多100的情况 2.有序性:程序执行的顺序按照代码的先后顺序执行。一般来说处 阅读全文
posted @ 2019-08-17 15:12 年少不知愁 阅读(204) 评论(0) 推荐(0) 编辑
 
摘要: 1.什么是线程安全问题 多个线程同时共享同一个全局变量或者静态变量的时候,某个线程的写操作,可能会影响到其他线程操作这个变量。所有线程读一个变量不会产生线程安全问题。 实际场景就是火车站买票问题:剩余100张火车票,重庆火车站和杭州火车站都在售卖,两个窗口同时卖的时候,在不同步的情况下,就可能导致线 阅读全文
posted @ 2019-08-16 15:08 年少不知愁 阅读(2112) 评论(0) 推荐(0) 编辑
 
摘要: Watcher是什么 在ZooKeeper中,接口类Watcher用于表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event) 同一个 阅读全文
posted @ 2019-06-05 14:26 年少不知愁 阅读(891) 评论(0) 推荐(0) 编辑
 
摘要: 什么是zookeeper 1.Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步、命名服务、集群维护等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式Z 阅读全文
posted @ 2019-05-30 16:11 年少不知愁 阅读(1044) 评论(0) 推荐(0) 编辑
 
摘要: 1.什么是Feign Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合, 阅读全文
posted @ 2019-05-17 14:59 年少不知愁 阅读(645) 评论(0) 推荐(0) 编辑
 
摘要: 1.什么是网关 大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信 息,也必须经过一道“关口”,这道关口就是网关。网关 就是一个网络连接到另一个网络的“关口”。也就是网络关卡。例如:我的一个pc工程的ip地址:192.168.1.215 然后另一个h5工程的i 阅读全文
posted @ 2019-05-14 16:33 年少不知愁 阅读(1404) 评论(0) 推荐(0) 编辑
 
摘要: 1.nginx实现负载均衡原理: 能实现负载均衡的工具有nginx lvs F5(硬件) 2.SpringCloud实现负载均衡原理 3.搭建ribbon实现负载均衡demo(如果没项目可以从eureka demo那里获取) 步骤一:pom文件导入所需要的依赖 步骤二:加上开启负载均衡的注解 步骤三 阅读全文
posted @ 2019-05-10 16:25 年少不知愁 阅读(291) 评论(0) 推荐(0) 编辑
 
摘要: 1.SpirngCloud 微服务架构(属于分布式架构)是在传统的soa架构上升级,将业务逻辑拆分的更细,轻量级,在开发过程中例如电商项目中: 支付服务 订单服务 会员服务 (可以理解一个服务就是一个业务逻辑 一般一个服务连接单独的数据库,这些都是接口项目) 不同的工程 可能都需要调用到支付服务,或 阅读全文
posted @ 2019-05-09 17:16 年少不知愁 阅读(796) 评论(0) 推荐(0) 编辑
 
摘要: 为什么使用xxl-job,不使用qz: 缺少补偿机制 不支持集群 不支持路由策略 统计任务执行 平台管理 监控,报警邮箱 幂等性:一次请求和多次请求得到相同的结果,不会因为多次的请求,导致最后的数据不同。 现在很多为了保证服务的高可用,一般都采用了集群。例如:在一个商城项目里有这么一个需求,需要每晚 阅读全文
posted @ 2019-04-28 18:16 年少不知愁 阅读(1798) 评论(0) 推荐(0) 编辑
 
摘要: 同步请求:浏览器 向服务器 发送一个登录请求,如果服务器 没有及时响应,则浏览器则会一直等待状态,直至服务器响应或者超时。 异步请求:浏览器 向服务器 发送一个登录请求,不管服务器是否立即响应,浏览器不需要等待。 在java中,在多线程的情况,也有同步,异步 阻塞的说法,多线程的情况,加了同步关键字 阅读全文
posted @ 2019-04-09 10:45 年少不知愁 阅读(2021) 评论(0) 推荐(0) 编辑
 
摘要: 使用消息中间件可以解决高并发,那是因为消息中间件可以将消息缓存到队列之中。 但是 当消息 过多的时候,几万,几十万...消息中间件也可能会宕机,所以我们可以对消息中间件进行集群,在之前的activemq中 activemq支持jms规范,点对点 发布订阅 消息模型,但是不支持分布式 (不支持集群) 阅读全文
posted @ 2019-04-08 18:24 年少不知愁 阅读(3924) 评论(0) 推荐(0) 编辑
 
摘要: ActiveMQ 持久化设置: 在redis中提供了两种持久化机制:RDB和AOF 两种持久化方式,避免redis宕机以后,能数据恢复,所以持久化的功能 对高可用程序来说 很重要。 同样在ActiveMQ 中 也提供了持久化的功能,在生产者 生产消息 到队列中,可以通过设置 该消息在队列中是否持久化 阅读全文
posted @ 2019-03-29 18:01 年少不知愁 阅读(3284) 评论(0) 推荐(0) 编辑
 
摘要: 为了快速上手ActiveMQ 找个一个windows版本的mq来实现它的功能 1.http://activemq.apache.org/activemq-5158-release.html 下载 2.解压文件 3.根据自己电脑的位数,选择 是32位还是64位启动 4.双击 activemp.bat 阅读全文
posted @ 2019-03-27 11:28 年少不知愁 阅读(502) 评论(0) 推荐(0) 编辑
 
摘要: 为什么要使用消息中间件: 同步请求:当客户端向服务器发送一条请求的时候,此时服务器由于网络,或者处理一些比较大的数据的时候,可能有延迟,客户端 会处于一直等待的状态。只有等待服务器返回处理结果,或者请求超时,客户端才能继续执行 因此可以看出同步请求一些场景上面使用有些弊端:客户与服务器对象的生命周期 阅读全文
posted @ 2019-03-25 16:07 年少不知愁 阅读(254) 评论(0) 推荐(0) 编辑
  2021年12月31日
摘要: 需求:将数据存入redis 存放的数据结构是hash 现在需要把它批量取出 批量取出的方式有很多,这里记录的是取出来以后数据反序列化成java实体时候的异常 线上代码不贴,模拟该代码 UserLoginParams userLoginParams = new UserLoginParams(); u 阅读全文
posted @ 2021-12-31 10:30 年少不知愁 阅读(1108) 评论(0) 推荐(0) 编辑
  2021年12月29日
摘要: 记录一次上线以后出现异常数据库事务不会滚的情况 情况:接手别人祖传代码,代码的逻辑 就是定时任务 中更新数据库操作,在更新数据库操作时候出现了异常,但是数据库没有回滚,导致的情况就是数据库数据不一致了!!! 模拟当时代码情况,定时任务是60s检测更新一次,因为事务失效,导致添加了很多重复数据 @Se 阅读全文
posted @ 2021-12-29 11:47 年少不知愁 阅读(1852) 评论(0) 推荐(0) 编辑
  2019年8月22日
摘要: 1.为什么要使用线程池: 2.使用线程池能解决什么问题 通过固定的几个线程为大量的操作服务,降低线程的频繁创建,销毁线程所需要消耗的时间,从而提高效应效率 3.线程池的创建方式 1.5版本通过Executors创建线程池 查看: corePoolSize: 核心池的大小。 当有任务来之后,就会创建一 阅读全文
posted @ 2019-08-22 19:42 年少不知愁 阅读(712) 评论(0) 推荐(0) 编辑
  2019年8月12日
摘要: 1.进程和线程的区别: 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。 总结:进程 阅读全文
posted @ 2019-08-12 18:49 年少不知愁 阅读(303) 评论(0) 推荐(1) 编辑
  2019年6月13日
摘要: 在Nginx和SpringCloud中都可以实现负载均衡,在Zookeeper中也可以实现负载均衡 Zookeeper实现负载均衡: 生产者集群,创建一个/path的父节点这个节点是持久节点,集群中的每个生产者分别在父节点中创建子节点(示例根据端口创建) 生产者一创建节点/path/producer 阅读全文
posted @ 2019-06-13 17:05 年少不知愁 阅读(3540) 评论(0) 推荐(0) 编辑
  2019年6月11日
摘要: 在单节点上运行的程序,多个线程对一个共享变量进行操作,则有可能出现线程安全的问题。例如:春运期间购买火车票 最后运行的结果显示和实际情况有出入的,之所以出现不是连续的减少车票,是因为多个线程是并行执行的,从结果看出了多个线程操作共享数据,会出现线程安全问题,所以我们为了确保这种问题不会出现,可以使用 阅读全文
posted @ 2019-06-11 18:19 年少不知愁 阅读(429) 评论(0) 推荐(0) 编辑