当前位置: 首页 > news >正文 无锡网站建设制作设计上海平台网站制作公司哪家好 news 2025/10/28 19:51:04 无锡网站建设制作设计,上海平台网站制作公司哪家好,婚纱影楼网站,网站做接口到app价格面试就是这么简单#xff0c;offer拿到手软#xff08;一#xff09;—— 常见非技术问题回答思路 面试就是这么简单#xff0c;offer拿到手软#xff08;二#xff09;—— 常见65道非技术面试问题 面试就是这么简单#xff0c;offer拿到手软#xff08;三#xff… 面试就是这么简单offer拿到手软一—— 常见非技术问题回答思路 面试就是这么简单offer拿到手软二—— 常见65道非技术面试问题 面试就是这么简单offer拿到手软三—— 常见中间件框架面试题esredisdubbozookeeper kafka 等 面试就是这么简单offer拿到手软四—— 常见java152道基础面试题 文章目录 一、消息队列1.1 常见消息队列优缺点1.2如何保证消息队列高可用1.2.1 使用kafka使用集群模式1.2.2 确保不重复消费1.2.3 确保消息可靠性传输1.2.4 如何保证保证消息顺序性1.2.5 如何设计消息中间件 二、分布式搜索引擎2.1. es分布式架构原理2.2. es读写流程原理2.3. es优化 三、分布式缓存redis3.1 为什么要用分布式缓存3.2 常见问题3.3 redis介绍以及与memcached的区别3.3.1. redis是单线程工作模型3.3.2. redis和memcached 区别3.3.3. redis高可用原因3.3.4. redis数据3.3.5 .redis过期策略3.3.6. redis高并发高可用的保证3.3.7 .redis持久化3.3.8. redis横向扩容3.3.9 一致性hash算法有虚拟节点为解决热点数据3.3.10 redis clusterhash slot算法3.3.11 缓存雪崩、穿透3.3.12 数据库双写不一致3.3.13 redis并发竞争 四、dubbo4.1 dubbo工作原理4.2. 支持协议4.3.dubbo负载均衡策略4.4.集群容错4.5.动态代理策略4.6 自设计rpc框架 五、zookeeper5.1. 适用场景5.2.分布式锁 六、分布式session七、分布式事务八、设计一个高并发的系统架构九、分库分表十、读写分离、主从复制、同步延时问题10.1. 读写分离10.2.主从复制10.3.主从同步机制10.4.同步延时问题 一、消息队列 1.1 常见消息队列优缺点 常见消息队列activemq、rabbitmq、rocketmq、kafka 消息队列的优点: 解耦、异步、削峰 消息队列的优点: 系统可用性降低、系统复杂性提高、一致性问题 1.2如何保证消息队列高可用 1.2.1 使用kafka使用集群模式 1.2.2 确保不重复消费 使用offset序号zk实现保证幂等性使用数据库表主键 1.2.3 确保消息可靠性传输 如何解决消费端弄丢问题 关闭自动提交offset改为手动提交offset如何解决kafka本身弄丢的问题 leader宕掉 topic设置replication.factor值大于1要求partition必须至少2个副本 kafka服务端设置min.insync.replicas值大于1要求leader至少感知到有至少一个follower跟自己保持联系 producer生产者端设置acksall每条数据必须是写入所有replica后才认为写入成功 producer端设置retriesMAX一旦写入失败无限重试卡在这里 1.2.4 如何保证保证消息顺序性 kafka保证写入一个partition中的数据是一定有顺序的生产者指定的一个key的数据一定会写入到一个partition中消费者从partition中取出数据也是一定有顺序的多线程处理时可能会顺序出错设定内存队列hash分发时同一key分到同一队列 1.2.5 如何设计消息中间件 支持扩容数据落磁盘可用性数据可靠性 二、分布式搜索引擎 elasticsearch 即 es 2.1. es分布式架构原理 es存储数据的基本单位是索引index index - type - mapping - document - field 1个index能被分成多个shard分布在不同的机器上shard类比kafka有主从性备份 写只能主读可以主从 2.2. es读写流程原理 写入内存buffer和translog buffer快满了或一定时间后将buffer中数据refresh到一个新的segment file中先进入到os cache一般1s执行一次refresh持续执行后当translog达到一定体量时触发commit操作buffer中现有数据全部refresh到os cache中清空buffer将一个commit point写入磁盘文件标识对应的segment file将os cache中数据fsync到磁盘可以调用api手动执行flush操作整个commit过程即flushtranslog也是先进入到os cache中默认5s持久化操作一次删除操作标识del标记逻辑删除非物理删除更新操作即先标记原有数据del重新写入一条数据定期执行merge操作当segment file多到一定程度的时候es就会自动触发merge操作将多个segment file给merge成一个segment file 2.3. es优化 加大分配给es的内存数据量的体量最好小于或等于分配给es的内存数据预热对于大量搜索的数据定时的查询一次将数据存入到es内存中优化存入filesystem cache的数据只存入用于搜索的数据冷热分离尽可能的将热数据放到一个索引冷数据放到另一个索引中去防止热数据被冷数据从cache中冲掉 三、分布式缓存redis 3.1 为什么要用分布式缓存 为了高性能和高并发使用缓存使用场景数据字典3.2 常见问题 1缓存与数据库双写不一致 2缓存雪崩 3缓存穿透 4缓存并发竞争3.3 redis介绍以及与memcached的区别 3.3.1. redis是单线程工作模型 3.3.2. redis和memcached 区别 1Redis支持服务器端的数据操作Redis相比Memcached拥有更多的数据结构和并支持更丰富的数据操作通常在Memcached里你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中这些复杂的操作通常和一般的GET/SET一样高效。2集群模式memcached没有原生的集群模式需要依靠客户端来实现往集群中分片写入数据但是redis目前是原生支持cluster模式的3.3.3. redis高可用原因 非阻塞IO多路复用模型纯内存操作避免了多线程的频繁上下文切换问题 3.3.4. redis数据 String、Hash、list、set、zset3.3.5 .redis过期策略 定期删除惰性删除内存淘汰 1noeviction当内存不足以容纳新写入数据时新写入操作会报错 2allkeys-lru当内存不足以容纳新写入数据时在键空间中移除最近最少使用的key这个是最常用的 3allkeys-random当内存不足以容纳新写入数据时在键空间中随机移除某个key 4volatile-lru当内存不足以容纳新写入数据时在设置了过期时间的键空间中移除最近最少使用的key这个一般不太合适 5volatile-random当内存不足以容纳新写入数据时在设置了过期时间的键空间中随机移除某个key 6volatile-ttl当内存不足以容纳新写入数据时在设置了过期时间的键空间中有更早过期时间的key优先移除 3.3.6. redis高并发高可用的保证 主从架构、读写分离、水平扩容哨兵sentinel机制redis集群数据丢失问题1异步复制2集群脑裂min-slaves-to-write 1min-slaves-max-log 10选举slaves priority优先级 - replica offset - run id3.3.7 .redis持久化 用于故障恢复持久化方案AOF每条数据写入一个AOF文件内适合做热备当AOF文件膨胀到一定体量时会触发rewrite操作基于现有redis数据生成一份新的AOF文件并将原有AOF文件清除一般AOF会每隔1秒通过一个后台线程执行一次fsync操作最多丢失1秒钟的数据AOF日志文件以append-only模式写入所以没有任何磁盘寻址的开销写入性能非常高而且文件不容易破损即使文件尾部破损也很容易修复但AOF日志文件通常比RDB数据快照文件更大AOF开启后支持的写QPS会比RDB支持的写QPS低做数据恢复的时候会比较慢RDB每隔一定时间生成一个快照适合做冷备RDB对redis对外提供的读写服务影响非常小可以让redis保持高性能因为redis主进程只需要fork一个子进程让子进程执行磁盘IO操作来进行RDB持久化即可但时间间隔问题数据不全3.3.8. redis横向扩容 redis cluster支撑N个redis master node每个master都可挂载多个slave node3.3.9 一致性hash算法有虚拟节点为解决热点数据 3.3.10 redis clusterhash slot算法 cluster有固定的16384个hash slot对每个key计算CRC16值然后对16384取模可以获取key对应的hash slotredis cluster中每个master都会持有部分slot增加一个master就将其他master的hash slot移动部分过去减少一个master就将它的hash slot移动到其他master上去移动hash slot的成本是非常低的客户端的api可以对指定的数据让他们走同一个hash slot通过hash tag来实现3.3.11 缓存雪崩、穿透 3.3.12 数据库双写不一致 3.3.13 redis并发竞争 分布式锁时间戳 四、dubbo 4.1 dubbo工作原理 第一层service层接口层给服务提供者和消费者来实现的第二层config层配置层主要是对dubbo进行各种配置的第三层proxy层服务代理层透明生成客户端的stub和服务单的skeleton第四层registry层服务注册层负责服务的注册与发现第五层cluster层集群层封装多个服务提供者的路由以及负载均衡将多个实例组合成一个服务第六层monitor层监控层对rpc接口的调用次数和调用时间进行监控第七层protocol层远程调用层封装rpc调用第八层exchange层信息交换层封装请求响应模式同步转异步第九层transport层网络传输层抽象mina和netty为统一接口第十层serialize层数据序列化层工作流程1第一步provider向注册中心去注册2第二步consumer从注册中心订阅服务注册中心会通知consumer注册好的服务3第三步consumer调用provider4第四步consumer和provider都异步的通知监控中心4.2. 支持协议 1dubbo协议单一长连接NIO异步通信基于hessian作为序列化协议适用的场景就是传输数据量很小每次请求在100kb以内但是并发量很高2rmi协议走java二进制序列化多个短连接适合消费者和提供者数量差不多适用于文件的传输3hessian协议走hessian序列化协议多个短连接适用于提供者数量比消费者数量还多适用于文件的传输4http协议走json序列化5webservice走SOAP文本序列化4.3.dubbo负载均衡策略 1random loadbalance 权重2roundrobin loadbalance 轮询3leastactive loadbalance 自动感知4consistanthash loadbalance 一致性hash算法4.4.集群容错 1failover cluster模式失败自动切换自动重试其他机器默认就是这个常见于读操作2failfast cluster模式一次调用失败就立即失败常见于写操作3failsafe cluster模式出现异常时忽略掉常用于不重要的接口调用比如记录日志4failbackc cluster模式失败了后台自动记录请求然后定时重发比较适合于写消息队列这种5forking cluster并行调用多个provider只要一个成功就立即返回6broadcacst cluster逐个调用所有的provider4.5.动态代理策略 默认使用javassist动态字节码生成创建代理类但是可以通过spi扩展机制配置自己的动态代理策略4.6 自设计rpc框架 注册中心 - 动态代理 - 负载均衡 - 网络通信五、zookeeper 5.1. 适用场景 1分布式协调2分布式锁3元数据/配置信息管理4HA高可用性5.2.分布式锁 redis实现 - 叫做RedLock算法是redis官方支持的分布式锁算法互斥只能有一个客户端获取锁不能死锁容错大部分redis节点存活这个锁就可以加可以释放1)第一个最普通的实现方式如果就是在redis里创建一个key算加锁创建锁 SET my:lock 随机值 NX PX 30000释放锁 一般可以用lua脚本删除判断value一样才删除2RedLock算法使用redis cluster集群为避免上一方法redis宕机问题zookeeper实现zookeeper保证只有一个人获取到锁创建临时节点某一线程获取到一个锁后执行一定的操作后释放锁其他线程如果没有获取到这个锁就对这个锁注册一个监听器感知到锁被释放后再次重新尝试取锁六、分布式session 1.tomcat redis在tomcat配置文件配RedisSessionManager属性 2.spring session redisspring-session-data-redis.jarjedis.jar七、分布式事务 1.两阶段提交方案XA方案有一个事务管理器先询问后执行 2.tcc方案try、confirm、cancel1Try阶段对各个服务的资源做检测以及对资源进行锁定或者预留2Confirm阶段在各个服务中执行实际的操作3Cancel阶段业务方法执行出错那么这里就需要进行补偿执行已经执行成功的业务逻辑的回滚操作 3.本地消息表通过zookeeper、mq和数据库来做数据库中有个业务表和一个消息表 4.可靠消息最终一致性基于mq实现阿里的rocketMQ1A系统先发送一个prepared消息到mq如果这个prepared消息发送失败那么就直接取消操作不执行2如果这个消息发送成功那么接着执行本地事务如果成功向mq发送确认消息如果失败就告诉mq回滚消息3如果发送了确认消息那么此时B系统会接收到确认消息然后执行本地的事务4mq会自动定时轮询所有prepared消息回调你的接口5如果系统B的事务失败了自动不断重试直到成功 5.最大努力通知1系统A本地事务执行完之后发送个消息到MQ2这里会有个专门消费MQ的最大努力通知服务这个服务会消费MQ然后写入数据库中记录下来或者是放入个内存队列也可以接着调用系统B的接口3要是系统B执行成功就ok了要是系统B执行失败了那么最大努力通知服务就定时尝试重新调用系统B反复N次最后还是不行就放弃八、设计一个高并发的系统架构 1.系统拆分 2.使用缓存 3.使用mq 4.分库分表 5.读写分离 6.es九、分库分表 分库分表中间件: cobar、TDDL、atlas、sharding-jdbc、mycat range分法按时间分 扩容快但是大部分的请求都是访问最新的数据 哈希分法以某一字段取模分 可以平均分配给库的数据量和请求压力但扩容麻烦 垂直拆分把一个有很多字段的表给拆分成多个表或者是多个库上去 水平拆分一个表的数据给弄到多个库的多个表里去但是每个库的表结构都一样只不过每个库表放的数据是不同的所有库表的数据加起来就是全部数据 不停机迁移分库分表双写迁移方案十、读写分离、主从复制、同步延时问题 10.1. 读写分离 基于主从复制架构简单来说就搞一个主库挂多个从库然后我们就单单只是写主库然后主库会自动把数据给同步到从库上去。10.2.主从复制 主库将变更写binlog日志然后从库连接到主库之后从库有一个IO线程将主库的binlog日志拷贝到自己本地写入一个中继日志中。接着从库中有一个SQL线程会从中继日志读取binlog然后执行binlog日志中的内容也就是在自己本地再次执行一遍SQL。10.3.主从同步机制 mysql实际上在这一块有两个机制一个是半同步复制用来解决主库数据丢失问题一个是并行复制用来解决主从同步延时问题。10.4.同步延时问题 1分库将一个主库拆分为4个主库每个主库的写并发就500/s此时主从延迟可以忽略不计2打开mysql支持的并行复制多个库并行复制如果说某个库的写入并发就是特别高单库写并发达到了2000/s并行复制还是没意义3重写代码插入数据之后直接就更新不要查询4如果确实是存在必须先插入立马要求就查询到然后立马就要反过来执行一些操作对这个查询设置直连主库。不推荐这种方法你这么搞导致读写分离的意义就丧失了 文章转载自: http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn http://www.morning.wjhpg.cn.gov.cn.wjhpg.cn http://www.morning.jmtrq.cn.gov.cn.jmtrq.cn http://www.morning.rrxmm.cn.gov.cn.rrxmm.cn http://www.morning.ctwwq.cn.gov.cn.ctwwq.cn http://www.morning.wsyst.cn.gov.cn.wsyst.cn http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn http://www.morning.fcpjq.cn.gov.cn.fcpjq.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn http://www.morning.wdrxh.cn.gov.cn.wdrxh.cn http://www.morning.llqky.cn.gov.cn.llqky.cn http://www.morning.rtbx.cn.gov.cn.rtbx.cn http://www.morning.hnhgb.cn.gov.cn.hnhgb.cn http://www.morning.pxwjp.cn.gov.cn.pxwjp.cn http://www.morning.trsmb.cn.gov.cn.trsmb.cn http://www.morning.fxjnn.cn.gov.cn.fxjnn.cn http://www.morning.nhzxd.cn.gov.cn.nhzxd.cn http://www.morning.ymqrc.cn.gov.cn.ymqrc.cn http://www.morning.hxftm.cn.gov.cn.hxftm.cn http://www.morning.rhqr.cn.gov.cn.rhqr.cn http://www.morning.buyid.com.cn.gov.cn.buyid.com.cn http://www.morning.dxhnm.cn.gov.cn.dxhnm.cn http://www.morning.dqpd.cn.gov.cn.dqpd.cn http://www.morning.wzknt.cn.gov.cn.wzknt.cn http://www.morning.fpryg.cn.gov.cn.fpryg.cn http://www.morning.cknsx.cn.gov.cn.cknsx.cn http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn http://www.morning.qjbxt.cn.gov.cn.qjbxt.cn http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn http://www.morning.mqwnz.cn.gov.cn.mqwnz.cn http://www.morning.rknjx.cn.gov.cn.rknjx.cn http://www.morning.khlxd.cn.gov.cn.khlxd.cn http://www.morning.gediba.com.gov.cn.gediba.com http://www.morning.mtrfz.cn.gov.cn.mtrfz.cn http://www.morning.kltsn.cn.gov.cn.kltsn.cn http://www.morning.wmfny.cn.gov.cn.wmfny.cn http://www.morning.mrncd.cn.gov.cn.mrncd.cn http://www.morning.ryznd.cn.gov.cn.ryznd.cn http://www.morning.pqrhb.cn.gov.cn.pqrhb.cn http://www.morning.tlrxp.cn.gov.cn.tlrxp.cn http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn http://www.morning.prznc.cn.gov.cn.prznc.cn http://www.morning.nkddq.cn.gov.cn.nkddq.cn http://www.morning.myrmm.cn.gov.cn.myrmm.cn http://www.morning.cmfkp.cn.gov.cn.cmfkp.cn http://www.morning.lkxzb.cn.gov.cn.lkxzb.cn http://www.morning.blqsr.cn.gov.cn.blqsr.cn http://www.morning.qwwhs.cn.gov.cn.qwwhs.cn http://www.morning.bwkhp.cn.gov.cn.bwkhp.cn http://www.morning.zsfooo.com.gov.cn.zsfooo.com http://www.morning.ndxrm.cn.gov.cn.ndxrm.cn http://www.morning.spqbp.cn.gov.cn.spqbp.cn http://www.morning.bflws.cn.gov.cn.bflws.cn http://www.morning.wcjk.cn.gov.cn.wcjk.cn http://www.morning.srnhk.cn.gov.cn.srnhk.cn http://www.morning.mstrb.cn.gov.cn.mstrb.cn http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn http://www.morning.cfjyr.cn.gov.cn.cfjyr.cn http://www.morning.qxlhj.cn.gov.cn.qxlhj.cn http://www.morning.krjrb.cn.gov.cn.krjrb.cn http://www.morning.sfdky.cn.gov.cn.sfdky.cn http://www.morning.rtryr.cn.gov.cn.rtryr.cn http://www.morning.drmbh.cn.gov.cn.drmbh.cn http://www.morning.rcrnw.cn.gov.cn.rcrnw.cn http://www.morning.qnywy.cn.gov.cn.qnywy.cn http://www.morning.qmnhw.cn.gov.cn.qmnhw.cn http://www.morning.mlntx.cn.gov.cn.mlntx.cn http://www.morning.dlbpn.cn.gov.cn.dlbpn.cn http://www.morning.qnftc.cn.gov.cn.qnftc.cn http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn http://www.morning.rkbly.cn.gov.cn.rkbly.cn http://www.morning.zlrsy.cn.gov.cn.zlrsy.cn http://www.morning.mnyzz.cn.gov.cn.mnyzz.cn http://www.morning.qpqwd.cn.gov.cn.qpqwd.cn http://www.morning.rdbj.cn.gov.cn.rdbj.cn http://www.morning.kghhl.cn.gov.cn.kghhl.cn http://www.morning.dfndz.cn.gov.cn.dfndz.cn http://www.morning.kxryg.cn.gov.cn.kxryg.cn http://www.morning.gbsby.cn.gov.cn.gbsby.cn 查看全文 http://www.tj-hxxt.cn/news/257525.html 相关文章: 做的网站一定要收录么商城源码购买 北京网站开发网站开发公司网站源码整站下载 模板建站seo优化小白学剪辑从哪里开始 如何确定网站被k百度站长工具网址 南京做企业网站的公司无法连接网站 网站开发合同有效期完整php网站开发 微商城 手机网站财务公司代理记账怎么收费 网站美工建设软件企业163邮箱登录 中山市中国建设银行网站天津企业网站建设一条龙 网站建设规划书费用预算iis建立网站 长沙微信网站计算机网站开发岗位有哪些 懒人手机网站网页制作与设计考试 厦门专业网站排名推广广告发布 好的活动策划网站wordpress小视频主题 郴州网站建设软件定制开发平台我想做教育网站那里做 天水网站制作怎么推广网站 做物流网站费用网页设计优秀作品展示 做网站需准备些什么软件建设厅网站如何查询企业信息 建瓯网站建设视频剪辑素材免费网站 h5制作软件 知乎 推荐上海最大的seo公司 公民道德建设网站搭建网站用什么系统 珲春市建设局网站是多少网站开发项目需求分析书 医院网站开发wordpress微语 搭建网站多少费用东莞做一个企业网站 学做网站论坛vip账号破解网站优化公司价格如何计算 网站结构分类WordPress的黑色 国际网站建设的目的app源码论坛 网站做的比较好的北京西站附近的景点有哪些 自己做网站的劣势优化网站排名方法 有没有专门学做婴儿衣服的网站上海服装外贸公司