开发订单微服务与注册调用|学习笔记(二)

简介: 快速学习开发订单微服务与注册调用

开发者学堂课程【5天突破 Spring Cloud开发订单微服务与注册调用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/781/detail/13701


开发订单微服务与注册调用


2、把 Spring Cloud 微服务 API 发布到注册中心image.png配置文件参数的好处在于配置完以后能否告诉服务器地址。其他一些控制参数严格来说如果写入原始Java代码后可以继续配置,但这种注册方式是标准化的,加进的依赖会自动扩展这些代码并读取参数,然后去实现服务接口信息的争议。注入中心提供的客服依赖就是帮助进行改造升级的。

3、注册中心查看微服务信息

我们用之前的项目进行改造,也可以完全从头开始写入。

image.png先写入一个订单接口,订单接口可以返回一个订单对象,订单类型完成实例化对象并可以赋值,正式项目可能有几十个赋值内容,比如金额、订单备注、手机号、邮箱等信息。

新建一个JavaSpringClood02OrderServiceDemo订单服务,加入开发工具,方便调试。

image.png

把连数据库加入后,还缺少Eureka,Spring Cloud现在已经是一个大平台、一个生态体系了,最早它只是一个工具类库。

添加引用完以后进行下一步骤,因为第一个项目创建需要的时间比较长,第二个项目就不需要很久了,向里面注册可以照着订单来完成,订单类可以自己进行写入,然后加上order类就可以了。下面进行配置,配置也可以通过快捷键复制粘贴完成并进行修改,代码为:

spring .application. Name=Orderserviceserver

Service.port-8001eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka

控制注册中心的参数

eureka.client.fetch-registry-false

eureka.client .register-with-eureka=true

OrderService表示订单的微服务,本机测试两个程序的端口不能重复,eureka.client .register-with-eureka=true,表示向注册中心注册,需要打开;而eureka.client.fetch-registry-false参数需要关闭,true是一个布尔值,表示真假值中的真,注释时如果出现乱码是因为格式不正确,右键更改属性。

微服务用的端口是8001,启动后返回订单,注入中心加入的是eureka的server,应用的是其客户端,客户端完成和注册中心联系的工作。

启动之前需要先把注册中心写好,注册中心的程序运行好之后再运行订单的微服务,具体代码为:

@SpringBootApplication

public class JavaSpringcloudo20rderServiceDemoApplication {

public static void main(String[] args){SpringApplication.run(JavaSpringCloud020rderServiceDemoApplication.class}

刷新后可以看到相比于之前多了服务层,显示目前有多少人注册了,再次点击刷新后观察注册中心,本机地址后有订单服务,其中status中的up表示程序正在运行,服务名称全部大写并且要具有意义,可以体现出评论、order订单、user用户、快递、配置、支付等微服务,需要注意的是服务名称不要重复,重复容易冲突,服务名称是作为唯一标识出现的。

微服务运行起来后,进行集群的模拟,现在只有一台服务器但是可以模拟两台,如果将微服务稍作改动,例如修改包名改为Model,demo控制器可以改为API,即我们所讲的接口,package com.alibaba是这个是启动程序所在的目录,简单来说可以将目录缩短一级,后续要进行反射、注入等一系列操作。

显示红线不需要慌张,找出问题所在即可,轻触红线显示import,表示需要导入某个包的类。

基本结构已经搭建完毕,后续可以根据需要添加其他类型,比如有接口后可以增添业务逻辑业务,为大家进行简单的演示,Java中业务逻辑层叫做service它的名称可以任意取,主要目的是给大家模拟几个包,数据访问层是访问数据库的,用户逻辑层是补充逻辑的,API层是对外的接口,供客户端像APP、H5网页小程序用。

注入中心中有两个订单服务,这两个服务的代码完全一模一样,唯一不一样的地方在于为了方便在同一台机器调试,第一个服务的端口是8001,第二个端口改成8002,有两台服务器不更改端口也可以,即两台服务器上的端口都是8001。

重新启动一下注册中心刷新查看,对服务器的数量没有限制,现在是为了给大家演示同一台机器上模拟两台服务接口的集群。

image.png刷新页面重新启动后信息丢失,刚刚显示的一台服务不在了,重新启动一遍,将服务一运行起来,大家可以进行扩展,把简单的订单服务和买家数据连接,让其可以从MySQL数据库里实现简单的订单查询等功能,真正和MySQL数据库进行对接,整个项目可以不断的优化。

刷新后显示微服务一已经启动了,我们可以再启动一台,微服务二其实跟他是一样的,因为服务名都是订单,所以再次运行时理论上不会报错,注册过程是一样的,再刷新页面后列表里有两台服务,分别是8001和8002对两台机器,且运行状态正常,显示为up。

得出结论是同一个订单服务可以有两台,也可以有三台,甚至是300台都可以,大型互联网公司、电商平台里面,一旦用户数量增多,机器需要立刻增加,从前期的两台可能变成200台甚至2000台。

这些互联网公司内部有很多孵化项目,抖音用户目前达到了几亿,他的服务器逐渐趋于庞大,其他公司早期也有一些程序的功能并不完善,最终没有延续,像快闪,后期并不会继续投入更多的服务器数量,因为使用感不强,用户数量也不多,但是不排除前期分配10台或者100台服务器,如果后期真正被广泛应用,用户达到了微信的级别10亿级别,他的服务器数量也有可能达到上万台。整个技术是慢慢扩充的,实现弹性扩充,哪种服务的压力大,就给哪个服务增加服务器。

在上述所讲的基础上可以对微服务进行改造,链接上MySQL数据库,不仅仅实现订单的简单查询。

 

三、结语

接下来的课程会讲调用,调用技术提供了方便,可以和注入中心相联系,寻找正常的服务并完成调用,调用的底层实际应用的是去重对象,后面还会讲解一些底层优化的技巧,大家可以提前思考一下。了解作为客户端进行注册时几个重要的底层源码,知道他们完成的工作的原理。

思考题

设计改造微服务链接MySQL;查看源码,如何注册微服务到Eureka的,即如何将微服务注册进去的,注册的一简单信息是服务地址、服务的名字、服务的状态是否正常、服务接口接入了什么参数,源码的了解仅作为一个提升点。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
463 5
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
731 0
|
人工智能 数据可视化 JavaScript
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
Juggle是国内首个开源的微服务编排框架,专注于解决企业微服务进程中接口重复开发、系统对接复杂等问题。它提供零代码、低代码和AI增强功能,通过可视化拖拽快速组装简单API为复杂接口,支持多协议、多语言脚本和流程多版本管理。相比国外框架如Conductor,Juggle更贴合国内需求,具备高效开发、企业级可靠性及信创适配等优势,助力企业实现敏捷创新与数字化转型。
1161 0
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
1269 0
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
938 6
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
492 1
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
2716 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型