APP组件化架构建设

一、架构设计

image.png

二、模块职责

1、空壳模块
空壳模块中声明app的Application,这个 Application必须继承自Common组件中的 BaseApplication,因为只有这样,在打包应用后才能让BaseApplication中的Context生效。

2、业务组件层,如图

image.png

  • 1)、技术选型:

    A、设计模式: MVVM(JetPack:ViewMode/ Livedata/Databinding/room等)

    B、路由框架:ARouter

    C、网络框架:Retrofit+Kotlin协程

  • 2)、组件划分:根据具体业务而独立形成一个的工程,实际开发需要考虑涉及的各个业务线。

  • 3)、组件通信

    a、gradle.properties里配置组件化开关:
    isBuildModule 为
    true 时可以使每个组件独立运行,
    false 则可以将所有组件集成到宿主 App 中。

    b、跳转

    传值:

    ARouter.getInstance().build(“xxx”)
    .withString(“name”, bean.itemName)

    .withInt(“type”, type)

    .navigation()

    接收,Route注解注册路径

    @Route(path = “xxx”)

    class XXX : BaseActivity()

3、功能组件层

  • 1)、基础框架( Common Library):支撑业务组件的基础,所有业务组件都要依赖。

    baseXXX (baseActivity等)

    utils

    网络模块:Kotlin + 协程

    数据存储:(MMKV,DataStore)

    权限

    日志

    基础UI(如 toolbar 等)

    . . . . . .

  • 2)、其他功能组件:某一个或几个业务组件依赖,并不是所有业务组件都依赖.

