微服务详解(五):实现微服务

微服务详解(一):概述

微服务详解(二):解决方案

微服务详解(三):设置开发环境

微服务详解(四):领域驱动设计

微服务详解(五):实现微服务

微服务详解(六):部署与测试

微服务详解(七):微服务的安全性

微服务详解(八):最佳做法和一般原则

微服务详解(九):故障排除指南

利用Spring Boot来实现领域驱动设计概念并将它们从核心Java转换为预计Spring框架的模型;

利用Spring Clouded,它提供了一个云就绪的解决方案。Spring Cloud也是用Spring Boot,它允许你使用嵌入式应用程序容器,这依靠你的服务内的Tomcat或者Jetty,被打包为一个JAR文件或者WAR文件。这个JAR作为一个单独的进程执行,也就是将所有请求提供服务和响应,并指向此服务中定义的端点的一个微服务;

Spring Cloud也可以方便的和Netfix Eureka集成,这是一种服务注册和发现组件。

1.OTRS概述

基于微服务的原则,我们需要为每个可以独立执行的功能都建立单独的微服务。

2.开发和实现微服务

关键的工件:

  1. 实体:

这些都是可以识别并保持产品或者服务的状态不变的对象的类别。这些对象不是由它们的属性定义,而是由它们的身份和线程的连续性定义;

值对象(VO):只有属性且没有概念上的身份。最佳的做法是把值对象保持为不可变的对象,在Spring框架中,实体是纯Pojo,因此我们可以把他们作为VO来使用;

  1. 服务:

服务对象不具有内部的状态,它的唯一目的就是对领域的行为。

服务对象提供不能与特定实体或者值对象相关联的行为。

  1. 存储库对象:

存储库对象是领域模型的一部分,它与存储区,如数据库、外部来源等交互,以获取持久化的对象。当存储库收到某个对象引用的请求的时候,它返回现有的对象的引用,如果存储库黄总不存在所请求的对象,那么他从存储区中获取此对象;

1.餐馆微服务

控制器类

@RestController

  1. 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/<server_jar_file>

5.测试

在pom.xml中添加以下依赖:

spring-boot-starter-test

猜你喜欢

转载自blog.csdn.net/qq_36807862/article/details/81284255
今日推荐