如何更高效的管理原生微服务应用

阿里云分布式应用服务EDAS 最近发布了支持原生Dubbo和Spring Cloud应用功能的新版本,此功能是以非侵入方式支持的,且几乎不需要修改任何代码。在此我们体验了一下如何在EDAS上部署原生Dubbo和Spring Cloud应用。

原生Dubbo应用
自从阿里重启Dubbo维护以来,其热度迅速蹿升,Github上的星标数已经达到了2.2万个之多,可谓中国开源软件界的明星产品。但是作为自家商业化输出的EDAS产品,却一直以来只能支持闭源的HSF微服务框架,对用户而言不能不说是一种遗憾。虽然以前也是可以支持Dubbo应用的,但却是以一种所谓的Dubbo over HSF来变相实现的,并不是真正无侵入的原生应用。现在这个担忧终于没有了,EDAS官方正式开始了商业化支持Dubbo的进程。

闲话少絮,我们先来构建一个简单的Dubbo应用,并将其部署到EDAS上面。根据这篇文档介绍的方法,我们来实现一个简单的Echo应用。此应用的能力是客户端通过HTTP接口获得一个字符串消息,然后将此消息发送给服务端,服务端接收到这个消息之后,再原封不动的回传给客户端,最终客户端将此回声信息打印出来,程序结束。

本文并不是一篇教程类文章,因此不会详细介绍该如何编写这样一个应用,只来关注一些重点内容。首先,除了依赖Dubbo库之外,还需要依赖一个EDAS提供的扩展库edas-dubbo-extension。该扩展库就是EDAS支持原生Dubbo应用的关键所在。

图1.edas-dubbo-extension依赖

除此之外,我们还需要将Dubbo配置文件中的registry参数设置为轻量级配置中心的地址。

图2.registry地址

经过了这样的修改之后,我们的应用就可以原封不动的部署到EDAS上面了。

实际的部署过程与普通应用无异,应该是EDAS会自动判断该应用是否为原生Dubbo进而区分对待,因此熟悉EDAS的用户在这一点上不会碰到任何问题。部署完成以后在Provider和Consumer应用的服务列表里面,分别可以看到如下内容,说明服务启动正常。

图3.发布的服务

图4.消费的服务

原生Spring Cloud应用
这篇文章 非常详细的介绍了原生Spring Cloud应用如何与EDAS集成,在这里就不再赘述了。同支持原生Dubbo使用的方式一样,在构建适应EDAS环境的Spring Cloud应用时需要引入额外的ANS组件,这使得在本地轻量级配置中心环境下调试通过的应用可以无需任何改动就直接部署到EDAS环境上,可谓非常方便。

商业化版本与开源版本的对比
作为商业化产品,其跟开源版本相比还是有不少的差异,且极大的提高了用户的工作效率、降低了人力投入。

首先,EDAS版本的原生Dubbo和Spring Cloud应用支持共享的服务注册与发现组件,比起部署开源版本所需的Zookeeper、Redis或Consul而言,节省了系统开销与运维成本。

其次,开源版本的Dubbo并不天然支持配置管理功能,Spring Cloud有基于Git的配置管理能力,而这一点在EDAS上也是开箱即用的,且支持配置推送能力。

另外,同以往HSF应用一样,原生Dubbo和Spring Cloud应用同样支持监控和告警能力,也免去了部署相关开源组件的需要。

随着版本的继续迭代升级,相信EDAS对开源版本的兼容会越来越好。

原文地址:http://blog.51cto.com/14031893/2336539

时间: 2024-11-09 02:26:17

如何更高效的管理原生微服务应用的相关文章

Pull Request 工作流——更高效的管理代码

目录 Pull Request 工作流--更高效的管理代码 1.问题 2.解决方案 3.Git分支流管理代码具体实施 3.1本地分支操作管理 3.1.1查看分支 3.1.2创建分支 3.1.3切换分支 3.1.4删除分支 3.1.5将本地分支上传到远程服务器 3.1.6合并分支 3.2远程分支操作管理 3.2.1 选择分支管理 3.2.2 新建合并请求 3.2.3输入标题描述 3.2.4审核合并请求 3.2.5审核代码 3.2.6审核者同意合并分支 3.2.7 合并完成 Pull Request

k8s 集群管理和微服务 适合做啥

