02 2019 档案
摘要:你在项目中遇到哪些问题? 因为目前项目采用的是分布式,分布式环境下一般采用集群方案,所以这就会带来分布式的一些问题,比如: 1、分布式锁 2、分布式session 3、分布式全局id 4、分布式配置中心 5、分布式日志收集系统 6、分布式任务调度系统 7、分布式事务问题 接下来这几个如何解决? 一、
阅读全文
摘要:限流==保险丝策略,可借助框架如spring cloud中Hystrix组件实现。今天介绍使用guava RateLimiter 类实现接口限流。 比如12306抢票: https://blog.csdn.net/Daybreak1209/article/details/82349244 luna脚
阅读全文
摘要:数据库事务的传播性(7)和隔离级别4(): https://www.cnblogs.com/WJ-163/p/6023054.html CAP理论与BASE理论: 支付项目: 同步回调:即向支付宝发送支付请求后,支付宝处理完成后,直接以重定向的形式返回。 异步回调:蚂蚁课堂向支付宝发送请求时,会将异
阅读全文
摘要:问题:在分布式环境下,如何保证定时任务的幂等性? 定时任务的实现: java实现: 基于Thread的实现: 基于timetask的实现: 基于线程池的实现: 定时job: 分布式job如何保证幂等性? 推荐使用分布式任务调度平台来解决分布式job的重复性问题。 XXL-JOB的github代码和介
阅读全文
摘要:sharding-jdbc的全局id生成策略是通过雪花算法来实现的。 sharding-jdbc也是一个数据的中间件,可实现读写分离和分库分表,比mycat要简单些。 nginx与ribbon实现负载均衡的区别:nginx是实现服务器端的负载均衡,ribbon是实现客户端即本地的负载均衡。 myca
阅读全文
摘要:解决方案: 基于Redis的全局id生成策略:(推荐此方法) 基于雪花算法的全局id生成: https://www.cnblogs.com/kobe-qi/p/8761690.html 基于zookeeper的全局id生成: https://www.iyunv.com/thread-660410-1
阅读全文
摘要:其他方法: 雪花算法或者redis来实现id不重复的问题。 数据库分库分表: 垂直拆分的优缺点: 水平拆分: 分片枚举:即根据枚举(定义的常量)进行分类存储。
阅读全文
摘要:1、 Mycat实现读写分离的部署: https://www.cnblogs.com/softidea/p/5447566.html springboot动态数据源的原理以及配置: Spring内置了一个AbstractRoutingDataSource,它可以把多个数据源配置成一个Map,然后,根
阅读全文
摘要:在大型电商网站中,随着业务的增多,数据库中的数据量也是与日俱增,这时候就要将数据库进行分库分表了。下面分析下以下几个问题: 1、数据库如何实现分库分表? 两种方案:垂直和水平。 垂直拆分:根据业务进行拆分,比如可以分库订单数据库,商品数据库,支付数据库等。 水平拆分:即根据表来进行分割:比如user
阅读全文
摘要:1、为什么MQ能解决高并发环境下的消息堆积问题? MQ消息如果堆积,消费者不会立马消费所有的消息,不具有实时性,所以可以解决高并发的问题。 性能比较好的消息中间件:Kafka、RabbitMQ,RocketMQ. 2、什么情况下会产生消息丢失的现象? 消息队列满了的情况下。 3、如何解决消息丢失的问
阅读全文
摘要:Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose不再需要使用shell脚本来启动容器。 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用do
阅读全文
摘要:Docker的可视化管理工具有DockerUI、Shipyard、Rancher、Portainer等等,这里主要对这几个进行优劣对比。 DockerUI: 优点 (1)支持container批量操作。 (2)支持image管理(虽然比较薄弱)。 缺点 (1)不支持多主机,多环境。 (2)管理平台无
阅读全文
摘要:1、Docker的应用案例 2、 3、 4、docker的核心:镜像、仓库、容器 Build构建镜像:类似于集装箱。 Ship运输镜像,仓库:类似于码头。将镜像运输到仓库。 Run运行镜像:容器:类似于运行程序的地方。 一句话:去仓库将镜像拉取到本地,然后使用一条命令将镜像运行起来,变成容器。
阅读全文
摘要:Rancher是什么 Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。 通俗的将它就是为了更方便的管理docker。
阅读全文
摘要:当在浏览器发送多次请求检测hystrix的作用时,我们可以使用postman来自动发送多次请求; 1、将链接保存到一个collection中 2、点击runner 3、设定运行次数
阅读全文
摘要:一、在各种电商网站下订单后会保留一个时间段,时间段内未支付则自动将订单状态设置为已过期。 二、解决方案 1、轮询数据库:实现一个定时器,每隔一段时间去检查一遍数据库里的所有订单,查看其状态是否是未支付并且已经到期。并修改这些数据的状态为已过期。 优点:方法简单,容易实现 缺点:订单状态处理不及时,轮
阅读全文
摘要:从依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首先就必须得生成对象p与对象a,才能执行注入。所以,如果一个类A中有个成员变量p被@Autowired注解,那么@Autowired注入是发生在A的构造方法执行完之后的。 如果想在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于
阅读全文
摘要:转:http://www.villagerhome.club/?p=287 在过去的日子里, Java 面试随着时间的改变而改变,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象。
阅读全文