使用Titan Framework搭建一个集群Demo
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相关推荐
- 如何搭建一个集群项目
一.集群项目是什么? 搭建项目之前首先要明白什么样的项目才叫集群项目,那么什么叫集群呢?说的简单一点,集群就是很多对象集合在一起,集群项目就是很多一摸一样的项目放在一起运行嘛. 二.集群项目有什么用? ...
- elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)
一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...
- 利用云服务器搭建hadoop集群
利用云服务器搭建hadoop集群 测试连接 一. Linux配置 二. 3台服务器免密码登录 1. 三台机器生成公钥与私钥: 2. 拷贝公钥到同一台机器 3. 复制第一台机器的认证到其他机器 4. 通 ...
- ES集群规划、集群搭建、集群管理
一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...
- 从零开始搭建Redis 集群 ,三主三从模式
文章引用 https://www.cnblogs.com/mafly/p/redis_cluster.html Redis 集群简介 Redis 是一个开源的 key-value 存储系统,由于出众的 ...
- linux 使用 nginx 搭建 zookeeper 集群
搭建 zookeeper 集群,笔者这里使用3台 centos7 服务器,它们 ip 分别是 192.168.0.125:192.168.0.123:192.168.0.117,后面简称 125,12 ...
- Hadoop详解(五)——ZooKeeper详解,ZooKeeper伪分布搭建和集群搭建,Hadoop集群搭建,sqoop工具的使用
ZooKeeper简介 什么是ZooKeeper? ZooKeeper是Google的Chubby一个开源的实现,是Hadoop分布式协调服务. 它包含了一个简单的原语集,分布式应用程序可以基于它实现 ...
- 基于OSS存储搭建Hadoop集群
简介 本文以Ubuntu操作系统为例,介绍基于Aliyun OSS的hadoop-3.0.0-beta1的集群环境搭建过程,示例的集群环境包括1个master和2个slave节点(slave1和sla ...
- linux hadoop集群搭建,hadoop集群搭建
hadoop集群搭建步骤 实验介绍 下面将要在三台linux虚拟机上搭建hadoop集群. 知识点 linux基本命令 集群安装 完成实验需要以下相关知识 解压命令 tar -zxvf XX.tar. ...
- 华为云 和 阿里云 跨服务器搭建Hadoop集群
目录 华为云 和 阿里云 跨服务器搭建Hadoop集群 说明 期间遇到的问题 CentOS6 7 8更换阿里yum源 修改服务器名称 安装JDK 安装Hadoop 编写集群分发脚本 xsync scp ...
最新文章
- Maven中如何禁止插件(plugin)在子模块(module)上执行
- Android复习09【内容提供者、音乐播放器(附完整工程文件)】
- 微信开发者工具 出现 Error:unable to verify the first cert?
- 简单谈谈5G/C-V2X技术与自动驾驶的关系
- vray阴天室内_阴天有话:第1部分
- LeetCode MySQL 1747. 应该被禁止的Leetflex账户
- Function spec
- linux解析json指针,Linux下JSON通信协议的使用和解析
- Trie图和Fail树
- java 线程condition_(七)java多线程之Condition
- LayerCAM:Exploring Hierarchical Class Activation Maps for Localization
- SpringBoot 发送邮件和附件
- 思维导图工具XMind
- Lazarus控件安装方法
- Paddle入门实战系列(二)基于PaddleOCR的体检报告识别
- c语言log库,Log4g
- lazada数据分析采集软件,各国市场第一视角帮你分析!
- 内置函数 匿名函数 eval exec execute compile sorted map filter等常见函数 repr chr ord...
- 中华云盒M1刷Linux教程,N1 盒子刷最新版 armbian 及软件安装
- 到场率高达96% 这才是高水准技术大会应该有的样子
热门文章
- 目录 1.1. Vue是什么??客户端mvc框架,,功能类似springmvc	1 1.2. Why?为什么使用它??	1 1.3. 包括哪些组件与内部构成与原理	1 2. Howto 怎么使用	2
- Atitit 自动化gui 与 发帖机 技术
- Atitit.为什么小公司也要做高大上开源项目
- paip.提升效率--数据绑定到table原理和流程Angular js jquery实现
- paip java.net.SocketException No buffer space available的解决办法及总结
- paip.输出内容替换在Apache 过滤器filter的设置
- SQLServer2008客户端软件
- 上市也没打算盈利?Hadoop之父企业Cloudera好任性
- 为什么技术人员要具备产品思维?
- ​领域模型vs数据模型,应该怎么用?