微服务项目 分析解体
隔离系统的变化点
从A到B 没什么难的 但是中间可能会出现变化的地方 就是我们要干活的地方,各种参数的变化 要把他抽象出来, 要么变成策略模式 ,要么就变成规程
一般用到规则的时候 和任务的时候 大概率是要继承的 大规则到小规则 用继承来实现
面试问到的如何去开发一个项目?
ko就是指大家做在一起开会
项目的人员安排
项目拆分的原则
项目架构
从nginx到网关再到业务层 业务层是去调用能力层的api 0个到不等 组装起来
springcloud架构
项目命名
面试吹逼
第三方
接口设计
安全
jsoup可以防止xss攻击
生成环境中eureka的优化
- 服务少的时候不开自我保护 挂了大概率就是挂了
- 多的时候开自我保护 很可能是网络抖动 可以关闭自我保护 设置剔除时间 小一点 别让用户调用到失效的服务 源码中的timer 用的不是很好 当有一个timetask没有捕获异常 其他任务也都会终止
设置onlyread为false 就不会去里面读 会快一些,当初题目设置这个属性是为了方便高平发读,但是正常来说不需要
代码设计模式 holder 把系统实例加入到某个类中 为了防止频泛的改动这个类,例如续约 类要跟新时间 把实例放入lease类中 更新时间好了,不用去更改这个实例。
eureka的副本备份 unavailable的话大概率是localhost 和applicatuonname 和本地host的问题
服务测算:
1 s 能承受10万次
20 个服务 心跳 和拉取30 秒一个 一天 50万次
心跳都是秒级别的 不能抄过3分钟
3个以上的高可用配置
server端要打开向注册中心注册 问题就在两点上 app为空就false了 所以要向注册中心注册,不然拿不到注册表 然后就是写的域名要和注册表拿到的一样
client的开关在这 可用手动设置成false
client 注册的话只会注册第一个注册中心 其他会同步的 如果前三个都失败了 第四个是不会尝试的,除法你改配置
面试怎么吹eureka
短信服务
生产中注意去掉 快照后缀 不然又风险
别人上传一个新的jar包 他也会去拉取
使用Lomabok的技巧
可用联试调用
短信验证码生成
短信防恶意刷
短信模板用缓存
多线程任务起多少线程数定性公式
计算多就接近0
常用的提高qps的方法
二房库的规范
dto下面每个微服务都要写包名 然后下面的request和response
计价的时候如果要用bigdecimal 要用字符串
写一个微服务的思路
首先得找到注册中心,把自己注册上去,然后看业务层 ,去调用哪些微服务,可以用feign和resttemplate 去找到这个,网关做鉴权,token,拦截,二房库,写common类。
写微服务的时候要尽量保证建设io
类似数据库的io,能少则少。可以用事务去保障他不出错