微服务架构十条最佳实践
确保你在分布式系统中,努力实现这些微服务的最佳实践,例如监控和REST成熟度。
使用微服务架构可以解决所有的软件架构的问题,对吗?当然,这是不对的。但是,使用微服务架构是有价值的。
Hüseyin Babal 最近发表了一个观点,即微服务架构是无法解决所有的问题的。但是,使用微服务架构是构建现代软件架构的坚实基础。在过去的许多年里,我们都知道维护单体应用而带来的挑战,所以 我们寻找一个新的选择来实现可持续,可扩展,易于集成的软件架构。以最佳实践为基础来实现微服务架构可以大幅度的改善你的软件架构。
Hüseyin 是aurea的首席软件架构师和Kloia的咨询师。他最近的演讲,微服务架构终极指南涵盖了他每天工作的大部分的经验和展现了实现微服务架构的最佳实践。
在他的演讲中,它使用Spring Boot来进行应用开发,Consul作为服务发现,Elasticsearrch 和Kibana作为监控,Docker和Jenkins作为持续交付。演讲中包含了十条最佳实践的代码示例演示。
最佳实践1 -- 尝试达到真正的REST
在意识到REST API的好处之后,我们可以查看上图的Leonard Richardson's 的成熟度模型,对于REST的使用有四个级别的定义。
级别0:使用一个端点来访问软件资源
级别1:使用相同的http方法来访问不同的资源
级别2:使用不用的http方法(例如 GET POST PUT DELETE)来访问不同的资源
级别3:API响应中拥有导航资源,这是真正的REST。
最佳实践2 -- 使用Spring HATEOAS
这个可以帮助你使用可导航的RESTful api接口。
最佳实践3 -- 使用分布式配置
通过这种方式,你不能一次性配置50不同的配置。Consul可以用来保持键/值的配置。
最佳实践4 -- 客户代码生成
Hüseyin 建议“要么使用Swagger来生成任何支持的语言的客户端代码,要么通过注解来使用Feign客户端,以及使用Ribbon进行客户端的负载均衡”。
最佳实践5 -- 持续交付
Hüseyin 使用Docker和Jenkins进行了持续交付的示例演示。
最佳实践6 -- 监控
事实上,监控无处不在。
最佳实践7 -- 日志
Hüseyin 指出大量的Docker 日志驱动。他通过使用GELF(Graylog Extended Log Format)来进行示例演示.
最佳实践8 -- APM
应用性能管理。APM通过搜集额外的详细信息来帮助你解决问题。Hüseyin 表示Zipkin是一个开源产品中的一个可选方案。
最佳实践9 -- 数据聚合到特定的客户端的API网关
最佳实践10 -- 事件订阅和CQRS(命令和查询响应分离)
一个命令可以改变一个对象的状态,但是不会返回数据。一个查询会返回数据,但是不会更改对象的状态。
你可以点击这里看到Hüseyin’s 全部的演讲。他为每一个最佳实践都提供了示例代码和解决方案的演示。
欢迎工作一到五年的Java程序员朋友们加入Java架构开发:744677563
本群提供免费的学习指导 架构资料 以及免费的解答
不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MapReduce+Docker:Archer简化Netflix媒体处理
Archer是Netflix的媒体处理引擎,底层是执行MapReduce的各种Docker,在上层跑各种算法。Archer可以检测出视频中的图像错误,字幕对关键内容的遮挡等问题。本文来自Netflix的科技博客,由LiveVideoStack摘译整理。 文 / Naveen Mareddy, Frank San Miguel, Mangala Prabhu and Olof Johansson 译 / 王月美 原文:https://medium.com/netflix-techblog/simplifying-media-innovation-at-netflix-with-archer-3f8cbb0e2bcb 想象一下,你正在开发一个快速原型,即通过电影《布莱德》的所有帧来筛选出威尔·史密斯的最佳镜头,并且需带有动感十足的背景。你的目标是以高新人度正确地获得计算机视觉算法,而不必考虑: 并行处理 云计算基础设施,如EC2实例或者Docker容器系统 超高清(UHD)视频源的位置 用于保存结果的云存储API 若过程中途失败,则重试策略 来自办公室的资产重新投资 过去,我们开发人员必须...
- 下一篇
第二篇:SpringBoot高级-整合redis作为缓存
Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 搭建Redis环境 1. 安装redis:使用Docker (使用docker中国加速 [root@localhost ~]# docker pull registry.docker-cn.com/library/redis Using default tag: latest latest: Pulling from library/redis 683abbb4ea60: Already exists 259238e792d8: Pull complete 78399601c709: Pull complete f397da474601: Pull complete c57de4edc390: Pull complete b2ea05c9d9a1: Pull complete Digest: sha256:5534b92530acc653f0721ebfa14f31bc718f68bf9070cbba25bb00bc7aacfabb Status: Downloade...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合Redis,开启缓存,提高访问速度