当前位置: 首页 > news >正文

java架构设计

1.可维护性

           封装性,例如将缓存redis封装到一个service,别的地方用到,只需要传参调用就行。如果有一天换国产缓存,只需要修改service,而不需要修改多出引用地方

* 可维护性:后期功能迭代,不可避免,不要因为一个小的改动,导致大面积的修改代码,做到高内聚低耦合!!
>   * 比如我们短信平台,在涉及做缓存和搜索功能时,我会单独提供一套缓存服务和搜索服务,甚至支付也一样,单独提供一个支付的服务。这下额服务只对外暴露基本的功能接口。如果后期涉及到了一些政策原因,其他原因,导致你需要去替换中间件,比如将Redis缓存中间件替换为其他的国产化的缓存组件。 因为前面的设计,我不需要去改动我的业务服务里的任何内容,只需要在缓存服务中,将之前Redis的API,替换为国产化的缓存的API即可,其他的不需要动。
> * 可扩展性:需要主动追加一些额外的功能或者方向时,可以更方面的动态增减功能,其他功能不会受到影响。
>   * 比如我们短信平台,在策略以及接口模块中的校验时,采用了策略设计模式 + 责任链模式做到动态可插拔的校验规则,如果后期需要拓展校验规则,只需要去继承校验接口去做具体的实现,然后修改用户的校验规则字段,就可以很方便的、扩展功能。
> * 安全性:安全是每个产品都必须考虑的点,所有很多加密算法要考虑好,比如你们的数据传输时,可以上非对称加密,对称加密,各种国密,(AES,RSA,SM1,2,3,4会就聊),还有一些敏感数据的过滤,在一些XSS攻击,注入攻击,CSRF攻击,这些都需要考虑,而且后期HTTPS也是必上的。
> * 性能:比如基本的CND,DNS优化,缓存的设计,分库分表,合理的中间件,多线程。。。。
> * 容错兜底:比如熔断,降级,做好兜底。 限流方便的考虑,还有MQ做削峰,部署的时候要规避单点故障问题,每个服务至少两台节点。 还可以考虑一些异地多活,其次还有数据的冗余备份。
> * 监控…………普罗米修斯。
> * 弹性伸缩…………GraalVM

相关文章:

  • git cherry-pick和git stash命令详解
  • 反转链表II
  • leetcode0295. 数据流的中位数-hard
  • 关于 javax.validation.constraints的详细说明
  • HuggingFace的SafeSensor格式模型能转成Ollama格式的吗?
  • 26、测试咒语:魔法校验—— Jest+Testing Lib
  • SimpleAdmin云服务器发布
  • 浅聊一下数据库的索引优化
  • 19.Excel数据透视表:第2部分数据透视计算
  • 生产级编排AI工作流套件:Flyte全面使用指南 — Core concepts
  • 需求管理缺乏持续改进机制,如何建立
  • 计算机视觉----时域频域在图像中的意义、傅里叶变换在图像中的应用、卷积核的频域解释
  • 黑白浮生项目测试报告
  • 【入门】纸盒的最大体积是多少?
  • docker部署WeDataSphere开源大数据平台
  • redis数据结构-10(ZREM、ZSCORE、ZINCRBY)
  • 以价值为导向的精准数据治理实践,赋能业务决策
  • 移动端前端开发调试工具/webkit调试工具/小程序调试工具WebDebugX使用教程
  • 第十五届蓝桥杯国赛Python A组题解
  • 【认知思维】沉没成本谬误:为何难以放弃已投入的资源
  • 奥迪车加油时频繁“跳枪”维修两年未解决,4S店拒退换:可延长质保
  • 北京13日冰雹过后,已受理各险种报案近3万件
  • 一手实测深夜发布的世界首个设计Agent - Lovart。
  • 世界期待中美对话合作带来更多确定性和稳定性
  • 影子调查丨三名“淘金客”殒命雪峰山:千余废弃金矿洞的监管难题
  • 著名学者黄修己去世,享年90岁