高性能SOA服务化框架的基本架构设计

高性能SOA服务化框架的基本架构设计

 
高性能SOA服务化框架的基本架构设计
2015-12-23 阿帅在北京 高级互联网架构师
1.服务架构基本草图:
 
产品架构要实现多系统分布式架构,按业务分系统,可集群系统共享数据。
dubbo是阿里开源的一个SOA服务治理解决方案,dubbo本身集成了监控中心,注册中心,负载集群...等等 服务端基于接口编程,对外发布服务接口,所有项目调用底层服务,只需配置接口api即可,此接口就是普通java interface 。调用接口就可获取服务,详细参见dubbo配置使用方式。
形如:
public interface UserService {
public UserExt getUserExtByUserId(Long userId)throws Exception;
public User getUserByEmail(String email)throws Exception ;
public User getUserByPhone(String phone)throws Exception ;
...........
1.1 SOA介绍(面向服务的体系结构)
soa面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型 XML /Web Service技术之后的自然延伸。
SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。
1.2 SOA架构特点:
基于组件的系统
松散耦合的组件和系统
基于网络的基础设施,允许分散于各地且采用不同技术的资源协同工作
动态构建的按需应用程序
更高的代码重用率
更好地标准化整个企业内的流程
更易于集中企业控制
1.3 SOA架构优点:
一,SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。
二,SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。
三, SOA具有低耦合性特点,增加和减少业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。
四, SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。
五, SOA的实施可能并不具有成本显著性。
2.架构核心技术点介绍:
Dubbo服务:spring+mybatis +redis+mongodb+Mysql+JTA
网站: Spring+SpringMVC+Redis +动态模板引擎+静态化Html5
Redis 主从同步,缓存常用实体信息
Mongodb 海量流水数据存贮,海量写入操作,快速扩展。
Mysql 主从分离 大数据分库分表,程序中支持主从数据源,分布式事务处理JTA
Zookeeper 集群管理底层服务 可无限扩展。
负载均衡技术可选
网站视图:模板静态化企业页面 html5, 账户中心动态模板语言优先考虑。Velocity 或Freemarker, httl,自定义部分标签,如获取场馆名 分类等,页面常用显示,均可扩展自定义标签,方便所有开发人员共享,减少重复开发相同功能点。
3.开发框架规范:
开发标准统一 按java规范,开发工具及代码模板一致,格式化提交。代码模板进入开发阶段统一,类注释,方法注释,行距行字都统一,引入统一代码模板。
基于接口编程,提供服务。公用代码整理,定义,核心操作方法抽象,所有项目共享。全站统一核心API字段,各系统共享。
Maven构建管理项目。Maven编译打包发布项目。
数据库:mysql InnoDB存贮引擎,高并发读写性能优势, 支持事务处理。索引规范标准。字段类型精小准合理规范,不乱用,sql只做读写,不能用于运算。由专门的统计系统进行相关统计和数据分析。
App接口规范:
数据模型引用公共服务API。接口统一定义返回结构,消息体统一,消息数据个性化封装。可通过自定义异常形式实现错误提示,全站统一错误提示code,及错误message,提示信息全部定义在资源文件中,支持国际化多语言。 通用mobile返回格式由专门对象包装,不需在各实现方法里包装。
App服务器接口最上层使作拦截器封装消息体,使用自定义异常码处理底层错误,错误提示信息规范在资源文件中,服务器端支持国际化多语言。可快速扩展多语言。App接口参数传语言字段,版本字段等。
SOA开发规划:
公司总体产品用分布式系统架构来分系统逐步实现,随着业务不断深入,可逐步开发扩展的业务系统。
前期首先需要开发完成用户登录认证系统,解决各网站各系统统一登录及用户登录设备管理,登录日志的记录等登录相关的服务。此系统可与各第三方账号对接,完成weibo qq等第三方账户登录。登录系统要解决多系统,以及单系统集群部署登录共享,打通app端登录和web网站之前的登录共享受问题,未来app登录后可访问web网站内的所有内容。App与web网站网页无缝对接,app无需所有功能都做,部分变经快改动多的都可以由网站直接做,app引用m站即可。
网站网页按html5规范来规划,制作支持m站供手机直接访问以及app使用,替换掉app中较复杂性能不太好的一些功能,直接用html5网站的功能。
近期需要做的事:
一:搭建Maven私服服务器,规范以后项目构建,编译及发布,统一公共资源代码及依赖关系。
二:搭建技术核心框架,统一代码模板,规划代码结构。创建公共服务基础项目,如发短信服务项目,公共代码库工具类项目 日志服务项目,以后的推送服务项目等,需要逐步增加。
三:公司总体业务梳理,系统规划,数据库设计定稿。 分系统分业务进行逐步重构及新开发。
 
???企企csvcsvcsvcsvcsvcsv
posted @ 2018-08-16 18:54  micwin  阅读(525)  评论(0编辑  收藏  举报