微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大、更复杂的应用程序,而这些应用程序作为微小服务的组合能够更好地得以开发和管理。这些微小的服务可以组合在一起工作,j2直播,并实现更大、应用更广泛的功能。现在出现了很多的工具来满足使用逐段法而不是一次性地设计和构建应用程序的所有需求。今天,我们来看一下什么是微服务、使用微服务的好处,以及几个代码示例。 微服务是什么? 微服务是一种面向服务的架构风格(Java开发人员最重要的技能之一),其中,应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是,微服务让你可以同时运行多个独立的应用程序,而这些独立的应用程序可以使用不同的编码或编程语言来创建。庞大而又复杂的应用程序可以由多个可自行执行的简单而又独立的程序所组成。这些较小的程序组合在一起,可以提供庞大的单程序所具备的所有功能。 微服务捕获了你的业务场景,回答了“你想要试着解决什么问题”这个问题。微服务的开发团队的成员数量比较少,而且可以用任何语言、任何框架进行开发。每个相关的程序都是独立地版本化、执行和扩展。这些微服务可以与其他微服务进行交互,并且具有唯一的URL或名字,同时,即使遇到故障,也能始终保持可用性和一致性。 微服务能带来哪些好处? 使用微服务能带来多个好处,其中有一个好处是,由于这些较小的应用程序无需使用相同的编程语言,直播,因此,开发人员可以使用他们最熟悉的语言。这有助于开发人员用更低的成本和更少的错误来开发程序。灵活性和低成本这两个特点也表现在可以将这些较小的程序重用在其他项目中,从而使其更有效率。 这里有几个可用于Java开发的微服务框架: Spring Boot:这可能是最好的Java微服务框架了,它适用于控制反转、面向切面编程等等。 Jersey:这个开源框架支持Java的JAX-RS API,使用起来非常容易。 Swagger:在为你提供开发门户网页的同时,能帮助你生成API文档,以允许用户测试你的API。 你也可以考虑使用其他一些框架,包括:Dropwizard、Ninja Web框架、Play框架、RestExpress、Restlet、Restx和Spark Framework。 如何使用DropWizard来创建微服务 DropWizard将成熟稳定的Java库集成在一个轻量级的包中,你可以在自己的应用程序中使用这个包。它使用了Jetty for HTTP、Jersey for REST和Jackson for JSON,以及Metrics、Guava、Logback、Hibernate Validator、Apache HttpClient、Liquibase、Mustache、Joda Time和Freemarker。 你可以使用Maven来设置Dropwizard应用程序。怎么做呢? 在你的POM文件中,添加一个dropwizard.version属性,值为DropWizard的最新版本。 <properties> <dropwizard.version>LATEST VERSION</dropwizard.version> </properties> <!--Then list the dropwizard-core library:--> <dependencies> <dependency> <groupId>io.dropwizard</groupId> <artifactId>dropwizard-core</artifactId> <version>${version}</version> </dependency> </dependencies> 这将为你设置一个Maven项目。在这里,你可以创建配置类、应用程序类、表现类,资源类或一个健康检查,还可以构建Fat JARS,然后运行应用程序。 在此链接中可以查看Dropwizard用户手册,这个链接是GitHub库。 示例代码: package com.example.helloworld; import com.yammer.dropwizard.config.Configuration; import com.fasterxml.jackson.annotation.JsonProperty; import org.hibernate.validator.constraints.NotEmpty; public class HelloWorldConfiguration extends Configuration { @NotEmpty @JsonProperty private String template; @NotEmpty @JsonProperty private String defaultName = "Stranger"; public String getTemplate() { return template; } public String getDefaultName() { return defaultName; } } Spring Boot微服务 (责任编辑:本港台直播) |