架构师备考的一些思考(四)
前言
对于数学,我们之前学的是对的,但不是真的,所以我们没有数学思维。
对于计算机,我们学校教的是对的,但不是真的,所以仅仅从学校学习知识的应届毕业生,不论985,211,本科,专科都一样,都是一张白纸,啥也不会。
案例分析
案例分析是5选3,第一题必答。
- 问题一的类型
架构风格对比 - 问题二的类型
质量属性填写 - 问题三的类型
ER图分析 - 问题类型四
场景分析,此类型题比较多。
案例分析主要是结合我们之前介绍的内容和自身的经验来回答。
论文
这个论文虽然说是论文,但看问题,会发现,它总让你叙述你参加的项目及承担的工作。
所以这里应该是我们要先写个项目描述,这个项目就是一个假、大、空的项目,我们可以把之前自己做的项目集合成一个虚拟项目写出来。
承担的工作肯定是架构师了,因为要考架构师嘛。
论数据分片技术及其应用
数据分片就是按照一定的规则,将数据集划分成相互独立正交的数据子集。然后将数据子集分布到不同的节点上,通过设计合理的数据分片规则,可将系统中的数据分布在不同的
物理数据库中,达到提升应用系统数据处理速度的目的。
请围绕“论数据分片技术及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发软件的项目以及承担的工作。
2.Hash 分片,一致性 Hash 分片和按照数据范围分片是三种常用的数据分,方式。
3.具体阐述你参与管理和开发的项目,且采用了哪些分片方式,并且具体说明其实现过程和应用效果。
论云原生架构及其应用
请围绕“论云原生架构及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及承担的主要工作。
2.服务化,强性,韧性、可观测任性和自动化是云原生架构重复的四类设计原则,请简要对这四类设计原则的内涵进行阐述。
3.具体阐述你参与管理和开发的项目是如何向采用云原生架构的,并且围绕上述四类设计原则详细论述在项目设计与实现过程中遇到了哪些实际问题。是如何解决的?
论文例子
这里简单写个例子。因为要求字数,所以我们能上一些废话,就上一些。
下面是论文格式:
自我介绍
20xx年我所在公司开发了xxx智慧综合管理平台,在该系统中,我担任架构师兼项目经理职务,即负负责定项目计划,需求分析,工作分配,人员管理,也负责项目框架开发,数据库设计,项目质量管理,同时也负责测试管理工作。
项目功能
这里要能多写点就多写点,越复杂越好。
XXX智慧综合管理平台是一个集成了多个系统的综合平台,包含权限系统,单点登录系统,OA办公系统,进销存系统(ERP),信息管理系统(MIS),基础数据平台,GIS数据一张图系统,移动端巡检系统,数据管理桌面应用系统,实时监控桌面应用系统。
关于
要凑字数,也同时介绍自己的技术,要写一些关于。
关于微服务,使用spring cloud+naocs(利用loadblance负载均衡),使用getway网关,使用getway的熔断,使用Sentinel,ELK Stack收集日志,服务追踪使用SkyWalking。
关于大数据处理,比如使用阿里巴巴的oss分布式存储系统,同时介绍为什么不使用hdfs,比如oss更简洁,不用去搭建复杂的生态环境。
关于大并发插入,比如使用三级缓冲,线程池,akka,feign(借用loadblance的负载均衡减压),kafka(可选)
关于大并发查询,比如使用redis缓存数据,使用布隆过滤以空间换时间,增加缓存查询效率,使用访问延期策略和分布式缓存数据库,防止缓存穿透和缓存雪崩。
实时数据处理/ETL,比如使用kappa架构,使用flink处理流数据,同时介绍为什么不使用spark,因为spark的state是微批处理,存储数据一致性和准确性问题,所以还要做批处理层,复杂度高。
olap数据分析,比如使用doris数据库,然后使用rollup或者物化来增加检索效率,或者elasticSearch的elk方案;然后结合机器学习或者人工智能处理分析数据。
数据库集群/分布式数据库,介绍一下分库分表方案。
多数据库:就是mybatis集合druid的技术,表现上是@ds注解选库,高大上的介绍一下使用。如果有自己写过替代mybatis的orm,还可以写跨数据库事务,没写过也可以编。
数据一致性:分布式锁,就是redis锁。
使用AOP切面技术,使用aspectj对入参请求和异常请求进行拦截,并记录日志。
关于安全,使用Security和Auth2,云服务等等。
使用技术
把你认识的技术都写上。
使用技术非常多,不同的类型的项目使用不同的技术。
使用java系技术有:spring cloud,spring boot,nacos,gatway,akka,kafka,flink,android等。
使用net系技术有:net core,wcf,asp.net,wpf,winform,consul,ocelot,rabbitmq等。
使用数据库有:mysql,sqlserver,oracle,splite,redis,clickhouse等。
其他技术有:arcgis,AutoCAD,摄像头调用,plc调用,人脸识别,指纹识别,opencv,ffmpeg,Elasticsearch,Logstash,Kibana等。
回答问题
我在xx系统中使用了hash分片,在实现XX功能时,为了提高性能和访问安全,我们采取了缓存措施,我们把请求的数据实体的hashcode取出来,因为hashcode是比较大的数,为了减轻缓存压力,我们采取了布隆过滤的方式,在redis中指定多个存储位置,存值为1,然后在用户发起请求时,利用bloom过滤,计算hashcode的存储位置,再取出来值进行判断是否存在。
布隆过滤参考文章
干货,使用布隆过滤器实现高效缓存!
依照上面的大纲,扩展到2500-3000字即可。
在论文写作期间还可以加入一些自己的心得和思考,一个是凑字数,一个是告诉评审老师你的水平。
然后选择论文时,尽量不要选hash分片这种技术型的论题,因为可扩展的字数少。
注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!