前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Titan Framework搭建一个集群Demo

使用Titan Framework搭建一个集群Demo

原创
作者头像
Titan框架
修改2018-08-24 10:03:44
4640
修改2018-08-24 10:03:44
举报
文章被收录于专栏:Titan框架Titan框架

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集群配置

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

图2.1.1

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

.图2.1.2

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

图2.1.3

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

图2.1.4

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

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

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

图2.2.1

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()方法,它用于直接返回数据给前端,我们来看一看官方文档给出的详细解释:

图2.2.2

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

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

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

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

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

3.一个基本Demo的详解

对应的Controller:

对应的handler:

使用的自定义Event:

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档