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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 快速学习开发订单微服务与注册调用

开发者学堂课程【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的,即如何将微服务注册进去的,注册的一简单信息是服务地址、服务的名字、服务的状态是否正常、服务接口接入了什么参数,源码的了解仅作为一个提升点。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
运维 监控 API
后端开发中的微服务架构:优势与挑战
【8月更文挑战第16天】在软件开发的世界中,微服务架构已经成为一种流行和强大的设计模式。它通过将应用程序分解为一组小型、独立的服务来促进敏捷开发和快速迭代。本文旨在深入探讨微服务架构的核心优势以及实施过程中可能遇到的挑战,帮助读者更好地理解这一现代软件设计方法。
|
3天前
|
负载均衡 Java Nacos
EureKa详解:微服务发现与注册的利器
EureKa详解:微服务发现与注册的利器
|
5天前
|
开发框架 Dubbo 应用服务中间件
微服务开发框架-----Apache Dubbo
这篇文章介绍了Apache Dubbo微服务开发框架,它提供RPC通信和微服务治理能力,支持服务发现、负载均衡和流量治理等功能,并强调了Dubbo在微服务规模化实践和企业级治理方面的优势。
微服务开发框架-----Apache Dubbo
|
2天前
|
运维 监控 数据库
后端开发中的微服务架构:优势与挑战
【8月更文挑战第17天】在软件开发领域,微服务架构已成为构建复杂系统的重要方法。它通过将应用程序拆分成小型、独立的服务,提高了系统的可维护性、可扩展性和灵活性。然而,这种架构风格也带来了新的挑战,如服务间的通信、数据一致性和运维复杂性等。本文将深入探讨微服务架构的优势和面临的主要问题,并分析如何在实际应用中平衡这些利弊。
|
4天前
|
Kubernetes Nacos 微服务
【技术难题破解】Nacos v2.2.3 + K8s 微服务注册:强制删除 Pod 却不消失?!7步排查法+实战代码,手把手教你解决Nacos Pod僵死问题,让服务瞬间满血复活!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但有时会遇到“v2.2.3 k8s 微服务注册nacos强制删除 pod不消失”的问题。本文介绍此现象及其解决方法,帮助开发者确保服务稳定运行。首先需检查Pod状态与事件、配置文件及Nacos配置,确认无误后可调整Pod生命周期管理,并检查Kubernetes版本兼容性。若问题持续,考虑使用Finalizers、审查Nacos日志或借助Kubernetes诊断工具。必要时,可尝试手动强制删除Pod。通过系统排查,通常能有效解决此问题。
10 0
|
4天前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
12 0
|
4天前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
19 0
|
5天前
|
开发框架 Dubbo 应用服务中间件
微服务开发框架-----Apache Dubbo
这篇文章介绍了Apache Dubbo微服务开发框架,它提供RPC通信和微服务治理能力,支持服务发现、负载均衡和流量治理等功能,并强调了Dubbo在微服务规模化实践和企业级治理方面的优势。
|
2天前
|
监控 负载均衡 API
从单体到微服务:架构转型之道
【8月更文挑战第17天】从单体架构到微服务架构的转型是一项复杂而系统的工程,需要综合考虑技术、团队、文化等多个方面的因素。通过合理的规划和实施策略,可以克服转型过程中的挑战,实现系统架构的升级和优化。微服务架构以其高度的模块化、可扩展性和灵活性,为业务的持续发展和创新提供了坚实的技术保障。
|
13天前
|
缓存 监控 API
【微服务战场上的神秘守门人】:揭秘API网关的超能力 —— 探索微服务架构中的终极守护者与它的神奇魔法!
【8月更文挑战第7天】随着微服务架构的流行,企业应用被拆分为围绕特定业务功能构建的小型服务。API网关作为微服务间的通信管理核心,对请求进行路由、认证、限流等处理,简化客户端集成并提升用户体验。以电商应用为例,通过Kong部署API网关,配置产品目录等服务的API及JWT认证插件,确保安全高效的数据交互。这种方式不仅增强了系统的可维护性和扩展性,还提供了额外的安全保障。
31 2