微服务详解(五):实现微服务
微服务详解(一):概述
微服务详解(二):解决方案
微服务详解(三):设置开发环境
微服务详解(四):领域驱动设计
微服务详解(五):实现微服务
微服务详解(六):部署与测试
微服务详解(七):微服务的安全性
微服务详解(八):最佳做法和一般原则
微服务详解(九):故障排除指南
利用Spring Boot来实现领域驱动设计概念并将它们从核心Java转换为预计Spring框架的模型;
利用Spring Clouded,它提供了一个云就绪的解决方案。Spring Cloud也是用Spring Boot,它允许你使用嵌入式应用程序容器,这依靠你的服务内的Tomcat或者Jetty,被打包为一个JAR文件或者WAR文件。这个JAR作为一个单独的进程执行,也就是将所有请求提供服务和响应,并指向此服务中定义的端点的一个微服务;
Spring Cloud也可以方便的和Netfix Eureka集成,这是一种服务注册和发现组件。
1.OTRS概述
基于微服务的原则,我们需要为每个可以独立执行的功能都建立单独的微服务。
2.开发和实现微服务
关键的工件:
- 实体:
这些都是可以识别并保持产品或者服务的状态不变的对象的类别。这些对象不是由它们的属性定义,而是由它们的身份和线程的连续性定义;
值对象(VO):只有属性且没有概念上的身份。最佳的做法是把值对象保持为不可变的对象,在Spring框架中,实体是纯Pojo,因此我们可以把他们作为VO来使用;
- 服务:
服务对象不具有内部的状态,它的唯一目的就是对领域的行为。
服务对象提供不能与特定实体或者值对象相关联的行为。
- 存储库对象:
存储库对象是领域模型的一部分,它与存储区,如数据库、外部来源等交互,以获取持久化的对象。当存储库收到某个对象引用的请求的时候,它返回现有的对象的引用,如果存储库黄总不存在所请求的对象,那么他从存储区中获取此对象;
1.餐馆微服务
控制器类
@RestController
- API版本控制:管理API版本的方法很多,其中一种是在路径中使用版本,还有一种方法是使用HTTP头。HTTP标头可以是表示调用的API版本的自定义请求标头或者Accept标头;
服务类
使用@Service
存储库类
使用@Repository
实体类
2.预定和用户服务
3.注册和发现服务(Eureka服务)
Spring Clouded提供了对Netflix Eureka最先进的支持,这是一种服务注册和发现工具。
所有由你执行的服务都被Eureka服务列出和发现,这是从你的服务项目内的Eureka客户端Spring配置中读取的;
需要在Maven中添加依赖:
spring-cloud-starter-eureka-server
启动类App将只使用@EnableEurekaApplication类注解来无缝的运行Eureka服务;
@EnableEurekaServer
Spring的配置:
Eureka服务也需要下列Spring配置信息用于Eureka服务器配置
类似于Eureka,每个服务还应该包含Eureka客户端的配置,以便可以建立Eureka服务器和客户端之间的连接,没有这一点,是不可能注册和发现服务的;
4.执行
从服务的主目录执行以下命令:
java -jar target/
5.测试
在pom.xml中添加以下依赖:
spring-boot-starter-test
还没有评论,来说两句吧...