
Micro Services
文章平均质量分 80
易生一世
spring-petclinic-graphql开源项目的贡献者
展开
-
微服务中基于事件订阅发布的分布式数据最终一致性软件框架Eventuate概述
Eventuate Platform是一个编写支持事务的微服务的事件机制平台,提供事件库服务,通过事件的订阅发布解决分布式数据管理的最终一致性。1. Eventuate采用事件驱动的编程模型:基于event sourcing的原子性操作 基于CQRS(Command Query Responsibility Segregation)的视图2. 概念模型Entity----------...原创 2017-09-13 10:53:25 · 4274 阅读 · 0 评论 -
JAX-RS与Jersey的Interceptor详解
在JAX-RS标准中,过滤器Filter是JAX-RS API的组成部分,主要用于操作HTTP请求或响应的Headers, Methods和URI等参数。而拦截器Interceptor作为JAX-RS extension API的组成部分,主要操作HTTP请求或响应的Body中的Entity数据流,如对Entity数据流进行压缩/解压缩,JSON格式与Java对象之间的转换等。可以说,在JAX-R...原创 2018-08-24 16:39:01 · 3685 阅读 · 0 评论 -
Jersey的Filter详解
Jersey是一款实现了JAX-RS标准的RESTful Web Services开发框架。Jersey的Filter主要用于操作HTTP请求或响应的Headers, Methods和URI等参数。而相比较,Jersey的Interceptor主要操作Entity的输入流和输出流,如对Entity输入流进行zip/unzip。1. Filter的分类1) 根据Filter的功能请求...原创 2018-08-23 14:51:55 · 5164 阅读 · 0 评论 -
基于Jackson的JSON数据处理详解
Jackson也被称为JSON for Java,已经成为事实上的JSON数据处理的标准实现。Jackson提供了一组工具,用以处理JSON数据,当前最新版本为28-Mar-2018发布的2.9.5。Jackson的标准设计思路是首先构造JsonFactory对象,然后生成JsonParser对象以读取JSON数据并转换为Java对象,或者生成JsonGenerator对象以将Java对象...原创 2018-06-12 17:40:43 · 8664 阅读 · 1 评论 -
spring-petclinic-graphql项目详解
熟悉Spring框架的开发人员对其著名的spring-petclinic应用都不陌生。Nils在spring-petclinic的基础上开发了结合GraphQL特性的spring-petclinic-graphql应用,本文对该应用进行详解。1. spring-petclinic-graphql的组成backend,使用graphql-java实现的GraphQL API服务依赖graphql-s...原创 2018-04-24 23:54:04 · 2283 阅读 · 0 评论 -
GraphQL的GraphQL Java Tools概述
GraphQL Java Tools是一个软件包,能够从GraphQL的模式定义*.graphqls文件构建出对应的Java的POJO类型对象。GraphQL Java Tools的最新版本是2017.11发布的4.3.0。1. GraphQL Java Tools的项目名称为graphql-java-servlet,其本身依赖如下软件模块:com.graphql-java:graphql-jav...原创 2018-04-23 23:12:08 · 4793 阅读 · 0 评论 -
docker exec执行多个命令详解
docker exec命令能够在运行着的容器中执行命令。docker exec命令的使用格式:docker exec [OPTIONS] container_name COMMAND [ARG...]OPTIONS说明:-d,以后台方式执行命令;-e,设置环境变量-i,交互模式-t,设置TTY-u,用户名或UID,例如myuser:myusergroup通常COMMAND只能是一条语句,为了支持多...原创 2018-04-23 22:46:24 · 51501 阅读 · 0 评论 -
graphql-spring-boot,结合GraphQL的Spring Boot Starters类库概述
GraphQL服务器能够提供的API查询请求,往往是通过HTTP实现的。而Spring Boot能够方便地构建一个Web服务,于是自然就引入了Spring Boot使能的GraphQL服务器。graphql-spring-boot是一个Spring Boot应用的辅助类库,基于GraphQL Java实现的graphql-java和graphql-java-servlet,能够以Spring Bo...原创 2018-04-18 23:42:10 · 8424 阅读 · 0 评论 -
Maven构建一个结合GraphQL服务的Spring Boot应用
本文使用Maven从零开始构建一个Spring Boot应用,以发布一个支持GraphQL的Web服务器。1. 执行mvn archetype:generate可以选择模板(但是已有的模板往往跟不上技术的进步),也可以只是生成一个基本的Maven项目。2. 编辑生成的pom.xml文件,使之首先支持Spring Boot特性 <parent> <groupI...原创 2018-04-23 00:02:52 · 4360 阅读 · 0 评论 -
GraphQL标准的Java实现graphql-java概述
GraphQL标准提供了多种主流编程语言的实现,本文介绍其中的Java实现graphql-java。所谓GraphQL标准的实现,就是一个GraphQL服务器的实现,通过一组软件组件,以支持请求的解析、验证和执行GraphQL查询。graphql-java就是GraphQL标准的Java语言实现之一,当前最新版本是8.0。在Maven项目中配置如下:<dependency> &...原创 2018-04-18 00:12:39 · 20302 阅读 · 0 评论 -
GraphQL入门指南
微服务架构下,原来一个完整的应用可能被拆分成若干个功能独立的服务,在PaaS的支撑下各自运行在独立的容器中。服务之间的同步调用以REST请求为主,这里不讨论异步调用中的事件的发布订阅。对于访问服务的调用者,首先要装配并发出HTTP请求,然后得到服务的响应后,还需要解析数据转换为内部数据对象。这个过程与业务逻辑无关,而且繁琐难以扩展。尤其是在微服务的架构中,涉及对多个服务的调用,聚合多个服务或一个服...原创 2018-04-12 00:10:18 · 2600 阅读 · 0 评论 -
Dockerfile Maven插件及扩展详解
作为一个Docker项目,都绕不过Dockerfile文件构建、打标签和发布等操作。如果能够将对Dockerfile文件的这些操作包含进Maven的生命周期管理中,将极大简化Docker项目的构建发布过程。Dockerfile Maven是Spotify公司提供的一款Maven插件(还包含一个Maven扩展),用以辅助Docker项目(借助于Maven管理)进行Dockerfile文件构建、标...原创 2018-04-04 16:09:19 · 14458 阅读 · 4 评论 -
Spring Boot应用的Unable to find main class异常详解
1. Spring Boot应用执行java -jar myApp.jar时,出现如下异常:[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.4.RELEASE:repackage (default) on project teac: Execution default of ...原创 2017-07-19 23:13:37 · 43434 阅读 · 0 评论 -
Spring MVC - RAML Spec Synchroniser简介
1. Spring MVC - RAML Spec Synchroniser是一个工具,用以在Spring MVC应用和RAML文件定义之间进行同步。即Spring MVC应用的变化,可以通过该工具同步体现在RAML文件的定义中;反之亦然。该工具包含如下3个独立的组件:springmvc-raml-pluginspringmvc-raml-parser(忽略),解析Spring Annotatio...原创 2017-07-12 15:16:16 · 1224 阅读 · 0 评论 -
Spring MVC-RAML Synchronizer Sample代码分析
Spring MVC-RAML Synchronizer Sample,顾名思义是Spring MVC-RAML Synchronizer的一个示例。但是Spring MVC-RAML Synchronizer包含3个组成部分,所以准确地说,Spring MVC-RAML Synchronizer Sample是springmvc-raml-plugin的示例。即,Spring MVC-RAML ...原创 2017-07-12 16:07:57 · 896 阅读 · 0 评论 -
配置一个Spring Boot应用的过程详解
一个Spring Boot应用,为了适应不同的运行环境,其可配置的属性不能写在应用代码中,而往往位于应用之外,即配置属性的改变无需修改Spring Boot应用。Spring Boot可以通过如下几种方式实现属性的应用外配置:properties文件yml文件操作系统的环境变量应用的启动参数这里我们只介绍最基本的application.properties配置文件及其使用。1.为Spring Bo...原创 2017-09-01 15:28:16 · 482 阅读 · 0 评论 -
Spring应用的运行环境及属性配置综述
1.Spring Framework的Environment接口Spring Framework核心模块中的org.springframework.core.env.Environment接口,表示Spring应用的运行环境,用以表示Spring应用的profile和properties。2.Spring Framework的profiles1) 定义profilesSpring的profiles...原创 2017-09-06 13:46:48 · 864 阅读 · 0 评论 -
基于Eventuate的微服务应用Money Transfer分析
Money Transfer是Chris Richardson在自己的官方博客提供的一个账户转账的应用示例,其核心是基于Eventuate实现的。Eventuate通过一个公共的事件库(Event Store)提供了分布式数据的最终一致性实现。1. 在Money Transfer应用中,集中展现了微服务的如下特性:microservices polyglot persistence e...原创 2017-09-13 11:31:20 · 1787 阅读 · 0 评论 -
JTF的Unable to invoke request异常或Unable to find a MessageBodyReader of content-type application..异常详解
基于Jersey开发的一个操作OpenStack的REST服务,利用Jersey的Test Framework编写单元测试类如下:public class RestAddressTest extends JerseyTest { Integer autoId = 1; @BeforeClass public void before() throws Excepti...原创 2018-10-25 23:53:11 · 5521 阅读 · 1 评论