你们的项目为什么要用RabbitMQ? 消息队列的作用是系统解耦、同步改异步、请求消峰,举个下订单的例子: 前端获取用户订单信息,请求后端的订单创建接口。这个接口并不直接请求订单服务,而是首先生成唯一订单编号,再组装一个订单消息并发送给RabbitMQ,然后返回唯一订单编号给前端。前端 ...
你们的项目怎么使用kafka 我们采用kafka进行日志采集,准确点说是ELK方案,即elasticsearch logstash kibana kafka。通过Spring AOP的方式收集日志,通过kafaka发送出去。 kafa存在丢消息的情况吗,怎么解决 producer把消息发送给broker,因为网络抖动,消息没有到达broker,且开发人员无感知。 解决方案:producer设置a ...
2019-10-21 14:01 0 330 推荐指数:
你们的项目为什么要用RabbitMQ? 消息队列的作用是系统解耦、同步改异步、请求消峰,举个下订单的例子: 前端获取用户订单信息,请求后端的订单创建接口。这个接口并不直接请求订单服务,而是首先生成唯一订单编号,再组装一个订单消息并发送给RabbitMQ,然后返回唯一订单编号给前端。前端 ...
StringBuffer与StringBuild的区别 频繁修改字符串时,建议使用StringBuffer和StringBuilder类。StringBuilder相较于StringBuffer有速度优势,要求线程安全的情况下,必须使用StringBuffer类。 为什么拼接 ...
RocketMQ怎么保证消息不丢失? A. 从Producer的视角来看:如果消息未能正确的存储在MQ中,或者消费者未能正确的消费到这条消息,都是消息丢失。 B. 从Bro ...
synchronized怎么用的? 用过,synchronized是常用的并发控制关键字,简单的说就是访问加锁。它可以修饰静态方法或者一个类的class对象,这叫类锁;可以修饰普通方法或者代码 ...
Java 面试连环炮系列(三):synchronized怎么用的 面试连环炮系列(七):HashMap的put操作做了什么 面试连环炮系列(八):服务器CPU飙升100%怎么排查 面试连环炮系列(九):为什么ConcurrentHashMap是线程安全的 面试连环炮系列(十 ...
你们的项目为什么要分库分表? 随着业务的发展,公司项目的日活翻了几十倍,订单表Order每月新增数据100万左右,有部分场景查询效率不太高了。通过升级配置、业务规避、缓存集群、归档历史数据等手段,也能够满足当前的查询要求。但是业务是呈加速度增长的,未来的数据会更多。虽然深知过早优化的弊端 ...
你们的项目Redis做了集群部署吗? 我们有大量数据需要缓存,而单实例的容量毕竟是有限的,于是做了Redis集群部署。 采取的方案是什么,Codis还是Redis Cluster,为什么要选择这个方案? 我们采用的官方Redis Cluster方案。Codis是一整套缓存解决方案 ...
线程池的使用场景有哪些 线程池适合单系统的大量的异步任务处理,比如发送短信、保存日志。 说说创建线程池的重要参数 corePoolSize:线程池的大小。线程池创建之后不会立即去创建线程,而是等待线程的到来。当前执行的线程数大于该值时,线程会加入到缓冲队列 ...