微服务项目

229 阅读3分钟

微服务项目 分析解体

隔离系统的变化点

从A到B 没什么难的 但是中间可能会出现变化的地方 就是我们要干活的地方,各种参数的变化 要把他抽象出来, 要么变成策略模式 ,要么就变成规程

一般用到规则的时候 和任务的时候 大概率是要继承的 大规则到小规则 用继承来实现

  面试问到的如何去开发一个项目?

image.png

ko就是指大家做在一起开会

项目的人员安排

image.png

项目拆分的原则

image.png

项目架构

image.png

从nginx到网关再到业务层 业务层是去调用能力层的api 0个到不等 组装起来

image.png

springcloud架构

image.png

项目命名

image.png

面试吹逼

image.png

image.png

第三方

image.png

接口设计

image.png

安全

image.png

jsoup可以防止xss攻击

生成环境中eureka的优化

  • 服务少的时候不开自我保护 挂了大概率就是挂了
  • 多的时候开自我保护 很可能是网络抖动 可以关闭自我保护 设置剔除时间 小一点 别让用户调用到失效的服务 源码中的timer 用的不是很好 当有一个timetask没有捕获异常 其他任务也都会终止

设置onlyread为false 就不会去里面读 会快一些,当初题目设置这个属性是为了方便高平发读,但是正常来说不需要

image.png

代码设计模式 holder 把系统实例加入到某个类中 为了防止频泛的改动这个类,例如续约 类要跟新时间 把实例放入lease类中 更新时间好了,不用去更改这个实例。

eureka的副本备份 unavailable的话大概率是localhost 和applicatuonname 和本地host的问题

服务测算:

1 s 能承受10万次

20 个服务 心跳 和拉取30 秒一个 一天 50万次

心跳都是秒级别的 不能抄过3分钟

3个以上的高可用配置

server端要打开向注册中心注册 问题就在两点上 app为空就false了 所以要向注册中心注册,不然拿不到注册表 然后就是写的域名要和注册表拿到的一样

image.png client的开关在这 可用手动设置成false

image.png

client 注册的话只会注册第一个注册中心 其他会同步的 如果前三个都失败了 第四个是不会尝试的,除法你改配置

image.png

面试怎么吹eureka

image.png

短信服务

image.png

生产中注意去掉 快照后缀 不然又风险

别人上传一个新的jar包 他也会去拉取

使用Lomabok的技巧

image.png 可用联试调用

短信验证码生成

image.png

短信防恶意刷

image.png

短信模板用缓存

image.png

多线程任务起多少线程数定性公式

计算多就接近0

image.png

常用的提高qps的方法

image.png

二房库的规范

dto下面每个微服务都要写包名 然后下面的request和response

image.png

计价的时候如果要用bigdecimal 要用字符串

image.png

写一个微服务的思路

首先得找到注册中心,把自己注册上去,然后看业务层 ,去调用哪些微服务,可以用feign和resttemplate 去找到这个,网关做鉴权,token,拦截,二房库,写common类。

写微服务的时候要尽量保证建设io

类似数据库的io,能少则少。可以用事务去保障他不出错