SpringCloud学习(二):微服务入门实战项目搭建淼淼之森

SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具集(全家桶)。

SpringCloud拥有SpringBoot的特点。

大部分spring软件的版本是以:主版本.次版本.增量版本.里程碑版本的形式命名。

SpringCloudAngelSR6

Angel是SpringCloud的一个大版本,ServiceRelease6版本,标识一个bug修复的版本。

1)、约定优于配置

2)、开箱即用、快速启动

3)、适用于各种环境(PCServer、云环境、Subtopic、容器Docker)

4)、轻量级的组件(如服务发现中整合的Eureka)

5)、组件支持很丰富、功能很齐全(如提供配置中心、注册中心、智能路由…)

6)、选型中立(服务发现中使用Eureka、Zookeeper、Consul等都可以)

1、java(scala、Groovy…均可)

2、构建工具

1)、Maven

2)、Gradle

将maven项目转换成gradle项目:(在pom文件的上一级目录执行如下命令,使用cmd操作)

gradleinit--typepom

1、原则:使用最新的版本进行讲解

2、JDK1.8

3、Maven3.3.9

4、IDE(SpringToolSuite3.8.2、IDEA、Eclipse)

5、SpringBoot

6、SpringCloudCamdenSR1

建议:大家学习时,尽量使用相同的版本进行选择,避免采坑

SpringCloud学习(二):开始使用SpringCloud实战微服务

创建存在调用关系的微服务,调用关系如下

服务消费者:服务的调用方,调用别的微服务的微服务(即:依赖其他服务的服务)

服务提供者:服务的被调用方,提供API的微服务(即:为其他服务提供服务的服务)

填写信息:

(1)、将生成的maven工程导入eclipse

然后一次创建如下选中的类和配置文件。

(2)、data.sql和schema.sql

1server:2#服务器端口号3port:69004spring:5jpa:6#是否生成ddl语句7generate-ddl:false8#是否打印sql语句9show-sql:true10hibernate:11#自动生成ddl,由于指定了具体的ddl,此处设置为none12ddl-auto:none13datasource:14#使用H2数据库15platform:h216#指定生成数据库的schema文件位置17schema:classpath:schema.sql18#指定插入数据库语句的脚本位置19data:classpath:data.sql2021#配置日志打印信息22logging:23level:24root:INFO25org.hibernate:INFO26org.hibernate.type.descriptor.sql.BasicBinder:TRACE27org.hibernate.type.descriptor.sql.BasicExtractor:TRACE28com.itmuch:DEBUGschema.sql(4)、创建UserController

(7)、执行MicroserviceSimpleProviderUserApplication类,然后进行访问测试

(2)、配置文件application.yml

server:port:6901(3)、创建GoodsController

其中11-16行表示注入的Bean

