开发技术解决业务:
Robbitmq集群(镜像模式):由于项目子模块多,业务繁琐复杂,利用robbitmq创建延时队列,进行解耦,削峰,异步处理。利用镜像模式搭建实现高可用。
Reidis:用于主项目和子模块项目进行共享数据,分布式锁的使用,并且将数据根据业务不同,存储到不同redis库中。子项目会根据业务在不同的库中进行获取对应同步数据。对于这个分布式锁存在一个续期时间。
Springcloud:主要利用geteway控制网关,fegin做为调用不同链路的api,nacos作为注册中心和服务中心,hystrix进行熔断处理等。
Dockder:用于搭建环境。
Nginx:主要用于负载均衡。
Quarzt:根据业务来创建任务,任务触发器,注入触发器构建定时任务,利用定时任务来创建线程利用ThreadPoolExecutor创建线程池进行执行,hystrix进行隔离处理。
设计模式:
模板方法设模式:由于有一些业务处理一致,所以使用拉模板方法设模式封装一些公共抽象方法,根据业务走向不同的子模版实现类。
工厂模式:根据业务创建抽象的工厂和方法。根据具体的实现类,走向具体业务。
责任链模式:由于存在一个上报业务问题,需要不同部门的人员审核,利用该模式进行上报审核处理。
建造者模式:由于一些业务对象内部及其复杂,并且具备一定的顺序性质,利用建造者模式的特点,通过指挥使创建具体的建造对象,解决一些业务问题。
系统运行,内存问题排查:
由于每天的物流数据量很大,导致系统出现一定的卡顿,内存溢出等。所以我会线根据top查询出现cpu使用情况,根据top Hp pid查找该项目下的线程使用情况,一般会找最高cpu的线程pid,然后通过printf ‘%x’pid 转换为二进制会的到一个转换的值,在利用jstack pid(线程)生成一个文件,然后下载文件进行排查cpu飙升的情况等。