前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式-开启SpringBoot微服务之旅

分布式-开启SpringBoot微服务之旅

作者头像
用户2987604
发布2020-06-15 15:40:29
3350
发布2020-06-15 15:40:29
举报

分布式架构可以降低程序错误给整体系统带来的风险,也可以通过不断扩张主机的数量以实现横向水平的性能扩展,因此我们需要分布式架构。

微服务架构及容器技术

微服务这个词近几年很火,微服务架构(Microservices Architecture,MSA)是分布式架构的一种,它的产生主要依赖以下方面的内容:

  • 领域驱动设计:分析并模型化复杂业务。
  • 敏捷方法论:快速发布,形成有效反馈。
  • 持续交付:更快、可靠、频繁地部署和交付。
  • 虚拟化和基础设施自动化:Docker等容器技术简化安装部署环境。
  • DevOps:开发、测试、运维整合。

MSA把小的服务开发成单一应用的形式,每个服务运行在单独的进程中并采用轻量级的机制通信(HTTP等)。这些服务围绕业务构建,自动化部署,可以使用不同的编程语言和存储技术,并保持最小化集中管理。

如何构建微服务

ZooKeeper、Dubbo、Jersey、SpringBoot、SpringColud等都可以实现微服务。我决定围绕SpringBoot、SpringCloud展开微服务架构学习。

SpringBoot微服务架构基础

SpringBoot简化企业级应用开发地复杂性,提供很多开箱即用的Starter,通过少量代码创建一个独立的、产品级Spring应用。

我学习的步骤如下:

  • SpringBoot引入Web创建RESTful API和单元测试
  • 使用Swagger2构建API文档
  • 统一处理异常
  • SpringData JPA
  • SpringSecurity和JWT
  • 事务管理
  • 集中式缓存Redis
  • 日志系统 本地日志和MongoDB
  • 消息服务RabbitMQ
  • 邮件系统

微服务架构设计原则

  • 拆分足够微:足够小即可,不要过小。小团队两周内开发完且能够维护。
  • 轻量级通信:服务跨进程或跨主机,服务间通信采用采用轻量级通信协议,同步的REST(HTTP:XML/JSON),异步的AMQP、MQTT、STOMP。
  • 领域驱动原则:基于领域驱动设计(Domain-Driven Design,DDD)开发一个微服务,一个服务反应某个业务的领域模型,理清领域边界逻辑和上下文边界。
  • 单一职责原则:高内聚,低耦合。密切相关的多个功能应尽量包含在同一个服务中以降低服务间的干扰;通过接口(API、事件)进行通信以降低对其它服务的依赖。
  • DevOps及两个披萨:开发人员具备用户界面、业务逻辑、持久化存储、独立运维的全栈能力,降低沟通成本,防止项目陷入停顿。人数不多过两个披萨不够吃。
  • 不限于技术栈:根据场景(计算密集型[CPU/内存]、非结构化存储[NoSQL])进行技术选型,但不滥用技术,以安全稳定的Java等为主。
  • 可独立部署:微服务独立部署使得开发者不再需要协调其它服务部署对本服务的影响;Docker容器技术使得服务能够在构建镜像中所期望的环境中运行。

参考

http://blog.didispace.com/spring-boot-learning-1x/

《SpringCloud微服务架构 杨伟卫著》第1章 微服务概述

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 董亮亮的开发笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 微服务架构及容器技术
    • 如何构建微服务
    • SpringBoot微服务架构基础
    • 微服务架构设计原则
    • 参考
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档