4、第三方库层

  • 主要包括公共基础库依赖的三方库如appcompat,其他功能组件使用到的三方库。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微服务设计与解决方案 微服务架构现在是谈到企业应用架构时必聊的话题,微服务之所以火热也是因为相对之前的应用开发方式有很多优点,如更灵活、更能适应现在需求快速变更的大环境。 本文将介绍微服务架构的演进、优缺点和微服务应用的设计原则,然后着重介绍作为一个"微服务应用平台"需要提供哪些能力、解决哪些问题才能更好的支撑企业应用架构。 微服务平台也是我目前正在参与的,还在研发过程中的平台产品,平台是以SpringCloud为基础,结合了普元多年来对企业应用的理解和产品的设计经验,逐步孵的一个微服务应用平台。 目录: 一、微服务架构演进过程 二、微服务架构的好处 三、微服务应用4个设计原则 四、微服务架构带来的问题 五、微服务平台的19个落地实践 六、总结展望 微服务设计与解决方案全文共18页,当前为第1页。一、微服务架构演进过程 微服务设计与解决方案全文共18页,当前为第1页。 近年来我们大家都体会到了互联网、移动互联带来的好处,作为IT从业者,在生活中时刻感受互联网好处的同时,在工作中可能感受的却是来自自互联网的一些压力,那就是我们传统企业的IT建设也是迫切需要转型,需要面向外部客户,我们也需要应对外部环境的快速变、需要快速创新,那么我们的IT架构也需要向互联网企业学习作出相应的改进,来支撑企业的数字转型。 我们再看一下应用架构的演进过程,回忆一下微服务架构是如何一步一步进产生的,最早是应用是单块架构,后来为了具备一定的扩展和可靠性,就有了垂直架构,也就是加了个负载均衡,接下来是前几年比较火的SOA,主要讲了应用系统之间如何集成和互通,而到现在的微服务架构则是进一步在探讨一个应用系统该如何设计才能够更好的开发、管理更加灵活高效。 微服务架构的基本思想就是"围绕业务领域组件来创建应用,让应用可以独立的开发、管理和加速"。 二、微服务架构的好处 微服务设计与解决方案全文共18页,当前为第2页。 微服务设计与解决方案全文共18页,当前为第2页。 我们总结了四个方面的优点,分别如下: 是每个微服务组件都是简单灵活的,能够独立部署。不再像以前一样,应用需要一个庞大的应用服务器来支撑。 可以由一个小团队负责更专注专业,相应的也就更高效可靠。 微服务之间是松耦合的,微服务内部是高内聚的,每个微服务很容易按需扩展。 微服务架构与语言工具无关,自由选择合适的语言和工具,高效的完成业务目标即可。 看到这里,大家会觉得微服务架构挺不错,然而还会有一些疑问,什么样的应用算是一个微服务架构的应用?该怎样设计一个微服务架构的应用?那我们来一起看看我们推荐的微服务应用的设计原则。 三、微服务应用4个设计原则 我们总结了四个原则推荐给大家: AKF拆分原则 前后端分离 无状态服务 Restful通信风格 1.AKF拆分原则 微服务设计与解决方案全文共18页,当前为第3页。 微服务设计与解决方案全文共18页,当前为第3页。 AKF扩展立方体(参考《The Art of Scalability》),是一个叫AKF的公司的技术专家抽象总结的应用扩展的三个维度。理论上按照这三个扩展模式,可以将一个单体系统,进行无限扩展。 X 轴 :指的是水平复制,很好理解,就是讲单体系统多运行几个实例,做个集群加负载均衡的模式。 Z 轴 :是基于类似的数据分区,比如一个互联网打车应用突然或了,用户量激增,集群模式撑不住了,那就按照用户请求的地区进行数据分区,北京、上海、四川等多建几个集群。 Y 轴 :就是我们所说的微服务的拆分模式,就是基于不同的业务拆分。 场景说明:比如打车应用,一个集群撑不住时,分了多个集群,后来用户激增还是不够用,经过分析发现是乘客和车主访问量很大,就将打车应用拆成了三个乘客服务、车主服务、支付服务。三个服务的业务特点各不相同,独立维护,各自都可以再次按需扩展。 2.前后端分离 前后端分离原则,简单来讲就是前端和后端的代码分离也就是技术上做分离,我们推荐的模式是最好直接采用物理分离的方式部署,进一步促使进行更彻底的分离。不要继续以前的服务端模板技术,比如JSP ,把Java JS HTML CSS 都堆到一个页面里,稍复杂的页面就无法维护。这种分离模式的方式有几个好处: 前后端技术分离,可以由各自的专家来对各自的领域进行优,这样前端的用户体验优效果会更好。 微服务设计与解决方案全文共18页,当前为第4页。分离模式下,前后端交互界面更加清晰,就剩下了接口和模型,后端的接口简洁明了,更容易维护。 微服务设计与解决方案全文共18页,当前为第4页。 前端多渠道集成场景更容易实现,后端服务无需变更,采用统一的数据和模型,可以支撑前端的web UI\ 移动App等访问。 3.无状态服务 对于无状态服务,首先说一下什么是状态:如果一个数据需要被多个服务共享,才能完成一
