快速开始
#
安装配置本框架推荐使用 Maven 进行开发,目前主流的 Java 开发工具都对 Maven 有较完善的支持,后续会增加对Gradle的支持。本文档是基于你已经熟悉 Maven 的基础上进行编写的。
在项目的 pom.xml 文件里,添加如下 Maven 依赖:
本框架推荐设置一个工作目录给应用程序读写数据。如果没有主动设置,框架运行时会自动按当前开发环境的项目根目录、当前用户目录(user.home)的顺序尝试创建一个名为ready.work的工作目录。 如果当前应用在IDE中运行,通常能在当前项目的根目录下创建ready.work工作目录,如果是打包运行则会在当前运行目录下尝试创建ready.work工作目录。如果不希望在以上位置创建工作空间,路径可以通过配置文件或环境变量进行指定。
通过环境变量设置路径, JVM 参数优先,例如:-D ready.root_path=/workspace,其次是系统环境变量设置,例如:export ready_root_path=/workspace
bootstrap配置文件
#
快速体验和前面介绍的单体应用比较,只需要额外增加一个注解标签即可变成微服务应用。和SpringCloud、Dubbo等流行的微服务架构比较,可谓是超级简单,你不用去写一大堆互相依赖关联的配置文件,也不用去理会注册中心、服务注册、服务发现等问题。 请看下面的实例,该实例实现了2个API微服务,4个节点的集群,基本上零配置:
- 第一步,先实现2个API服务
作为演示,这2个API都很简单,都只是输出一串文字而已。这和前面的单体应用没有任何区别。
- 接下来,我们做服务启动器
上面就是一个节点,和单体应用差别就是多了个@EnableCloud注解标签,如果启动这个应用,访问8080端口的2个API就可以显示上面的字符串。 但考虑到我们是要演示集群微服务,我们将这个启动器(Node1.java)再复制3份,分别命名为Node2.java、Node3.java、Node4.java,端口号分别改为8081、8082、8083,其他都不变。 如果我们启动这些启动器,就可以分别通过对应端口号访问到对应的API,但他们虽然已经知道彼此的存在,但还只是各自提供服务。
- 微服务实例
首先实现一个微服务实例来调用上面实现的API服务:
然后,我们实现一个控制器来使用这个DemoService服务。
如果你了解SpringCloud或Dubbo,那么可以这样理解,前面的API服务实例是provider,这里微服务实例是consumer。 上面的控制器调用我们的DemoService,url映射在/下了。前面的那个API控制器映射在/api下了,所以如果通过/api/hi和/api/hello访问的是节点自己的真实服务,如果通过/hi和/hello访问的会是集群化的微服务。 为了方便演示,上面的例子将API服务实例和微服务集群混合在一起了,实际应用中可以将API服务实例和微服务暴露在不同的节点中。即用户访问暴露的微服务节点,微服务节点再负载均衡到实际的API服务节点,再原路返回结果到用户。 现在可以按顺序启动4个节点,因为端口做了区分,因此可以在单机启动,也可以多机启动,先启动一个节点,再启动其他3个节点。需要注意的是电脑需要有局域网,不能什么网都没有,把电脑联上WIFI,或者手机热点模拟一个局域网也行。