1packagecom.mmzs.cloud;23importorg.springframework.boot.SpringApplication;4importorg.springframework.boot.autoconfigure.SpringBootApplication;5importorg.springframework.context.annotation.Bean;6importorg.springframework.web.client.RestTemplate;78@SpringBootApplication9publicclassMicroserviceSimpleConsumerGoodsApplication{1011@Bean12publicRestTemplaterestTemplate(){13returnnewRestTemplate();14}15//12、13、14、行相当于16行16//privateRestTemplaterestTemplate=newRestTemplate();1718publicstaticvoidmain(String[]args){19SpringApplication.run(MicroserviceSimpleConsumerGoodsApplication.class,args);20}21}MicroserviceSimpleConsumerGoodsApplication(5)、执行MicroserviceSimpleConsumerGoodsApplication类,然后进行访问测试

主要优化的点是在GoodsController类中的硬编码部分。简单优化如下:

@RestControllerpublicclassGoodsController{@AutowiredprivateRestTemplaterestTemplate;//优化部分@Value("${user.userServicePath}")privateStringuserServicePath;//优化后此处的硬编码字符串,修改为变量获取@GetMapping("/goods/{id}")publicUserfindById(@PathVariableLongid){//采用了硬编码注册user服务returnthis.restTemplate.getForObject(this.userServicePath+id,User.class);}}这样子的话,userServicePath的具体值需要通过配置文件application.yml来配置,故application.yml文件修改为:

THE END
1.微服务架构的设计模式?(Java微服务架构如何设计模式)在当今的软件开发领域,微服务架构已经成为了一种主流的架构模式。而设计模式作为软件开发中的重要概念,对于构建高效、可维护的 Java 微服务架构起着关键的作用。本文将详细介绍 Java 微服务架构中如何设计模式,帮助读者更好地理解和应用这一技术。 二、设计模式的重要性 https://www.528045.com/article/ag3rokriar.html
2.Java编程基础教程:Java微服务架构java微服务架构的软件开发Java编程基础教程:Java微服务架构 本文介绍了微服务架构的核心概念,包括服务、边界上下文、API Gateway、服务注册中心等,并详细阐述了如何使用Spring Cloud搭建微服务系统,包括Eureka服务注册与发现、Zipkin分布式追踪、Ribbon负载均衡和Hystrix容错管理。通过实例展示了如何启动和测试微服务,以及使用Zipkin进行服务调用追踪。https://blog.csdn.net/universsky2015/article/details/134390649
3.Java微服务入门教程:从零开始搭建你的第一个微服务本文介绍了Java微服务的开发环境搭建,包括Spring Boot和Spring Cloud的使用,以及如何通过REST API进行服务间通信。文章还详细讲解了服务发现、配置管理和监控,帮助开发者快速理解和实践微服务架构。 微服务简介 微服务的概念 微服务是一种架构风格,它将一个大系统拆分为多个小服务,每个小服务独立运行并且互相协作,提供整个系https://www.imooc.com/article/365652
4.Java微服务架构中的关键技术和设计原则解读javaJava被广泛应用于各种领域,包括桌面应用程序、移动应用程序(尤其是Android)、Web应用程序、企业级应用程序、云计算和物联网(IoT)。由于其稳定性、安全性和跨平台特性,Java仍然是最受欢迎的编程语言之一。 二、什么是微服务 微服务(Microservices)是一种软件开发架构风格,它将一个大型应用程序分解为一组小型、独立的服务https://www.jb51.net/program/330022kqh.htm
5.丰富的Java资源学习整理!SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,史上最全面的springcloud微服务技术栈课程|Java微服务 2.分布式开发框架Dubbo 学完这套课程后,可以应对企业级分布式项目中Dubbo的使用,并可以解决服务超时、重试、服务降级、集群容错等问题。 Dubbo快速入门,Java分布式框架必会的dubbo教程 http://54xdj.com/BlogsHome/Detail?id=848
6.Java开发全栈知识体系架构学习(服务器微服务数据库思维导2021年从入门到精通java开发全栈知识体系架构学习总结知识脑图(学习使用于项目实战)前端、后台、服务器、Linux、性能优化、集群搭建、微服务、大数据、项目实战等内容 Java JVM sql优化 springMVC spring cloud 作者其他创作 大纲/内容一、前端技术篇 1、基础知识篇 HTML CSS 去除a标签默认样式 分支主题 https://www.processon.com/view/60504b5ff346fb348a93b4fa
7.微服务全生命周期稳定性实践(二)学习笔记简介:快速学习微服务全生命周期稳定性实践。 开发者学堂课程【微服务全生命周期稳定性实践 :微服务全生命周期稳定性实践(二)】学习笔记,与课程紧密联系,让用户快速学习知识。 课程地址:https://developer.aliyun.com/learning/course/1205/detail/18172 微服务全生命周期稳定性实践 https://developer.aliyun.com/article/1121633
8.史上最强Java学习路线图(6大必学阶段)–mikechenJava学习路线的第一阶段,我认为需要打好坚实的基础。 1.编程基础 常量与变量 数据类型 运算符 流程控制语句 方法 数组 2.面向对象 继承 多态 重写(Override) 重载(Overload) 封装 接口 java包 package 3.泛型(Generic ) 泛型的使用场景 泛型类型 泛型方法 https://youzhixueyuan.com/java-programmers-learn-route.html
9.SpringCloud学习笔记:SpringCloud代码Demo集,内含2w字技术栈导学核心代码位置:在模块 dubbo+zookeeper 下这部分是跟狂神说Java学习的(黑马版直接跳过了这两个技术),Zookeeper与Eureka 、Nacos一样也是一种注册中心。 三、微服务远程调用Demo——RestTemplate基本使用 核心代码位置:在模块 01-cloud-demo 下的order-service 和 user-service https://gitee.com/tuobataotian/spring-cloud-learning-notes
10.GitHub【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。. Contribute to weyuhui110/JavaGuide development by creating an account on GitHub.https://github.com/weyuhui110/JavaGuide
11.意外收获!阿里技术官私库中的Spring全家桶小册,源码实战都有一线大厂的带动,让微服务成为了Java程序员面试的必备考点。其中是否具有 Spring Cloud 技术能力的程序员,也是企业招聘中影响薪资的核心要素之一。在这特地分享这套Spring Cloud微服务学习笔记给小伙伴们! 主要内容分四个大模块: 第一部分:微服务架构之服务注册Eureka与服务调用Ribbon篇https://maimai.cn/article/detail?fid=1739412289&efid=anoYQx3atkB1RNmzTxgL3A
12.48套Java架构师/高并发/微服务/分布式/源码分析/设计模式/业务第46套:资深CTO&架构师讲Java亿级项目架构设计与落地应用-需求分析+高层架构设计+系统架构设计+架构落地课程 第47套:MY-Java架构师精英学习实战营-微服务 分布式 高并发 性能优化 企业架构 源码分析 运维部署 项目实战 设计框架 第48套:狂野架构师-Java架构师起步篇+进阶篇+深入篇+云原生篇+架构百宝箱篇+源码分析https://www.soft1188.com/javajg/6787.html
13.Java学习全攻略:从入门到精通的详细路线Spring、Hibernate、MyBatis:学习流行的Java框架,利用这些框架简化开发流程,提高开发效率。 推荐学习资源: 《Spring揭秘》深入理解Spring框架的实现原理。 实战项目,如使用Spring Boot搭建微服务架构,体验现代Java开发模式。 六、项目实战与持续学习 6. 通过项目实战巩固知识 https://www.jianshu.com/p/7d258aa8ee01
14.3个主流Java微服务框架腾讯云开发者社区从学习、开发,到部署运行,都这么便捷,想不火都难。 官网地址: https://spring.io 2. Dropwizard Dropwizard 是一个开源的 RESTful 快速开发框架,对微服务的开发也极其友好,而且性能很强。 Dropwizard 也是打成 Jar 运行,SpringBoot 默认集成的是 Tomcat,Dropwizard 集成的是 Jetty。 https://cloud.tencent.com/developer/article/1823718
15.Java面试中涉及微服务框架的面试题(附答案)上面的10道题是今天为大家整理的Java微服务框架的相关面试题。如果你想学习更多的相关内容,你可以观看Java微服务培训课程,能够更深入地理解今天的话题,更好地提高自己Java专业水平。https://www.tulingxueyuan.cn/tlzx/jsp/1434.html
16.本脚手架,侧重于开发。侧重于基础。侧重于学习。可以基于此Crazy-SpringCloud 微服务脚手架 &视频介绍: Crazy-SpringCloud 微服务脚手架,是为 Java 微服务开发 入门者 准备的 学习和开发脚手架。并配有一系列的使用教程和视频,大致如下: 高并发 环境搭建图文教程和演示视频,陆续上线: Crazy-SpringCloud 微服务脚手架图文教程和演示视频,陆续上线: https://toscode.mulanos.cn/crazymaker/crazy-springcloud
17.SpringCloud学习篇1Rest学习环境搭建:服务消费者 一、微服务架构 首先理解什么是分布式、什么是集群、和微服务有什么区别? 参考:大白话解说,半分钟就懂 — 分布式与集群是什么 ? 区别是什么? 先举一个小栗子:去饭店吃饭就是一个完整的业务,饭店的厨师、配菜师、传菜员、服务员就是分布式;厨师、配菜师、传菜员和服务员都不止一个人https://blog.51cto.com/u_15790456/6569695