您现在的位置:首页 > 课程体系 > 大数据与人工智能 > 微服务架构
微服务的几种开发代码示例

微服务在程序开发领域的使用频率越来越高,这是因为开发人员致力于创建更大、更复杂的应用程序,这些应用程序作为更小服务的组合能够得到更好的开发和管理,这些服务紧密地协同工作,以实现更广泛的应用程序范围的功能。

 

一些以满足使用逐件方法思考和构建应用程序的需求为目的的工具正在兴起,实现微服务方法比一次考虑整个应用程序更“复杂”与“巧妙”

 

今天我们来讨论一下微服务的定义、好处,以及一些代码示例。

 

什么是微服务?

微服务是一种将单个应用程序开发为一组小型服务的体系架构类型每个服务都在自己的进程中运行。这些服务使用轻量级协议与客户端通信,通常通过消息传递或HTTP进行通信。

 

微服务可以被认为是一种面向服务的体系结构(Java开发人员最关键的技能之一),其中应用程序是作为不同的较小服务的集合而不是一个完整的应用程序构建的。

 

你有几个可以独立运行的应用程序,而不是一个单一的应用程序。您可以使用不同的编程语言甚至不同的平台来创建它们。您可以使用自己执行的更简单、独立的程序来构建大型和复杂的应用程序。这些较小的程序被分组以提供大型单片应用程序的所有功能。

 

微服务可以更有效的捕获企业的业务场景,回答你有什么需求这个问题。

 

规模较小、更敏捷的团队使用他们最熟悉的工具和框架来开发服务,而不是处理大型、单一项目的大型团队。每个涉及的程序都是独立版本、执行和缩放的。这些微服务可以与其他微服务交互,并且可以具有唯一的URL或名称,即使出现故障也始终可用且具有一致性。

 

微服务能带来什么好处

使用微服务有很多好处。其中一些与它们如何允许开发人员编写代码有关。会在一定程度上优化企业构架:

 

微服务是开发团队独立创建的小型应用程序。由于它们通过消息传递进行通信,因此它们不依赖于相同的编码语言。开发人员可以使用他们最熟悉的编程语言。这有助于他们更快地工作,降低成本,减少错误

 

由于您的团队正在处理更小的应用程序和更专注的问题领域,他们的项目也往往更敏捷。他们可以更快地迭代,在更短的时间内解决新功能,并几乎立即修复错误。他们也经常发现更多的机会来重用代码。

 

微服务还可以提高体系结构的可扩展性。对于单片系统,您通常会被硬件设施以及维护费用困扰。但使用微服务,您可以使用负载分配器和消息传递等标准解决方案进行横向扩展。

 

云平台为容器化等新技术提供了便利。微服务也有利于容器化,因为它们已经是具有有限依赖性的小型应用程序。这意味着您可以使用DockerKubernetes等技术横向扩展服务,而无需编写任何自定义代码。有关虚拟化容器与Docker+K8S的技术实践可以参考“虚拟化容器技术Docker+K8s高级培训”。

 

Java微服务框架示例

有几个微服务框架可以用于Java开发,包括:

 

Spring Boot这可能是最好的Java微服务框架,它可以在控制反转、面向方面编程和其他语言之上工作。

 

Jersey这个开源框架支持Java中的JAX-RSAPI,非常易于使用。

 

SwaggerSwagger帮助您记录API,并为您提供一个开发门户,允许用户测试您的API

 

其他可供使用的开发框架DropwizardNinja Web FrameworkPlay FrameworkRestExpressRestletRestxSpark Framework

 

Dropwizard创建微服务架构

DropWizard将成熟稳定的Java库整合到轻量级包中,供您的应用程序使用。它将Jetty用于HTTP,将Jersey用于REST,将Jackson用于JSON,以及MetricsGuavaLogbackHibernate ValidatorApache HttpClientLiquibaseMustacheJoda TimeFreemarker

 

可以使用Maven设置Dropwizard应用程序,以下是步骤示例:

在您的POM中,使用dropwizard添加一个dropwizard.version属性

 

以上操作将为您建立一个Maven项目。从这里,您可以创建配置类、应用程序类、表示类、资源类或运行状况检查,还可以构建FatJARS,然后运行您的应用程序。

 

示例代码:

 

 

Spring Boot创建微服务架构

Spring Boot提供了一种给予Java的架构,通过嵌入式服务器与您自己的应用程序一起使用。它依赖于Tomcat,所以不必使用JavaEE容器。

 

不管你是在为安全、配置还是大数据编写应用程序均可以应用Spring Boot

Spring Boot项目包括:

 

IO平台:用于版本化应用程序的企业级分发。

框架:用于事务管理、依赖项注入、数据访问、消息传递和web应用程序。

