Spring ROO快速构建Web项目

2017年9月12日 Java, Spring, Web开发, 工具 No comments

一、概述

Spring Roo是基于Java语言快速创建应用的强大开源工具,它来源于SpringSource,能够快速创建和管理基于Spring的Web应用,其目的是提高Java开发人员的生产效率。Spring Roo使用Spring、Java Persistence API(Java 持久层API)、Hibernate、AspectJ、Spring Security、Spring Web Flow、Log4J 和 Maven等成熟可靠的库,快速声场数据库、连接池、模板、logging等组件的配置文件,当然还有POJO的CRUD代码。

利用Spring Roo可以敏捷开发Web项目,但项目不会依赖与Spring  Roo。通常情况下,我们可以利用Spring Roo快速构建MVC工程,自动生成代码,然后导入到STS/Eclipse/IntelliJ等IDE中继续开发,然后根据实际的业务逻辑和个人编码习惯进行改造,当需要增加模型、Service层、Controller层时,执行一行Roo命令就可以快速完成需求。

二、快速构建

2.1 安装配置

系统环境:默认已安装好Jdk1.8和Maven 3.3。

去官网下载安装包:https://projects.spring.io/spring-roo/#running-from-shell

解压,然后将bin路径加入到系统变量Path中,比如C:\spring-roo-2.0.0.RC1\bin,然后在CMD中执行roo命令即可进入Spring Roo的命令行模式,如下:

另外,在Eclipse或STS中安装Roo插件即可集成到IDE中,依次进入Eclipse->Help->Install new Software-Add , 添加如下安装源:Roo – http://dist.spring[……]

Read more

WSO2 API Manager调研学习总结

2017年9月8日 Java, Web开发 2 comments ,

近期要做一个SOA服务治理相关的项目,详细调研了下WSO2的API Manager(简称,APIM)。因为在调研过程中发现,国内研究WSO2的开发者较少,社区中也不是很活跃,可供直接上手的中文文档很少,好在官网提供的用户文档比较详细,认真研读研读,调研推进起来还不算太费劲,不过源码比较庞大,大致了解下框架。本文梳理下所调研的APIM相关知识,希望能给后来的开发学习者提供一点帮助。

一、概述

当企业实现自己的SOA框架时,需要对外以APIs的方式暴露内部系统的一些关键的流程、数据和服务。外部系统可以集成这些开放的APIs构建新的业务的解决方案,这种模式可以以一种去中心化的开发模式快速扩展潜在市场,挖掘潜在客户,带来巨大的经济效益,这就是所谓的“APIs经济”。但以一种协同的方式发挥API的杠杆作用面临着一些挑战:控制管理、可信连接、安全认证等。

WSO2 API Manager是一款可以旨在提供优秀的API管理功能的开源产品,能够实现API的创建、发布、生命周期管理、流量控制、版本控制、治理和安全控制等功能。 已用于WSO2 Enterprise Service Bus、WSO2 Identity Server和WSO2 Governance Registry等产品中。WSO2 API Manager可以为开发团队提供Web页面进行部署、管理和监控API,服务消费者可以进行服务发现、服务订阅以及服务调用。APIM的Key Manager组件默认通信协议是Apache Thrift,另外,APIM可以通过集成WSO2 Analytic平台实现API调用监控及告警。

二、安装部署

2.1 基本配置

单点部署方式:

默认Linux环境:Jdk1.8、关闭防火墙,关闭环境中运行Rabbitmq服务,检查端口是否存在冲突
查看5672端口占用

# nets[……]

Read more

Openstack虚拟机备份

2017年9月8日 Ceph, Openstack, Shell, 云计算 No comments , ,

一、概述

采用Ceph分布式文件系统作为Openstack后端存储已经成为一种主流的存储对接方案,Nova、Glance、Cinder都将Ceph rbd作为默认存储。虚拟机、云硬盘及其快照的备份都可以根据rbd特性进行快捷的备份操作,实践中根据实际的情况制定适合的备份策略。备份策略的制定可考虑以下因素:

  • 备份目标;
  • 备份数据的保有量;
  • 备份频率

制定好备份策略后,据此配置好备份脚本及程序,定时备份生产环境中虚拟机等重要数据的备份。

二、备份操作

2.1 全量备份

(1)直接导出虚拟机镜像的方式

虚拟机、云硬盘及其快照的备份时全部类似,都无需关机,直接从Ceph统一存储rbd上导出相关镜像即可。

这种方式适用于虚拟机当前状态的制作镜像并备份,非常方便,不会在Openstack平台和Ceph系统上留下痕迹,适合跨云的镜像快速迁移。

恢复虚拟机只能通过Openstack镜像上传,然后在Openstack中创建虚拟机的方式进行间接恢复。

(2)利用rbd导出的方式

先给当前虚拟机创建快照并导出全量数据。

例如这里导出一个虚拟机的快照数据到本地,:

这种方式是从Ceph存储端做备份,先给当前虚拟机rbd存储打个快照,然后全量导出。

这种方式的恢复也完全在Ceph侧操作,通过rbd import方式恢复即可。

rbd import会创建一个新的镜像,并从指定的文件中导入数据,当前前提是vms/fa8db954-46c7-40bd-80b5-02[……]

Read more

从云硬盘(卷)中创建虚拟机

2017年9月7日 Openstack, 云计算 No comments

1 系统分区引导方式

当启动Openstack虚拟机时,系统分区创建方式有以下五种:

  • 从虚拟机镜像引导:需要用户从Glance镜像库中指定一个镜像,并将其拷贝到临时磁盘;
  • 从虚拟机快照引导:需要用户指定一个虚拟机快照,并将其拷贝临时磁盘来系统分区;
  • 从Volume卷引导:需要用户来指定Cinder 卷,直接挂载为虚拟机系统分区,无需拷贝,因为卷是可引导磁盘,操作系统所需文件已经保存;
  • 从虚拟机镜像引导并挂载新建的Volume卷:需要用户从Glance镜像库中指定一个镜像,镜像内容会被拷贝到一个新创建的Cinder卷中,随后将其挂载为虚拟机的系统盘;
  • 从Volume卷快照引导并挂载新建的Volume卷:需要用户指定Cinder卷的快照,快照将被拷贝到一个新创建的Cinder卷中,随后将其挂载为虚拟机的系统盘。

后面三种与Volume卷相关的三种引导方式,通常系统分区的声明周期通常都比虚拟机的生命周期还要长,因为虚拟机停止时,卷没有被删除。与前两种方式对比,从卷中引导虚拟机系统具有更快的配置和启动速度。Nova存储后端配置为本地文件存储的话,性能方面要弱很多,因为不支持虚拟机的在线迁移,如果存储后端对接共享存储集群(NFS、Ceph等)可以支持虚拟机的在线迁移,因为虚拟机系统分区可以从多次存储节点上并发访问。

2 从卷中创建虚拟机

在通常情况下,从虚拟机镜像或虚拟机快照中创建虚拟机已经足够了,但有些时候我们想要持久化存储的系统盘时而临时盘时,从卷中启动虚拟机将变的非常有用,另外从卷中启动还有以下优点:

  • 可以不受云主机类型中磁盘配额的限制(甚至可以指定一个零磁盘的类型)
  • 持久化的卷生命周期比虚拟机实例的声明周期还要长
  • 可以从卷中直接创建镜像,无论卷是否已经挂载到虚拟机上

3 实践

3.1 创建可启动的卷

[……]

Read more

操作系统原理学习总结之进程管理(三)

2017年8月20日 操作系统 No comments