微服务开发实战(spring

Wesley13
• 阅读 571

平日里,都是看别人的文章,虽开公众号写了不少,但像样的不多。年末了,年终总结也没来得及写,为了输出点像样的东西,立刻就着手这个系列。一个键一个字母的敲,边敲边写,文章还在持续更新中,直至完整。相信通过这个系列的系统练习,能有一个大跨步的提升。

专栏简介(是什么?)

结合SpringCloud、SpringCloudAlibaba、Dubbo等开源套件,基于某商场停车业务需求,进行微服务开发实战,力争通过一个案例的实操,掌握微服务架构中常用的技能点,轻松入门。

为什么要写这个专栏(为什么?)

微服务近两年的火热,也将很多公司的架构慢慢转向微服务,但要直接上手微服务,还需要能过实操演练,不断提升,才能在工作中游刃有余。

网络上相关资源很多,但大多散乱无章,不成体系,不利于系统性掌握,无法一步步的深入其中,更不能深刻掌握各个组件在项目中实际融合情况。

虽然也有一些案例,但缺少相关的文档细节描述,对初学者而言,仅靠阅读代码,难免会一知半解。于是,我就琢磨写一个贴合实际场景的小例子,业务无须很复杂,能将这一套技术体系串连起来,自己可以跟着动手实操,通过一步一步的上手,加深对技术栈的理解。

通过本专栏要达成什么目标(到哪里去?)

本专栏将带你完整性的实施一个项目,从需求整理、分析设计、存储设计、关键业务流程设计、编码、测试(单元测试,系统测试)、部署上线、日常监控维护等等。

时下采用敏捷研发模式做产品已经不是什么新鲜事,本专栏中也会适当融入一些敏捷方法,进行团队协作演练。程序员同学普遍比较关注硬技能的提升,所以掌握关键技能很重要。同时,软技能也要随着硬技能的提升,同样得到锻炼升华,比较团队协作能力、沟通理解能力、解决问题能力、领导管理能力等等。

本专栏实战案例涉及到的技术栈

做Java,绕不开Spring。用Java做微服务开发,也绕不开Spring Cloud。但随着Dubbo的重启,并交给Apache开源社区维护后,Dubbo生态越来越完善。虽然拿Spring Cloud与Dubbo作比较不合适,但不少朋友在技术选型时会纠结选择Dubbo还是Spring Cloud,spring-cloud-alibaba的出现,将Dubbo生态完美的与Spring Cloud生态融合在一起。你不用再纠结选择Dubbo还是Spring Cloud,两者可以兼容的很好。

下面罗列下可能会使用到的技术栈:

  • 反向代理:nginx,可做动静分离部署
  • 统一网关:基于spring-cloud-gateway,配合JWT进行的简单的验权操作
  • 分布式事务:Seata,阿里内部分布式事务产品不断迭代演进而来。
  • 降级、限流:hysrix/Sentinel
  • 服务管理:Nacos
  • 分布式配置中心:Nacos
  • 客户端负载均衡:openFeign
  • 异步消息:RocketMQ,阿里开源,交由Apache孵化
  • 链路跟踪:Skywalking,华为开源,交由Apache孵化
  • 分布式缓存:Redis
  • 健康监控:spring-boot-admin
  • 分布式锁:Redission
  • 代码简化:Lambok,mybatis-plus,mybatis-generator
  • RPC框架:apache dubbo

实操项目中也会涉及到一些小组件、小技巧,更加贴近商业项目开发实战,一同动手行动起来吧,微服务架构并不深奥,你可以掌握的更好。

专栏适宜人群

程序员、初级架构师、IT从业者、项目管理人员、IT管理人员、产品经理、业务架构师

微服务开发实战(spring

链接地址:https://xiaozhuanlan.com/msa-practice

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这