这是一套 Spring Boot 的快速入门培训教程,面向的学员是有一定的 Java 基础,会一些 Spring 传统开发技能(SSM)的初中级 Java 开发工程师。
其目的是通过2-3个月的时间,每周完成1章节的教程学习(可能需要在一个学习小组内,通过辅导教员引导),达到能够应用 Spring Boot 进行开发的程度,向中级开发工程师进阶,进而打好后续学习 Spring Cloud 的基础。
虽然本教程提供了一个极简的 vue 入门学习章节,其目的只是用来演示如何开发“前后端分离”的应用,但是本教程并不会将前端开发作为重点。相反,在这里,我们只关心应用后端如何使用 Spring Boot 进行开发。
本教程规划于2019年春,动笔于2019年10月30日,希望完结于2019年12月31日,实际完结于2020年2月7日,历时101天,我也坚持连续写作101天。
任何时候出发,都不晚,相信我,风景总是在路上。
--Kevin Zhang
本教程使用的 Spring Boot 版本为2.2.1-2.2.4;
写作过程中,Spring Boot 从2.2.1持续升级到了2.2.4,可见 Spring Boot 社区的活跃。
本教程的每一章节,尽量聚焦在当前讨论的知识点范围内,示例也设计为最简;
本教程不涉及 Spring Boot 的深层次实现机制和如何扩展 Spring Boot 框架;
已经能够熟练使用 Spring Boot 进行开发的同学,请绕道,这份教程不适用于你。
其目的是通过2-3个月的时间,每周完成1章节的教程学习(可能需要在一个学习小组内,通过辅导教员引导),达到能够应用 Spring Boot 进行开发的程度,向中级开发工程师进阶,进而打好后续学习 Spring Cloud 的基础。
虽然本教程提供了一个极简的 vue 入门学习章节,其目的只是用来演示如何开发“前后端分离”的应用,但是本教程并不会将前端开发作为重点。相反,在这里,我们只关心应用后端如何使用 Spring Boot 进行开发。
本教程规划于2019年春,动笔于2019年10月30日,希望完结于2019年12月31日,实际完结于2020年2月7日,历时101天,我也坚持连续写作101天。
任何时候出发,都不晚,相信我,风景总是在路上。
--Kevin Zhang
本教程使用的 Spring Boot 版本为2.2.1-2.2.4;
写作过程中,Spring Boot 从2.2.1持续升级到了2.2.4,可见 Spring Boot 社区的活跃。
本教程的每一章节,尽量聚焦在当前讨论的知识点范围内,示例也设计为最简;
本教程不涉及 Spring Boot 的深层次实现机制和如何扩展 Spring Boot 框架;
已经能够熟练使用 Spring Boot 进行开发的同学,请绕道,这份教程不适用于你。
2021年11月03日
2021年11月03日 Redis 官方不支持 Windows,所以,这一小节我们以 macOS 操作系统为例,来搭建 Redis 集群,Linux(如CentOS)下的集群搭建步骤和 macOS 相同。
2021年11月03日 在正常情况下,用户访问一个无状态的 http 请求,服务器为了记住这个用户,会在服务器端启动(这个session第一次访问服务器)/加载一个 session,并通过 session id 来保持用户端和服务器端的“状态”,比如该用户是否已经登录,是否已经分配了对应的角色,是否具有操作某些资源(菜单)的权限等。
2021年11月03日 Spring Boot 为集成 Redis 提供了方便的启动器(Starter),在 Spring Boot 的自动配置中我们可以看到是通过 RedisCacheConfiguration 来进行配置的。
2021年11月03日 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以结合数据库、消息中间件来使用。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs 和地理空间(geospatial)索引半径查询。 Redis 内置了复制(replication),LUA脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过 Redis 哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)。正是因为上述特性,在企业环境中,Redis 被大量使用。
微服务是继SOA后,最流行的服务架构风格之一。
按照微服务对系统进行拆分后,每个服务的业务逻辑都更加简单、清晰。服务之间是松耦合的,模块之间的边界也更加清晰。
微服务有效降低了软件项目的业务复杂程度,为小团队独立开发、持续交付和部署打下了良好的基础。
遗憾的是,微服务并不是银弹。与传统的单一架构相比,微服务架构对团队的组织架构、技术水平、运维能力等方面,都提出了更高的要求。如果没有掌握得当的方法而生搬硬套,微服务架构只会会适得其反--降低项目的开发效率,这是本书的创作初衷之一。
在国内外的技术社区中,比较推崇现有开源方案,如"Spring Cloud全家桶"或者阿里开源的"Dubbo"。上述框架通常已经实现了服务发现、配置、负载均衡、限流熔断,等微服务架构所必须的的核心功能。
使用开源框架省却了造轮子的过程,但也降低了我们学习、思考的欲望。
为什么需要服务发现,又如何实现它呢?配置中心呢....思考和设计的过程充满了挑战,也是提升自身架构能力的一种手段。这是本书的创作初衷之二。
已有的微服务资料过于重视微服务的开发,忽略了微服务赖以生存的生态系统:工具链、自动化运维。可以说,离开了这两点的支持,微服务架构将难以落地。完善这两方面的思考和实战,是本书的创作初衷之三。
为此,我撰写了这本《从0到1实战微服务架构》。让我们"暂时忘掉"已有的、成熟的开源解决方案。尝试亲自动手,实现微服务架构的各个模块。
我们会从微服务开发、工具链、运维这三个角度,阐述微服务架构的实战方案。
由于篇幅、精力所限,本书无法写成一本”零起点”教程。我假设读者具有至少2年的服务端工作经验,并且了解以下技术或原理:
Git
Maven & Gradle
Docker & k8s
Java
Spring / Spring Boot
数据库: 如MySQL
消息队列: 如RabbitMQ
缓存系统: 如Memcached
内存数据库: 如Redis
本书可以供架构师、项目经理、高级服务端程序员参考、学习。
动手实战是本书的核心内容,因此本书所涉及的全部代码,都托管到了我的Github上(以lmsia-开头的项目)。
这些代码以研讨为主要目的,也可以直接应用于生产,但本人不对其稳定性负责。
按照微服务对系统进行拆分后,每个服务的业务逻辑都更加简单、清晰。服务之间是松耦合的,模块之间的边界也更加清晰。
微服务有效降低了软件项目的业务复杂程度,为小团队独立开发、持续交付和部署打下了良好的基础。
遗憾的是,微服务并不是银弹。与传统的单一架构相比,微服务架构对团队的组织架构、技术水平、运维能力等方面,都提出了更高的要求。如果没有掌握得当的方法而生搬硬套,微服务架构只会会适得其反--降低项目的开发效率,这是本书的创作初衷之一。
在国内外的技术社区中,比较推崇现有开源方案,如"Spring Cloud全家桶"或者阿里开源的"Dubbo"。上述框架通常已经实现了服务发现、配置、负载均衡、限流熔断,等微服务架构所必须的的核心功能。
使用开源框架省却了造轮子的过程,但也降低了我们学习、思考的欲望。
为什么需要服务发现,又如何实现它呢?配置中心呢....思考和设计的过程充满了挑战,也是提升自身架构能力的一种手段。这是本书的创作初衷之二。
已有的微服务资料过于重视微服务的开发,忽略了微服务赖以生存的生态系统:工具链、自动化运维。可以说,离开了这两点的支持,微服务架构将难以落地。完善这两方面的思考和实战,是本书的创作初衷之三。
为此,我撰写了这本《从0到1实战微服务架构》。让我们"暂时忘掉"已有的、成熟的开源解决方案。尝试亲自动手,实现微服务架构的各个模块。
我们会从微服务开发、工具链、运维这三个角度,阐述微服务架构的实战方案。
由于篇幅、精力所限,本书无法写成一本”零起点”教程。我假设读者具有至少2年的服务端工作经验,并且了解以下技术或原理:
Git
Maven & Gradle
Docker & k8s
Java
Spring / Spring Boot
数据库: 如MySQL
消息队列: 如RabbitMQ
缓存系统: 如Memcached
内存数据库: 如Redis
本书可以供架构师、项目经理、高级服务端程序员参考、学习。
动手实战是本书的核心内容,因此本书所涉及的全部代码,都托管到了我的Github上(以lmsia-开头的项目)。
这些代码以研讨为主要目的,也可以直接应用于生产,但本人不对其稳定性负责。
2021年11月02日 在上一章中,我们讨论了Redis服务的运维,包括单机运行和Sentinel运行。
在本小节中,我们讨论如何在Spring Boot中集成Redis。
Spring Boot内置了Redis的接入方式,spring-data-redis,这种方案在Jedis客户端的基础上尽心过了简单的封装。若只使用Redis的KV存储特性,该方案可以满足要求。但对于Redis的高级特性(如SortedSet、SETNX等),则需要手动调用底层Jedis客户端的API,使用方式较为晦涩且容易出错。
为此,我们推荐使用Redisson作为接入客户端,它提供了简单易用的封装,可以用最小的编程代价来发挥Redis的最大功能。
在本小节中,我们讨论如何在Spring Boot中集成Redis。
Spring Boot内置了Redis的接入方式,spring-data-redis,这种方案在Jedis客户端的基础上尽心过了简单的封装。若只使用Redis的KV存储特性,该方案可以满足要求。但对于Redis的高级特性(如SortedSet、SETNX等),则需要手动调用底层Jedis客户端的API,使用方式较为晦涩且容易出错。
为此,我们推荐使用Redisson作为接入客户端,它提供了简单易用的封装,可以用最小的编程代价来发挥Redis的最大功能。
2021年11月02日 作为纯内存缓存,Memcached拥有非常出色的读写性能,但也存在一个较为严重的缺点:无法持久化。
这意味着,一旦Memcached服务重启(更常见的是掉电),之前所有的缓存就会丢失。若线上的流量很大,这种重启很容易诱发"缓存雪崩",从而导致系统故障。
Redis的出现很好的解决了这个问题,它是一款高性能的内存的数据库,既不仅数据的支持持久化、也内置了许多数据结构,方便实现各种需求。在一些场景下1,可以直接用Redis取代Memcached + MySQL的组合。
本节将讨论Redis运维相关的问题。
这意味着,一旦Memcached服务重启(更常见的是掉电),之前所有的缓存就会丢失。若线上的流量很大,这种重启很容易诱发"缓存雪崩",从而导致系统故障。
Redis的出现很好的解决了这个问题,它是一款高性能的内存的数据库,既不仅数据的支持持久化、也内置了许多数据结构,方便实现各种需求。在一些场景下1,可以直接用Redis取代Memcached + MySQL的组合。
本节将讨论Redis运维相关的问题。
如何基于K8S(Kubernetes)部署成PaaS/DevOps(一套完整的软件研发和部署平台)——教程/学习(实战代码/欢迎讨论/大量注释/操作配图),你将习得部署如:K8S(Kubernetes)、dashboard、Harbor、Jenkins、本地gitlab、Apollo框架、promtheus、grafana、spinnaker等。
注释及配图覆盖率达80%以上,旨在帮助快速入门。
并将告诉你:是什么(WHAT)、为什么这么做(WHY)、怎么做(HOW)。
建议学习时长1个月+,最终将实现点点点(自动化)的形式就能部署上线并维护。
注释及配图覆盖率达80%以上,旨在帮助快速入门。
并将告诉你:是什么(WHAT)、为什么这么做(WHY)、怎么做(HOW)。
建议学习时长1个月+,最终将实现点点点(自动化)的形式就能部署上线并维护。
2021年12月15日
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
作者:elim
博客:https://www.iteye.com/blog/user/elim
作者:elim
博客:https://www.iteye.com/blog/user/elim
2021年12月03日
本书提供 spring、spring-boot、spring-cloud 的常用整合用例。每个用例都提供详细的图文说明,并给出官方文档的具体链接作为参考。随着 spring 的迭代,本仓库会持续更新,升级版本和丰富用例。
版本说明:
spring: 5.1.3.RELEASE
spring-boot:2.1.1.RELEASE
spring-cloud:Finchley.SR2
版本说明:
spring: 5.1.3.RELEASE
spring-boot:2.1.1.RELEASE
spring-cloud:Finchley.SR2
2021年12月11日
2021年12月11日
2021年12月11日
一个处于萌芽阶段的知识库,用于持续分享自己的所见、所学、所思!
作者:heibaiying
博客:https://blog.csdn.net/m0_37809146
作者:heibaiying
博客:https://blog.csdn.net/m0_37809146
2021年12月07日
2021年12月07日
2021年12月07日 复制机制、哨兵模式架构说明、哨兵模式搭建
2021年12月07日 数据分区、节点通信、请求路由、故障发现与恢复、集群扩容与缩容
2021年12月07日 分布式锁原理、单机模式下的分布式锁、集群模式下的分布式锁、RedLock 原理、Redisson
2021年12月07日
前一页
后一页