Titan Framework 项目部署

介绍

本文用来介绍Titan Framework的使用和下载, Titan Framework的多数据库支持,各个微服务之间的调用,微服务的配置与部署。

Titan Framework依赖包的下载跟使用

Titan Framework包可以做在Titan Framework PaaS平台上进行下载,提供各个版本。

使用如下代码把Titan Framework 包加到本地maven仓库中:

Echo move titan-framework-1.2.jar

        mvn install:install-file -Dfile=.\titan-framework-1.2.jar -DgroupId=org.titan.framework -DartifactId=titan-framework -Dversion=1.2.RELEASE -Dpackaging=jar

在微服务的pom文件中添加Titan Framework 包依赖:

    <properties>  

<titan.version>1.2.RELEASE</titan.version>

</properties>

 

<dependencies>

<dependency>

<groupId>org.titan.framework</groupId>

<artifactId>titan-framework</artifactId>

<version>${titan.version}</version>

</dependency>

     </dependencies>

Titan Framework多服务的使用

Titan Framework 单个微服务结构图:

 

Titan Framework中,每个微服务的核心工程结构分为ControllerEntityEventLaunch

1. Controller包中又可以分割为两个具体逻辑组件,分别是具体实现API配置的Controller与进行接入层逻辑控制的Handler。对于ControllerHandler包,我们建议将一些接入层的检查放在这里,例如Token有效性或者Json参数的格式验证。

2. Entity包主要是本微服务中使用到的数据对象实体定义。例如,传统结构中的DTO定义就可以放在Entity文件夹下。

3. Event包是Titan微服务之间进行相互调用的入口,在Event文件夹下,我们常常放置EventHandler,专门用来提供跨微服务的通讯支持。例如,LoginService需要调用UserService进行用户信息校验。此时UserService就可以提供一个VerifyUserInformationEvent的内部接口,用来和LoginService进行跨微服务协作。对于Event包,我们建议将很多业务逻辑放在里面。

4. Launch包中主要是微服务启动参数的配置与启动器的配置。Titan Framework每个微服务内置Jetty容器,使用时无需单独部署其他容器。在启动时,Titan Framework的微服务直接通过类似Java Application的方式进行启动,即Java -jar serice.jar。

在同台服务器上使用Titan Framework中多个微服务,需创建application.properties文件,目录\resources,因为Titan Framework中每个微服务使用的都是默认端口7070

resources目录如下:

 

application.properties文件:

server.port=8012

 

如未添加报如下错误:

org.springframework.boot.context.embedded.PortInUseException: Port 7070 is already in use

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.start(JettyEmbeddedServletContainer.java:131)

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297)

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545)

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)

at org.titan.framework.facade.launcher.LauncherFrontend.ALLATORIxDEMO(ig:50)

at org.titan.framework.facade.launcher.LauncherFrontend.lunch(ig:161)

at org.titan.loginRegister.loginRegisterc.launch.LaunchLoginRegisterC.main(LaunchLoginRegisterC.java:14)

 

集群使用还需修改**/project/conf/cluster.properties工具包

cluster.local.port端口不能相同

1. cluster.system.name使用同一名称;

2. cluster.seeds默认自己,A,B,C同在一个集群下;

A服务

cluster.system.name=TitanFrameworkSystem

cluster.local.port=1818

cluster.local.host=192.168.199.170

cluster.seeds=192.168.199.170:1818

 

B服务

cluster.system.name=TitanFrameworkSystem

cluster.local.port=2828

cluster.local.host=192.168.199.170

cluster.seeds=192.168.199.170:2828, 192.168.199.170:1818

 

C服务

cluster.system.name=TitanFrameworkSystem

cluster.local.port=3838

cluster.local.host=192.168.199.170

cluster.seeds=192.168.199.170:3838,192.168.199.170:1818

 

A,B,C,D四个微服务的项目,B,C,D三个微服务都去连接A服务,这样就构建成一个集群,在这个集群中BCD之间是没有连接的,但是他们都连接了A服务,所以他们之间也是可以进行通信的。

如下图:

 


B,C,D连接A服务打印信息:

[INFO] [06/02/2018 13:07:50.781] [TitanFrameworkSystem-akka.actor.default-dispatcher-4] [akka.cluster.Cluster(akka://TitanFrameworkSystem)] Cluster Node [akka.tcp://TitanFrameworkSystem@192.168.199.170:1818] - Node [akka.tcp://TitanFrameworkSystem@192.168.199.170:2828] is JOINING, ro

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值