带惯性运动的二维矩阵卡片列表 UI,自定义 LayoutManager + SnapHelper 运维(Operations & Maintenance,简称O&M)是IT行业中至关重要的角色,负责确保信息系统和服务的高效稳定运行。运维工程师的工作涵盖了系统架构搭建、维护、优,以及故障排查与解决等多个方面。 首先,运维工作包括基础设施的部署与配置,如服务器、网络设备、存储设备等硬件资源的安装调试与监控,同时还需要安装操作系统、数据库和其他应用软件,并进行性能调优以满足业务需求。 其次,运维人员承担着日常监控与安全管理任务,他们借助各类工具持续监控系统的运行状态,及时发现并处理异常情况,预防服务中断。此外,运维还包括制定备份恢复策略,确保数据的安全性和可用性,以及实施网络安全策略,防止黑客攻击、病毒感染等安全风险。 再者,运维团队还需参与系统升级、扩容等工作,以应对业务增长带来的挑战。他们通过对资源的合理调度与规划,保证系统性能和用户体验的不断提升。 最后,运维工程师还涉及自动运维体系的建设和完善,通过脚本编写、配置管理工具的运用,实现批量部署、自动巡检、故障自愈等功能,从而提升运维效率,减轻人工压力。 总之,运维工作的核心目标在于保障业务的连续性和稳定性,为用户提供优质、高效的服务环境,同时紧跟技术发展步伐,不断推动运维工作的智能、自动进程。
O2OA是基于J2EE架构,集成移动办公、智能办公,支持私有部署,自适应负载能力的,能够很大程度上节约企业软件开发成本的基于AGPL协议开放源代码的企业信息系统需求定制开发解决方案,对外提供专业的开发运维等技术服务。 O2OA平台拥有流程管理、门户管理、信息管理、数据管理和服务管理五大核心能力。用户可以直接使用平台已有功能进行信息信息建设,平台提供了完整的用户管理,权限管理,流程和信息管理体系,并且提供了大量的开发组件和开箱即用的应用,可以大幅度减企业信息建设成本和业务应用开发难度。 主要功能: 流程管理:全功能流程引擎。基于任务驱动,开放式服务驱动,高灵活性、扩展性,事件定义丰富。包含人工、自动、拆分、合并、并行、定时、服务调用、子流程等功能。应用场景丰富,可轻松实现公文、合同、项目管理等复杂工作流应用。 信息管理:具有权限控制能力的内容管理平台。支持自定义栏目、分类,表格,表单,多级权限系统,能轻松实现知识管理、通知公司、规章制度、文件管理等内容发布系统。 门户管理:具体可视表单编辑的,支持HTML直接导入的,支持各类数据源,外部应用集成能力的,所见即所得的门户管理平台。适用于实现企业信息门户系统,可以轻松结合O2OA提供的认证设置与其他系统进行单点认证集成。 服务管理:可以在前端脚本的形式,开发和自定义web服务,实现与后端服务数据交互的能力。 数据中心:可以通过配置轻松实现数据透视图展示,数据统计、数据可视图表开发等等功能。 智能办公:拥有语音办公、人脸识别、指纹认证、智能文档纠错、智能填表推荐等智能办公特色。 移动办公:支持安卓\IOS手机APP办公,支持与企业微信和钉钉集成,支持企业私有微信部署。 开箱即用:O2OA还提供如考勤管理、日程管理、会议管理、脑图管理、便签、云文件、企业社区、执行力管理等开箱即用的应用供企业选择。 产品特点: 1、代码全部开源,开发者可以下载源码进行任意,编译成自己的信息平台。 2、平台全功能免费,无任何功能和人数限制。 3、支持私有部署,下载软件安装包后可以安装在自己的服务器上,数据更安全。 4、随时随地办公,平台支持兼容HTML5的浏览器,并且提供了原生的IOS/Android应用,并且支持钉钉和企业微信集成。 5、高可扩展性,用户通过简单的学习后,可以自定义配置门户、流程应用、内容管理应用
⼤数据架构师应该做到的 ---- ---- 关于软实⼒部分同步会更新场景落地 ---- ---- ---- 技能图 ⼤数据架构师该掌握的技能 主要分为两块 与 ⼀.平台建设 ⼆.数据搜集 三.数据价值 四.数据安全 五.质量保障 六.个⼈素质 七.技术能⼒ ⼋.产品与运营思维 九.团队建设管理能⼒ ⼗.⼈⽣开悟之路 硬能⼒ ⼀:平台建设 1.⾏业平台 1)⼤平台 亚马逊云 阿⾥云 腾讯云 ⽹易云 华为云 2)⼩平台 国云 国双 青云 勤思 3)专业⼯具平台 4)APP分析平台 2.技术选型 1) 2) 3) 4) 3.平台架构 1)HDP Core(平台核⼼也是Hadoop core) HDFS(存储) MapReduce(批处理) Yarn(基础资源调度) 负责集群资源的统⼀管理和调度 单节点资源管理和使⽤ 应⽤程序管理 对任务运⾏环境的抽象 ⽀持运⾏长应⽤程序和短应⽤程序 ⽀持docker fpga 期待更细粒度的资源控制 对⽐Mesos Oozie(任务调度编排) 平台调度的基础保障 hadoop 各种任务的使⽤与调度 对⽐ Azkaban Airflow Slider(调度⽀持 新版已经集成yarn) 2)Enterpise Data Warehouse(企业数据仓库) Pig(基础脚本服务) ⽤类sql语⾔保证mr执⾏顺畅 pig latin 的执⾏环境 Hive(数据仓库存储) 基础数据仓库(ods gdm dw app dim) 基础ETL的运⾏实例 OLAP的数据存储(kylin) 各种数据的hive外表⽤于查询 对⽐impala Druid(adhoc⽅案 实时多维查询和分析) 已处理数⼗亿事件和TB级数据 实时查询分析 ⾼可⽤、⾼容错、⾼性能 交互式聚合和快速探究⼤量数据 为OLAP⼯作流的探索性分析⽽构建,⽀持各种过滤、聚合和查询 对⽐ drill mdrill 等 Tez(简增强hive) Sqoop(数据导⼊导出⼯具) 3)Data sclence(数据科学) Spark(内存通⽤并⾏计算) 推荐相关 数据清洗 特征抽取 预测相关 对⽐ flink storm flink Spark sql(结构数据处理) Spark streaming(spark流式处理) Zeppelin(界⾯分析挖掘⼯具) 基于R和python的单机界⾯使⽤⼯具(分析挖掘) 基于spark kafka 的界⾯操作⼯具 基于预测数据的使⽤与展现 ⽀持pandas numpy ⽀持R ⽀持hive hbase spark sparksql sparkstreaming ⽀持keras matplotlib pysql 4)Operational data store(操作KV存储) Hbase(kv数据存储) Phoenix(hbase 类sql查询) 5)Securlty governance(安全治理) Knox(鉴权⼯具) 数据的权限鉴权通道 平台跟外部的出⼊⼝ Ranger(权限管理⼯具) 架构下各组件的权限管理 记录操作⽇志到solr Atlas(元数据溯源与数据治理⼯具) ⼤数据平台下各种操作的元数据记录 数据打标签(对于维度 指标 ETL等) 可查询hive storm spark sqoop oozie nifi 元数据,可⾃定义实现⾃⼰的需要查看和维护的⼯具 数据流转流程的图像展现 元数据操作记录与各种信息查询 6)Stream procressing(流式计算) 6)Stream procressing(流式计算) Storm(实时数据处理分析) Kafka(分布式发布订阅消息系统) 拖放可视设计,开发,部署和管理流式数据分析应⽤程序 进⾏事件关联,上下⽂衔接,复杂模式匹配,分析聚合以及创建警报/通知 MiNiFi(边缘数据处理) 数据产⽣的源头收集和处理数据 通过实现边缘设备智能(edge intelligence)来调整数据流的双向通信 可以数据溯源(Data Provenance) 可以集中管理和下发Agents java agent c++ agent 7)Operations(平台运维⼯具) Ambari(⼤数据平台管理⼯具) Ambari Metrics(监控平台各类服务及主机的运⾏情况) Ambari Infra Zookeeper(基础分布式保证⼯具) Solr(搜索应⽤ 操作⽇志存储) 8)Data operation platform(数据操作平台) NiFi(数据 ETL 数据流处理) ⽇志清洗 业务数据⼊库 基础数据(mysql binlog业务库 )ETL 部分外部数据 ⾃定义数据接⼊⽅式 ⾃定义数据流程处理 数据输出出⼝ NiFi Registry(NiFi版本管理⼯具) N

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值