john's tech blog

hope is coming


  • 首页

  • 标签

  • 归档

Spring Cloud Alibaba 知识点

发表于 2019-05-08

组件
Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
Dubbo:Apache Dubbo™ (incubating) 是一款高性能 Java RPC 框架。
Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
Alibaba Cloud ACM:一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。
Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。
Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道

微服务领域是不是要变天了?Spring Cloud Alibaba正式入驻Spring Cloud官方孵化器
spring-cloud-alibaba

缓存知识点整理

发表于 2019-05-08

缓存穿透

一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。一些恶意的请求会故意查询不存在的key,请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。

如何避免?
1:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存。
2:对一定不存在的key进行过滤。可以把所有的可能存在的key放到一个大的Bitmap中,查询时通过该bitmap过滤。

缓存雪崩
当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,会给后端系统带来很大压力。导致系统崩溃。

如何避免?
1:在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。
2:做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为短期,A2设置为长期
3:不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀。

Redis常见面试题

redis知识点整理

发表于 2019-05-08

1、Redis如何做内存优化?尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。比如你的web系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的key,而是应该把这个用户的所有信息存储到一张散列表里面。

2.mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

redis 提供 6种数据淘汰策略:
voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据

30道Redis面试题,面试官能问的都被我找到了
Redis常见面试题)

spring security框架基础知识点

发表于 2019-05-08 | 更新于 2019-06-25

1、引入包spring-boot-starter-security
2.@EnableWebSecurity 注解
3.WebSecurityConfigurerAdapter适配器

参考资料:
Spring Security原理篇(一) 启动原理

  1. SpringCloud组件:你的Eureka服务注册中心安全吗?
  2. spring cloud-给Eureka Server加上安全的用户认证
  3. 新版Eureka Server 加上Spring Security安全认证之后,客户端无法注册和客户端启动Up后就Down的问题

知识点整理

发表于 2019-05-05 | 更新于 2019-05-08

1.常用设计模式
2.spring cloud ribbon 熟悉
3.springboot 和 spring cloud 的区别 spring cloud 依赖于springboot
4.springboot 必须的配置 – 端口
5.算法– 100以内素数的数组
6.算法– 斐波数列的函数表达式
7.jvm gc相关 //https://www.cnblogs.com/wjtaigwh/p/6635484.html
8.jvm为什么能跨平台 //不能编译成机器语言,因为那样就与平台相关了,编译为中间语言,再由解释器二次编译,解释执行。//https://www.cnblogs.com/roger-yu/p/5827452.html
9.scala和java的区别
10.tcp三次握手
11.restful接口
12.mysql innodb 和maridb的区别 //https://blog.csdn.net/qq_27607965/article/details/79925288

13.string stringbuffer 和 stringbuilder的区别 //https://www.cnblogs.com/su-feng/p/6659064.html

14.java反射常用类 classloader //https://www.cnblogs.com/jimoer/p/9185662.html
//http://blog.itpub.net/31561269/viewspace-2222522/
//https://www.cnblogs.com/doit8791/p/5820037.html
//https://www.cnblogs.com/sun1993/p/7828535.html
//https://www.cnblogs.com/zabulon/p/5826610.html

15.spring mvc 路由机制

16.Aop
https://blog.csdn.net/dadiyang/article/details/82920139

17.Spring Security
https://blog.csdn.net/liushangzaibeijing/article/details/81220610#%C2%A0%202%E3%80%81WebSecurityConfiguration%E7%B1%BB

https://www.liangzl.com/get-article-detail-7915.html
https://www.jianshu.com/nb/29347401

18.MQ

19.除了ip白名单,还有其他拦截机制吗
20.分布式任务调度
21.缓存穿透和缓存雪崩
https://www.cnblogs.com/jasontec/p/9699242.html

22.dubbo 没有注册中心 也可以访问吗
https://blog.csdn.net/weixin_43170586/article/details/83244562
https://blog.csdn.net/xy3233/article/details/85759649
https://blog.csdn.net/sosozha/article/details/86712478

23、Dubbo与注册中心Zookeeper的交互过程
https://blog.csdn.net/qq_27529917/article/details/80632078

24.Spring cloud Feign
https://www.cnblogs.com/liferecord/p/6893786.html
https://blog.csdn.net/q_0718/article/details/80269864

25.jdk 1.8 的主要特性
https://blog.csdn.net/qq_29411737/article/details/80835658

26.幂等性
//https://www.cnblogs.com/javalyy/p/8882144.html
27.spring事务 参数
28.redis锁
29.jvm调优 为什么设置256m就够了
//https://blog.csdn.net/tpasta/article/details/82120974
JVM参数中添加GC日志,GC日志中会记录每次FullGC之后各代的内存大小,观察老年代GC之后的空间大小。可观察一段时间内(比如2天)的FullGC之后的内存情况,根据多次的FullGC之后的老年代的空间大小数据来预估FullGC之后老年代的存活对象大小(可根据多次FullGC之后的内存大小取平均值)

30.策略模式是怎样的
//http://baijiahao.baidu.com/s?id=1601547440739500969&wfr=spider&for=pc
封装变化的概念。
编程中使用接口,而不是使用的是具体的实现类(面向接口编程)。

31.什么情况下会出现内存溢出
//https://www.cnblogs.com/panxuejun/p/5883044.html
32.乐观锁和悲观锁 //乐观锁与悲观锁不是指具体的什么类型的锁,而是指看待并发同步的角度。
//https://www.cnblogs.com/lxmyhappy/p/7380073.html
33.如何保证一致性
//https://blog.csdn.net/hxpjava1/article/details/79409459
//https://blog.csdn.net/qq_41568597/article/details/82501738
34.java有哪些锁
//https://www.cnblogs.com/lxmyhappy/p/7380073.html

35.spring ioc bean 的生命周期
//https://www.cnblogs.com/goodcheap/p/6491490.html
36.代码规范
37.消耗cpu的操作
//https://www.cnblogs.com/duanxz/p/4159963.html
//https://www.cnblogs.com/paul8339/p/7464206.html

1…131415…47

John

232 日志
43 标签
GitHub Twitter
欢迎关注我的公众号:沉迷Spring
© 2023 johnwonder
由 Hexo 强力驱动 v3.2.0
|
主题 – NexT.Pisces v7.1.1
|
0%