首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring-cloud构建微服务架构

spring-cloud构建微服务架构

作者头像
MasterVin
发布2018-08-30 10:19:06
4240
发布2018-08-30 10:19:06
举报

文|作者|文大师 /本文属原创,转载请联系

因为工作原因,无暇更新,最近更新的技术文章还要追溯到去年9月份,近期会恢复更新,还是以spring系列为主,上一次讲述了spring-security-oauth2的相关应用,简单定制适合中小项目,最近正在学习spring-cloud微服务架构,遂决定记录在此以作学习交流之用。

随着项目规模扩大以及业务分化,模块服务化成为必然,spring.io因为具备良好的生态结构,微服务架构spring-cloud应运而生,微服务通常伴随着分布式系统的建立,至于微服务的各种利弊,这里就不再赘述了,自请搜索各大社群查看。这里主要讲我自己的看法,国内一般都是使用Dubbo+ZooKeeper实现分布式系统,但个人拙见,RPC协议不可避免的代码层面的耦合度问题让我始终没有好感,REST Full的微服务模式对于国内多变的业务和各种变态的产品需求变更显得更加亲民,故在此选择spring-cloud构建微服务框架,本章属完全理论知识概括,无实际内容,已了解的同学可直接略过。

无论是Dubbo或是别的分布式框架,理论上的框架结构都是相似的,区别仅在于各实现不同而已,一个好的架构体系应该是考虑实际业务选用不同的实现来最终满足产品业务的需要,先来看看分布式一般应该具备的基础服务:

基础服务

以上是我认为的最小基础服务,本系列文章也将围绕这些基础服务构建一个微服务基础架构,至于其他理论知识点都不在本系列文章讨论,只关注实用性,代码本身也尽量不涉及逻辑业务,目标是最后集成Docker做到开箱即用,因为本人也是初学,代码可能数次更新,照惯例每次更新都会有一篇文章介绍,代码会打上tag发布到https://github.com/kaenry,错误与改进希望大家指正。

先说说目前已看到的缺点

  • spring生态虽然看似完整,但是属于严格的Java体系,与其他语言配合会非常吃力,再者现在稍微大点的项目都会集成很多不同语言环境,比如最近风靡的NodeJS等,这是可以预见的最大缺陷
  • 分布式事务是一个非常棘手的问题,在本次实战中将采用分化服务,将事务控制在单一服务中从设计上避开此问题,感兴趣的同学可搜索幂等性了解更多
  • 部署可能成为难点

技术选型暂定为Gradle多模块构建项目,jdk 1.8编译环境,spring boot 1.5+spring cloud Dalston.RELEASEDAO层目前在JPAMyBatis之间徘徊,服务之间调用采用REST,工具利用RestTemplate,前端页面采用Vue 2,可能会使用SSR Nuxt,缓存使用Redis,队列使用Rabbit,模拟使用GitHub API...

/ 以上

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档