随笔分类 -  面试

摘要:限流算法常见的有三种实现:滑动时间窗口、令牌桶算法、漏桶算法。Gateway则采用了基于Redis实现的令牌桶算法。 而Sentinel内部却比较复杂: - 默认限流模式是基于滑动时间窗口算法 - 排队等待的限流模式则基于漏桶算法 - 而热点参数限流则是基于令牌桶算法 ![](https://img 阅读全文
posted @ 2023-06-30 22:44 xycccode 阅读(204) 评论(0) 推荐(0)
摘要:Hystix默认是基于线程池实现的线程隔离,每一个被隔离的业务都要创建一个独立的线程池,线程过多会带来额外的CPU开销,性能一般,但是隔离性更强。 Sentinel是基于信号量(计数器)实现的线程隔离,不用创建线程池,性能较好,但是隔离性一般。 阅读全文
posted @ 2023-06-30 22:39 xycccode 阅读(66) 评论(0) 推荐(0)
摘要:SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括: •注册中心组件:Eureka、Nacos等 •负载均衡组件:Ribbon •远程调用组件:OpenFeign •网关组件:Zuul、Gateway •服务保护组件:Hystrix、Sentinel •服务配置管理组件:S 阅读全文
posted @ 2023-06-30 21:30 xycccode 阅读(547) 评论(0) 推荐(0)
摘要:Nacos与Eureka有相同点,也有不同之处,可以从以下几点来描述: - **接口方式**:Nacos与Eureka都对外暴露了Rest风格的API接口,用来实现服务注册、发现等功能 - **实例类型**:Nacos的实例有永久和临时实例之分;而Eureka只支持临时实例 - **健康检测**:N 阅读全文
posted @ 2023-06-30 21:28 xycccode 阅读(380) 评论(0) 推荐(0)
摘要:![](https://img2023.cnblogs.com/blog/3120037/202306/3120037-20230630211531269-1613728409.png) 刚开始: private final Map> serviceMap = new ConcurrentHashM 阅读全文
posted @ 2023-06-30 21:26 xycccode 阅读(399) 评论(0) 推荐(0)
摘要:Nacos内部接受到注册的请求时,不会立即写数据,而是将服务注册的任务放入一个阻塞队列里面立即响应给客户端。然后利用线程池 读取阻塞队列中的任务,异步来完成本地实例和集群中其他实例的更新,从而提高并发能力。这个阻塞队列大小为1024。 参考我的文档:https://www.cnblogs.com/w 阅读全文
posted @ 2023-06-30 20:56 xycccode 阅读(120) 评论(0) 推荐(0)
摘要:## 回答 Nacos采用了数据分级存储模型,最外层是 Namespace,用来隔离环境。然后是Group,用来对服务分组。接下来就是服务(Service)了,一个服务包含多个实例,但是可能处于不同的机房,因此Service下有多个集群(Cluster),Cluster下是不同的实例(Instanc 阅读全文
posted @ 2023-06-30 17:37 xycccode 阅读(723) 评论(0) 推荐(0)
摘要:当单表行数超过500W行或者单表数据容量超过2G时,就会对查询性能产生较大影响,这个时候建议对表进行优化。 其实500W数据只是一个折中的值,具体的数据量和数据库服务器配置以及mysql配置有关,因为Mysql为了提升性能,会把表的索引装载到内存,innodb_buffer_pool_size 足够 阅读全文
posted @ 2023-03-06 18:06 xycccode 阅读(376) 评论(0) 推荐(0)