2019独角兽企业重金招聘Python工程师标准>>>

Titan Framework是一款分布式微服务框架,因其具有简单的配置方式,良好的集成性、多样化的支持、丰富的自定义扩展功能,所以它是非常值得我们去应用的。也正是因为它强大的集群特性,使得它在面对高负载,高并发的情况下表现得毫不逊色。本篇文章将介绍如何使用Titan Framework搭建一个集群的基本Demo。

1.Titan Framework依赖包下载

Titan Framework依赖包可以在Titan Framework PaaS(https://www.titanframework.cn/)平台上下载,并通过maven添加到本地仓库,本次示例使用的版本号为1.4.1RELEASE。

2.了解Titan Framework的基本组成形式

使用过SSM架构的朋友们,肯定都有过针对Dubbo集成微服务问题上,被繁琐的配置方式折磨得苦恼不堪的经历,而在Titan Framework中,我们完全不需要关注集群配置问题,只需要对集群的地址与端口进行简单配置,其他问题都可以交给框架处理,然后观察业务的理解和拆分即可,这无疑帮助了我们实现快速的微服务开发。

2.1集群配置

在泰坦框架中,会以如图的结构去读取集群配置文件:

在一个集群节点中,conf包用于存放项目中所有的配置文件信息,包括集群配置,数据库的配置以及其他配置,spring包用于存放依赖spring集成的一些其他框架的集成配置文件,cluster.properties就是用于配置集群的配置文件,我们来看一下它的信息:

而对外访问端口则需要在如下的配置文件中去配置,如下图:

在这个文件中,我们只需要配置server.port即可,如下图:

到这里,关于集群配置的讲述就结束了。

2.2代码层的结构与相对应的作用讲解

熟悉Spring MVC结构的朋友们,对Titan Framework的结构一定不会陌生,我们来看一下:

Controller包下存放的是提供给外部使用的API,在Titan框架中,为了能够在以往的架构中更好的进行脱藕,特别加入了handler,handler是对于代码逻辑和controller的一个连接层,用于切分在controller中我们有时会需要执行的代码逻辑,如前端数据传入时的类型检查等。如果将原来介于controller层与service层中的业务逻辑放置其中,Titan Framework会自动将controller传递给handler,而我们只需要遵循官方API文档中的使用形式即可。自定义的controller需要继承RestfulController类并使用@RestfulController注解表示,自定义的Handler需要继承CommandHandler类并使用@CmdHandler注解表示。而在Titan框架中,所有的请求都通过command进行接收,比如默认的Create、Delete、Get等,这些command就类似在Spring MVC架构里controller中使用的那些二级API,Titan Framework已经为我们提供了普通需求所需要的command,如果有特殊的需要,它也支持用户自定义command,继承Command类即可。

下面重点讲解一下Titan Framework的Event,在Titan中,Event用于微服务之间的调用,微服务之间信息传递的载体就是Event,Titan Framework提供的Event基类为AppEvent,我们可以继承这个基类来创造自定义的Event,在Event中,你可以封装数据,可以对数据进行自己的业务操作,这取决于实际的使用情况。在Event中,提供了一个静态的方法发送请求,Publish.send,或是Publish.Tell,前者用于请求远程服务调用,后者用于请求本地服务调用。

当上游信息发送一个携带Event的请求时,Titan Framework就会提供一种可以捕获其他微服务发送请求的基类:EventHandler,我们可以继承这个类来创造自定义的EventHandler,他的作用就是对Event的请求进行接收与处理,在EventHandler中,最重要的是Feedback.content()方法,它用于直接返回数据给前端,我们来看一看官方文档给出的详细解释:

通过这个方式返回的数据类型和官方指定的返回封装格式Result是一样的,所以不需要因为格式的问题而再做其他处理。

Launch是用于启动微服务的一个启动器,本地调试的时候可以直接启动这个启动器来启动我们的微服务。

Repositories包下存放的是为数据库服务的业务逻辑层,类似于SSM结构的mapper层。

Titan Framework对主流的数据库有着直接支持,如MySql、MongoDB、Redis。

到这里,一个基本的结构就已经讲解完毕。

3.一个基本Demo的详解

对应的Controller:

对应的handler:

使用的自定义Event:

使用一个自定义的EventHandler接收发送的跨微服务请求:

告知微服务相互调用简单设置:

到这里为止,我们就使用Titan Framework构建了一个基本的Spring MVC结构中,除了Mapper的所有部分。

转载于:https://my.oschina.net/u/3999033/blog/2248779

使用Titan Framework搭建一个集群Demo相关推荐

  1. 如何搭建一个集群项目

    一.集群项目是什么? 搭建项目之前首先要明白什么样的项目才叫集群项目,那么什么叫集群呢?说的简单一点,集群就是很多对象集合在一起,集群项目就是很多一摸一样的项目放在一起运行嘛. 二.集群项目有什么用? ...

  2. elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)

    一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...

  3. 利用云服务器搭建hadoop集群

    利用云服务器搭建hadoop集群 测试连接 一. Linux配置 二. 3台服务器免密码登录 1. 三台机器生成公钥与私钥: 2. 拷贝公钥到同一台机器 3. 复制第一台机器的认证到其他机器 4. 通 ...

  4. ES集群规划、集群搭建、集群管理

    一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...

  5. 从零开始搭建Redis 集群 ,三主三从模式

    文章引用 https://www.cnblogs.com/mafly/p/redis_cluster.html Redis 集群简介 Redis 是一个开源的 key-value 存储系统,由于出众的 ...

  6. linux 使用 nginx 搭建 zookeeper 集群

    搭建 zookeeper 集群,笔者这里使用3台 centos7 服务器,它们 ip 分别是 192.168.0.125:192.168.0.123:192.168.0.117,后面简称 125,12 ...

  7. Hadoop详解(五)——ZooKeeper详解,ZooKeeper伪分布搭建和集群搭建,Hadoop集群搭建,sqoop工具的使用

    ZooKeeper简介 什么是ZooKeeper? ZooKeeper是Google的Chubby一个开源的实现,是Hadoop分布式协调服务. 它包含了一个简单的原语集,分布式应用程序可以基于它实现 ...

  8. 基于OSS存储搭建Hadoop集群

    简介 本文以Ubuntu操作系统为例,介绍基于Aliyun OSS的hadoop-3.0.0-beta1的集群环境搭建过程,示例的集群环境包括1个master和2个slave节点(slave1和sla ...

  9. linux hadoop集群搭建,hadoop集群搭建

    hadoop集群搭建步骤 实验介绍 下面将要在三台linux虚拟机上搭建hadoop集群. 知识点 linux基本命令 集群安装 完成实验需要以下相关知识 解压命令 tar -zxvf XX.tar. ...

  10. 华为云 和 阿里云 跨服务器搭建Hadoop集群

    目录 华为云 和 阿里云 跨服务器搭建Hadoop集群 说明 期间遇到的问题 CentOS6 7 8更换阿里yum源 修改服务器名称 安装JDK 安装Hadoop 编写集群分发脚本 xsync scp ...

最新文章

  1. Maven中如何禁止插件(plugin)在子模块(module)上执行
  2. Android复习09【内容提供者、音乐播放器(附完整工程文件)】
  3. 微信开发者工具 出现 Error:unable to verify the first cert?
  4. 简单谈谈5G/C-V2X技术与自动驾驶的关系
  5. vray阴天室内_阴天有话:第1部分
  6. LeetCode MySQL 1747. 应该被禁止的Leetflex账户
  7. Function spec
  8. linux解析json指针,Linux下JSON通信协议的使用和解析
  9. Trie图和Fail树
  10. java 线程condition_(七)java多线程之Condition
  11. LayerCAM:Exploring Hierarchical Class Activation Maps for Localization
  12. SpringBoot 发送邮件和附件
  13. 思维导图工具XMind
  14. Lazarus控件安装方法
  15. Paddle入门实战系列(二)基于PaddleOCR的体检报告识别
  16. c语言log库,Log4g
  17. lazada数据分析采集软件,各国市场第一视角帮你分析!
  18. 内置函数 匿名函数 eval exec execute compile sorted map filter等常见函数 repr chr ord...
  19. 中华云盒M1刷Linux教程,N1 盒子刷最新版 armbian 及软件安装
  20. 到场率高达96% 这才是高水准技术大会应该有的样子

热门文章

  1. 目录 1.1. Vue是什么??客户端mvc框架,,功能类似springmvc 1 1.2. Why?为什么使用它?? 1 1.3. 包括哪些组件与内部构成与原理 1 2. Howto 怎么使用 2
  2. Atitit  自动化gui 与 发帖机 技术
  3. Atitit.为什么小公司也要做高大上开源项目
  4. paip.提升效率--数据绑定到table原理和流程Angular js jquery实现
  5. paip java.net.SocketException No buffer space available的解决办法及总结
  6. paip.输出内容替换在Apache 过滤器filter的设置
  7. SQLServer2008客户端软件
  8. 上市也没打算盈利?Hadoop之父企业Cloudera好任性
  9. 为什么技术人员要具备产品思维?
  10. ​领域模型vs数据模型,应该怎么用?