商场学习之微服务

前言

寒假前在新电脑上配置了java环境,maven仓库,node,js,navicat,MySQL,linux,vmware等环境,创建了6个mysql数据库,77张表。

如此多的表,字段,去手写基础架子增删改查需要耗费大量时间的重复工作,因此:

  1. 通过人人开源逆向工程,先获取了一个连接登陆首页权限管理的通用前后短模块
  2. 在通过人人代码生成器创建各个以springboot为框架的微服务项目,每个微服务项目包括了实体类,controller,service,mapper层,又创建了一个common项目服务,为各个微服务提供通用方法

现状及其要做的事情

目前前段Vue项目与renren-fast后端项目所对应,提供了系统的登录及权限管理系统,而其他微服务项目并未与前段项目相连。
首先要做的是把这个项目变成一个微服务项目

  1. 前端项目不在对应renren-fast这个微服务项目,而是应当对应一个后端统一的网关,由网关来返回前端想要的服务
  2. 后端各个微服务项目要去注册中心配置中心进行注册和统一配置,这样当一个微服务项目调用另一个微服务项目,只需要去注册中心,看哪些服务注册了,直接使用就可
  3. 网关也是通过注册中心去寻找服务然后返回前端

微服务学习

spring cloud alibaba的github地址

这是主要的组件。

Nacos注册中心配置中心

nacos需要先去github项目下载

下载了nacos服务然后在项目中引入对应的注册中心和配置中心依赖

xml 复制代码
       <!--        服务注册/发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--        配置中心来做配置管理-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

然后点击bin目录中的这个启动nacos服务器,弹出的cmd会有nacos可视化的网址,在8848端口,访问后使用管理员登录,账号密码都是nacos

在项目中使用nacos服务

  1. 在项目配置文件写上nacos的路径端口, 还有该微服务项目的名称
  2. 在springboot启动类加上注解
xml 复制代码
@EnableDiscoveryClient
  1. 然后就可以在服务管理中看到注册的服务了
  2. 添加feign接口,这样才能让一个在naos里的微服务去调用另一个在nacos里的微服务
    第一步,引入feign的依赖
xml 复制代码
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

第二步,添加一个feign目录,把要调用的微服务写一个接口,比如我这个服务要调用3个微服务,那么就写3个接口,在每个接口上添加@FeignClient("coupon") 这个注解,里面写该接口调用的微服务在nacos中的注册名

直接复制要调用的微服务的controller中方法及其路径注解,需要注意,路径一定要手动加全,因为我们使用requestmapping注解在controller类上为每个方法提供了基础路径,实际路径是基础路径拼接方法上的路径

第三步,在启动类中添加@EnableFeignClients(basePackages = "com.jlau.agriMall.member.feign") 该注解,里面的basepackage参数是扫描feign目录

第四步,在本服务中需要用其他微服务的地方,引入所需要使用微服务的feign接口对象,然后开始使用

相关推荐
Shulex4 小时前
跨境电商 AI Agent 核心架构解析:从只读问答到自主执行的工程落地
人工智能·架构·智能客服·跨境电商
钱工的门窗技术笔记4 小时前
室内极窄全景移门的支承路径与预留接口:轨道形式、型材壁厚口径与验收边界
物联网·架构·数据分析
码农小旋风5 小时前
Ray分布式计算引擎介绍
人工智能·架构
ZhengEnCi5 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
星融元asterfusion5 小时前
工业网络升级实战:100G 双轨 Leaf-Spine 架构破解高并发出货网络瓶颈
网络·架构·spine
天远数科6 小时前
零信任架构实战:基于天远企业法人四要素高级版构建自动化供应商资质穿透核验网关
人工智能·架构·自动化
深蓝AI7 小时前
苹果智能入华拆解:八样首批功能、支持的机型、千问在三个入口的位置
人工智能·架构
apple-mapping7 小时前
网络RTK定位学习总结
学习·网络rtk
楚山之石8 小时前
【Lancet Neurology 】多发性硬化认知障碍的 SDMT 筛查、灰质萎缩标志与认知康复循证路径
图像处理·人工智能·学习·mri
海宇大数据8 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化持牌网络小贷小微商户极速助业贷秒级全维风险决策网关
网络·人工智能·架构·自动化