云:用于分布式系统,用于构建或部署微服务。

数据:对于与数据访问相关的微服务,可以是map reduce、关系型或非关系型。

批处理:用于高级别的批处理操作。

安全性:用于授权和身份验证支持。

REST文档:用于记录RESTful服务。

社交:用于连接社交媒体API

移动:适用于移动Web应用程序。

 

示例代码:

 

Jersey

Jersey RESTful框架是开源的,它基于JAX-RS标准Jersey的应用程序可以通过扩展现有的JAX-RS实现,并添加使RESTful服务更简单的功能和实用程序,同时降低客户端的开发难度。

 

Jersey最棒的地方是它出色的文件记录。他的优点比比皆是,Jersey的速度也很快,路由选择也很简约。

 

示例代码:

 

Jersey很容易与其他库(如NettyGrizzly)一起使用,并且它支持异步连接。它不需要servlet容器。然而,它确实有一个未经完善的依赖项注入。

 

Play Framework

Play Framework为您提供了一种使用ScalaJava构建、创建和部署Web应用程序的更简单方法。这个框架非常适合RESTful应用程序,它要求您并行处理远程调用。它也是非常模块化的,并且支持异步。Play Framework也是拥有最大的社区之一的微服务构架。

 

示例代码:

 

Restlet

Restlet帮助开发人员创建符合RESTful体系结构模式的快速且可扩展的Web API。该框架具有良好的路由和过滤功能。它可用于Java SE/EEOSGi、谷歌的AppEngine(它是谷歌计算的一部分)、Android和许多其他Java平台。它是一个自给自足的框架,甚至自带Web服务器。

 

示例代码:

 

微服务的最佳实践

企业向微服务的转变,为开发、运营和业务带来了很多好处。它们为提高可扩展性、可靠性和成本节约创造了机会。但是,没有免费午餐这回事。也要堤防微服务自身的陷阱。

 

以下是一些有助于企业向微服务迁移的最佳实践:

 

每个微服务都应该使用自己的数据存储。您希望开发(和开发操作)团队为他们的每个服务选择数据库。他们应该有机会选择最适合他们项目的数据存储。同时,如果团队共享一个数据库,那么他们很容易共享一个模式,用不同的名称创建一个单一的服务。

 

在容器中部署微服务值得提倡。我已经多次提到,微服务团队应该选择自己的工具。通过使用容器,您可以使用一组工具来部署和编排系统来治理混乱。

 

RESTful服务和微服务经常相互关联是有原因的。这是因为好的微服务架构将其服务视为无状态的。REST的状态转移将状态向下推送到客户端,这意味着您可以将服务器视为无状态服务器,并将代码作为整体的可互换部分运行。您只需要担心是否有足够的服务可用于处理负载。而且,如果其中一个失败了,另一个可以填补空缺。

 

JAVA是微服务构架的常用语言,保障团队掌握并会熟练使用Java相关技巧是有必要的。这里推荐:“企业级JAVA高级开发技术实战培训”。Java目前的应用领域十分广泛,医疗、金融、汽车、国际物流等行业公司都有着开发和设计的需求,同时Java除了微服务应用外还兼顾着安卓游戏开发、桌面设计、Web网页项目开发等内容,其开发前景可以说是十分乐观。

 

提升开发团队的整体素质的重要性毋庸置疑,在参与到应用开发的每个人员都应当具备微服务及其架构设计的理论知识和技术能力。无论是对企业还是参与微服务项目的个人,都应当提升相关的素养。中培IT学院开展“微服务及高并发、高可用架构设计与最佳实践培训”课程,课程理论与实践相结合,细节讲解了微服务落地的关键步骤和注意事项,有助于从业人员透彻了解为服务架构的本质、掌握其应用技术。时间地点为821-24日·重庆,同时针对企业可定制课程。

 

咨询热线:400-808-2006 手机/微信:13910781835

 

 

 

 

 

[1]

 
网络安全热度最高的6本证书...
系统分析师VS系统架构设计...
项目经理考NPDP还是软考高...
盘点五个IT领域下证快的证...
CBA与TOGAF:探寻企业架构...
【收藏】软考电子证书下载...
项目经理任选两本证书,年...
DAMA中国推出“一考两证”...
数据分析具体指的是什么,...
数据分析师需要具备什么数...
CDA认证带你了解数据分析的...
敏捷与DevOps协同工作的注...
DevOps自动化测试的注意事...
DevOps五个好用的工具列表...
IT项目管理实现落地有哪些...
IT项目需求分析重点是建立...


中培IT学院 Copyright@2006-2024  北京中培伟业管理咨询有限公司.ALL Rights Reseved 备案号:京ICP备13024721号-2