在上篇分析完了在V 0.7需要干的活后,开始细化其中的实现细节,由于技术细节和之前想的有点不同,在细化的同时也稍做了调整,系统的架构仍然保持不变,在这篇blog中来看看实现每项任务的技术细节,之后就可以进入编码实现阶段了。

1、服务模型

采用OSGi的服务模型,在Spring中使用此服务模型时和Spring-DM中的osgi:service、osgi:reference基本一致,示例如下:

发布服务(将bulletinListAction以jndi的方式发布为dsf服务):

  interface="cn.org.osgi.xwork.action.IAction">LIST

引用服务(引用dsf服务):

LIST

关于服务模型所支持的所有spring的配置在之后我会公布相应的xsd文件。

2、服务中心

在查询了memcachedb的相关资料后,感觉目前它的java接口好像还不太好用,决定直接采用memcached,自己来实现存储,由于服务模型信息的数据其实非常的小,而且维护改动的频率并不是那么的高,暂时采用文件方式直接存储,服务中心在注册时将文件存储在共享的空间中,之后将文件解析为服务模型对象,放入memcached,当有更新、删除动作时同样做相应的处理,文件存储以及memcached交互都是比较容易的事,将文件解析为服务模型对象采用xstream完成。

服务中心基于Spring-DM、Webwork-OSGi简单实现。

3、发布服务

使用方法已经在上面示例了,具体实现步骤则为:

提供扩展的spring xml namespace的支持;

编写DSFJNDIExporter class,基于Spring的JNDITemplate实现将spring bean注册到JNDI的过程(要求为在本地启动jndi server,默认采用jboss jnp)。

4、调用服务

这个部分之前分析错误,之前忽略了服务应用端是不知道目标服务的地址的,需要通过分布式缓存查询才可得知,因此不是直接采用Spring的JNDIObjectFactoryBean就可以实现的,需要编写自己的DSFObjectFactoryBean,具体实现步骤为:

提供扩展的spring xml namespace的支持;

编写DSFObjectFactoryBean class,由这个bean来负责调用分布式缓存,查询目标服务地址,由于目前只有JNDI方式,在获取到目标服务地址后仍然通过Spring的JNDIObjectFactoryBean完成剩余工作。

经过上面四步技术实现细节的分析,可以来编码完成V 0.7的实现了。

java配置dsf,基于Spring-DM实现分布式服务框架(DSF)(二)相关推荐

  1. java配置dsf,基于Spring-DM实现分布式服务框架(DSF)(一)

    评论 # re: 基于Spring-DM实现分布式服务框架(DSF)(一) 2008-04-14 17:03 赵斌 BlueDavy,你好: 最近正在研究关于"服务框架"的内容,看 ...

  2. 分布式服务框架DSF(Distributed Service Framework)

    编者按:J2EE异军突起之时,那些2层架构(web+后端)的人必定是崩溃的:而后spring以without ejb革命了,现在spring已渐成全家桶之势.SOA概念兴起之时,ESB相关的厂商大赚, ...

  3. 多点生活的分布式服务框架DSF

    背景 多点生活成立于2015年初,1亿美元天使轮,和物美超市深度合作,目标是打造线上线下一体化的全渠道零售平台.技术研发团队基本上全  在成都,在成都JAVA好招人,所以基本上在多点内部就是JAVA一 ...

  4. 带你手写基于 Spring 的可插拔式 RPC 框架(二)整体结构

    前言 上一篇文章中我们已经知道了什么是 RPC 框架和为什么要做一个 RPC 框架了,这一章我们来从宏观上分析,怎么来实现一个 RPC 框架,这个框架都有那些模块以及这些模块的作用. 总体设计 在我们 ...

  5. 基于spring+quartz的分布式定时任务框架

    http://www.cnblogs.com/aaronfeng/p/5537177.html 问题背景 我公司是一个快速发展的创业公司,目前有200人,主要业务是旅游和酒店相关的,应用迭代更新周期比 ...

  6. Spring Cloud Zookeeper 分布式服务框架搭建常见问题

    文章目录 1 子项目如何不继承主项目,而继承最新的 Spring Boot 依赖? 2 子项目继承主项目,然后选择不同的 SpringBoot 版本,是否可行? 3 Zookeeper 的 Maven ...

  7. 分布式服务框架学习笔记2 常用的分布式服务框架 与 通信框架选择

    传统垂直架构改造的核心就是要对应用进行服务化,服务化改造使用到的核心技术就是分布式服务框架. 分布式服务框架演进 应用从集中式走向分布式 大规模系统架构的设计一般原则就是尽可能地拆分,以达到更好的独立 ...

  8. 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构zhen项目

    原项目链接:https://github.com/shuzheng/zheng 目前看过做完整的项目,大家一起学习一下,详情请点击原项目链接的地址 前言 zheng项目创建于2016年10月4日,正在 ...

  9. 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构---权限管理系统

    原文链接: https://github.com/shuzheng/zheng 安利一个GitHub上的项目,见原文链接. 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构, ...

最新文章

  1. php if 定义变量,无法在PHP中的if块中设置变量的值
  2. 多线程进一步的理解------------线程的创建
  3. Java—servlet简单使用
  4. string.Format 格式化
  5. 9个细节告诉你,达摩院过去一年做了啥
  6. linux安装telnet组件,LINUX下如何安装telnet
  7. 微信商品详细信息页面html,微信小程序商品展示页面(仿咸鱼)
  8. composer QA
  9. matlab函数_连通区域
  10. 函数的定义、返回值和参数
  11. 定制.NET GridView的长文本显示表格
  12. 易筋SpringBoot 2.1 | 第三十篇:SpringBoot Reactor响应式编程介绍
  13. 湖北工业大学计算机导论考试试题,湖北工业大学计算机二级考试时间
  14. uniapp 微信小程序修改BarTitle
  15. 阿里 + 京东 Java 岗面试题概要(面试须知)
  16. 鸡脚蹬子生长秘籍 鸡脚蹬子短是缺乏什么营养
  17. MySQL的 validate_password插件 和 validate_password组件
  18. Gym - 101291I Mismatched Socks(贪心)
  19. opengl剪裁空间和视口空间中不遵从右手定则,而是遵从左手定则
  20. 库卡工业机器人负载曲线图_DC电机性能曲线图

热门文章

  1. java进程线程_Java进程线程笔记
  2. 吐槽弹幕网,解决映兔源无法播放的书签插件
  3. Java 语言使用 Observer/Observable 实现简单的观察者模式
  4. 服务器win10系统开机慢,win10专业版系统开机启动慢 三种方法帮你敲定
  5. 腾讯云商用密码合规解决方案,亮相2021商用密码应用创新高端研讨会
  6. 戴尔微型计算机3048,戴尔5460一体机拆解,戴尔3048一体机
  7. jmeter如何进行一个简单的测试(超级详细,有图有文字,闭着眼都能成功)
  8. Eclipse jdt 格式化java代码
  9. CAD工具:PCB绘制、仿真软件
  10. RandLA-Net Pytorch版本: module not found error: no module named ‘torch_points_ kernels. points_ cpu‘