k8s 集群管理和微服务 适合做啥 都知道k8s是集群 适合微服务 有很多教程 但你可以先了解他能干啥 traefix 是负载均衡工具 k8s 适合部署无状态依赖的微服务 可以按需求开启多个微服务 管理工具能自动发现并均衡 像redis sql ceph(对象存储)这些 支撑 和有状态依赖的服务 并不适合k8 原文地址:https://www.cnblogs.com/ham-731/p/12231693.html

k8s原生微服务管理工具helm-v3的使用初探实践(1)

Helm-v3应用包管理器 3.1 为什么需要Helm?K8S上的应用对象,都是由特定的资源描述组成,包括deployment.service等.都保存各自文件中或者集中写到一个配置文件.然后kubectl apply –f 部署. 为什么使用helm?在k8s中,当我们去部署应用的时候,一般都是使用yaml文件去管理我们的应用的发布,比如像微服务,其中包括deployment,service,configmap,ingress,但是如果我们有上百个微服务的话,每次的修改涉及也都会比较多,感觉就

K8s原生微服务管理工具helm-v3的使用初探实践(2)

目录:根据微服务的发版需求进行对应用进行调试,使用chart的模版发布微服务1.基于dubbo微服务发布一个基于生产环境用到的helm模版模版地址:git clone [email protected]:zhaocheng172/helm-dubbo.git拉取请把你的公钥给我,不然拉不下来 3.6 Chart模板Helm最核心的就是模板,即模板化的K8S manifests文件.它本质上就是一个Go的template模板.Helm在Go template模板的基础上,还会增加很多东西.如一些自

SpringBoot + Kubernetes云原生微服务实践 - (1) 介绍与案例需求

学习目标 Dev 掌握微服务架构和前后分离架构设计 掌握基于Spring Boot搭建微服务基础框架 进一步提升Java/Spring微服务开发技能 掌握Spring Boot微服务测试和相关实践 理解SaaS多租户应用的架构和设计 Ops 理解可运维架构理念和相关实践 掌握服务容器化和容器云部署相关实践 理解云时代的软件工程流程和实践 案例需求:Staffjoy工时排班(Scheduling)SaaS服务 功能 管理员Admin管理公司和排班 雇员Worker管理个人信息 非功能 SaaS +

docker微服务部署之:六、Rancher管理部署微服务

docker微服务部署之:五.利用DockerMaven插件自动构建镜像 一. 什么是Rancher Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台. Rancher官网:https://rancher.com 二.Docker中下载Rancher镜像并运行 #Rancher镜像下载 $ sudo docker pul

SpringBoot + Kubernetes云原生微服务实践 - (6) 微服务测试设计和实践

微服务测试设计和实践 微服务测试的最大挑战:依赖.解决方案是采用分而治之的策略:a.先针对每一个微服务进行隔离测试,在对每一个微服务进行测试的时候再按照分层的方式进行隔离测试:测试过程中采用mock等技术来隔离依赖简化测试:b.在确保每个微服务通过隔离测试后,再进行整个应用的端到端集成测试 微服务测试分类和技术 Spring(Boot)应用分层 controller 服务的对外接口层,负责接收请求和发送响应 中间涉及到消息,一般是json跟对象间的转换,术语叫做序列化,一般由框架封装 控制器需要

.NET微服务 容器化.NET应用架构指南(支持.NET Core2)

介绍 企业通过使用容器,日益实现成本节约.解决部署问题并改进 DevOps 和生产操作. 通过创建 Azure 容器服务.Azure Service Fabric 等产品,同时与 Docker.Mesosphere 和 Kubernetes 等行业领先者合作,Microsoft 发布了适用于 Windows 和 Linux 的容器创新. 这些产品提供容器解决方案,可帮助公司以云的速度和规模生成并部署应用程序,而无需考虑其选用的平台或工具. Docker 正在逐渐成为容器行业的事实标准,受到 Wi

微服务架构与实践及云原生等相关概念

微服务架构与实践 笔记:<微服务架构与实践> 王磊 著 一 单块架构 1 定义:对于这种功能集中.代码和数据中心化.一个发布包.部署后运行在同一进程的应用程序,我们通常称之为单块架构应用,并非物理上的分层. 2 单层架构:数据 逻辑 页面 混合 3 三层架构: 1)表示层:数据显示和用户交互 2)业务逻辑层:业务逻辑处理 3)数据访问层:数据存储访问 4 优势: 比较适合小项目 易于开发:开发简单直接,集中式管理,基本不会重复开发,集成工具适合 易于测试:单进程 易于部署:单项目包,功能都在本