什么是微服务扩展性和高可用可扩展性
Posted 程序员环西
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是微服务扩展性和高可用可扩展性相关的知识,希望对你有一定的参考价值。
前言
为什么互联网资讯这么发达,但是没有出现技术人才井喷?
为什么会出现应届生薪资倒挂多年老员工的现象?
这个世界有太多的现象都可以用**“二八定律”**来解释。
20%拿着高工资,80%每天挣扎在增删改查边缘。
职场一分钱一分货
人家拿高薪,不是全靠运气
工作年限越久,不代表越值钱
一年经验用了五年,无法改变
因为经历不等于经验
加班“重灾区”的互联网行业以996闻名,每天超过11小时的工作时长每年位居各行业之首。
工作内容重复,加班导致学习时间不够,无法跟上技术更新脚本。
如何花最少时间学习最多知识,迫在眉睫!
如何打破程序员提升的三大屏障,成为符合互联网行业的JAVA高级工程师。
Redis常用的数据类型
Redis的五种常用的数据类型分别是:String、Hash、List、Set和Sorted set
Redis的使用场景
1.Counting(计数)
2.展示最近、最热、点击率最高、活跃度最高等等条件的top list
3.用户最近访问记录也是redis list的很好应用场景
4.通过list的lpop及lpush接口进行队列的写入和消费
5.Redis 的Lua的功能扩展实际给Redis带来了更多的应用场景,你可以编写若干command组合作为一个小型的非阻塞事务或者更新逻辑
6.Redis提供的主从数据同步功能,其实是对cache的一个强有力功能扩展
小结
如此多的应用无非离不开Redis的所有特性
揭开Redis的神秘面纱
Redis是一个开源(KEY-VALUE键值对),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。采用单进程单线程模型,并发能力强大,是当前互联网架构中主流的分布式缓存工具。
Redis高性能缓存架构设计
1.架构设计
由于redis是单点,项目中需要使用,必须自己实现分布式。基本架构图如下所示:
2.分布式实现
通过key做一致性哈希,实现key对应redis结点的分布。
一致性哈希的实现:
hash值计算:通过支持MD5与MurmurHash两种计算方式,默认是采用MurmurHash,高效的hash计算。
一致性的实现:通过java的TreeMap来模拟环状结构,实现均匀分布
3.client的选择
对于jedis修改的主要是分区模块的修改,使其支持了跟据BufferKey进行分区,跟据不同的redis结点信息,可以初始化不同的ShardInfo,同时也修改了JedisPool的底层实现,使其连接pool池支持跟据key,value的构造方法,跟据不同ShardInfos,创建不同的jedis连接客户端,达到分区的效果,供应用层调用
4.模块的说明
脏数据处理模块,处理失败执行的缓存操作。
屏蔽监控模块,对于jedis操作的异常监控,当某结点出现异常可控制redis结点的切除等操作。
整个分布式模块通过hornetq,来切除异常redis结点。对于新结点的增加,也可以通过reload方法实现增加。(此模块对于新增结点也可以很方便实现)
最后总结我的面试经验
2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
资料领取方式:点击这里免费获取
BAT面试经验
实战系列:Spring全家桶+Redis等
其他相关的电子书:源码+调优
面试真题:
91176190)]
面试真题:
[外链图片转存中…(img-PUIjRqkP-1624691176191)]
[外链图片转存中…(img-MApPLBVW-1624691176191)]
以上是关于什么是微服务扩展性和高可用可扩展性的主要内容,如果未能解决你的问题,请参考以下文章