当前位置: 首页 > news >正文

OJ在线评测系统 微服务 OpenFeign调整后端下 nacos注册中心配置 不给前端调用的代码 全局引入负载均衡器

OpenFeign内部调用二

4.修改各业务服务的调用代码为feignClient

开启nacos注册 把Client变成bean

该服务仅内部调用,不是给前端的

将某个服务标记为“内部调用”的目的主要有以下几个方面:

  1. 安全性: 内部API通常不对外部用户公开,这样可以防止未授权的访问。通过限制只允许内部服务调用,可以降低潜在的安全风险。

  2. 服务架构: 在微服务架构中,服务之间的通信往往是通过内部API进行的。这种设计使得各个服务能相互协作,同时避免了直接暴露给外部的复杂性。

  3. 性能优化: 内部调用通常可以优化网络请求,例如使用轻量级的通信协议(如gRPC或HTTP/2),而不是传统的RESTful API,这样可以提高性能。

  4. 版本控制: 内部API可以独立于外部API进行版本控制,使得内部服务能够在不影响外部用户的情况下进行更新和迭代。

  5. 简化开发: 开发人员可以在内部API中使用更复杂的逻辑和数据结构,而不需要考虑外部用户的兼容性问题。

  6. 监控与日志: 内部调用可以更方便地进行监控和日志记录,以便于分析和调试内部服务之间的交互。

通过这些措施,可以确保系统的稳定性和安全性,同时提升开发效率和服务可维护性。

编写服务的实现类 注意要和之前定义的客户端保持一致

这服务只是内部调用的

package com.yupi.yuojbackenduserservice.controller.inner;import com.yupi.yuojbackendmodel.model.entity.User;
import com.yupi.yuojbackendserviceclient.service.UserFeignClient;
import com.yupi.yuojbackenduserservice.service.UserService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;/*** 该服务仅内部调用,不是给前端的*/
@RestController
@RequestMapping("/inner")
public class UserInnerController implements UserFeignClient {@Resourceprivate UserService userService;/*** 根据 id 获取用户* @param userId* @return*/@Override@GetMapping("/get/id")public User getById(@RequestParam("userId") long userId) {return userService.getById(userId);}/*** 根据 id 获取用户列表* @param idList* @return*/@Override@GetMapping("/get/ids")public List<User> listByIds(@RequestParam("idList") Collection<Long> idList) {return userService.listByIds(idList);}}

什么时候用Client呢

5.开启nacos的配置 让服务互相发现

注册配置中心

现在所有服务引入依赖

        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

每个服务都配置一下

是针对 Spring Cloud 使用 Nacos 作为服务发现的设置

spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848

给项目启动类打上注解

开启服务发现

找到对应客户端Bean的位置

这边建议的是给每个服务都加上

@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yupi.yuojbackendserviceclient.service"})

全局要引入负载均衡器依赖

主要功能包括:

  1. 客户端负载均衡:根据策略(如轮询、随机等)将请求分发到不同的服务实例。

  2. 与 Spring Cloud 生态系统的集成:可以与其他 Spring Cloud 组件(如 Eureka、Consul 等)一起使用,以实现服务发现和负载均衡。

  3. 自定义负载均衡策略:支持用户定义自己的负载均衡算法。

使用场景:

  • 在微服务架构中,多个服务实例提供相同的功能时,可以通过负载均衡器将请求合理分配到这些实例上,以提高可用性和性能。

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId><version>3.1.5</version></dependency>

注册中心有响应

相关文章:

OJ在线评测系统 微服务 OpenFeign调整后端下 nacos注册中心配置 不给前端调用的代码 全局引入负载均衡器

OpenFeign内部调用二 4.修改各业务服务的调用代码为feignClient 开启nacos注册 把Client变成bean 该服务仅内部调用&#xff0c;不是给前端的 将某个服务标记为“内部调用”的目的主要有以下几个方面&#xff1a; 安全性: 内部API通常不对外部用户公开&#xff0c;这样可以防止…...

QD1-P19 HTML 总结

本节简单总结&#xff1a;《前端学习笔记1》专题前18篇文章关于HTML的内容。 下一节开始学习CSS了。HTML还是挺易学的&#xff0c;比Linux命令容易。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p19 ‍ 在前面18节中&#xff0c;我们了解了HTML的基础知识&#xff1a; …...

Android Framework AMS(03)AMS关键类解读

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要涉AMS的关键类及其设计理念的解读&#xff0c;主要关注图中下方AMS关键类解读部分即可。这么做的目的是为了后面章节分析AMS时更容易理解…...

Pygame开发贪吃蛇

Pygame专为Python设计&#xff0c;支持多平台&#xff08;如Windows、Mac OS X、Linux、Android等&#xff09;&#xff0c;提供简单易用的API来创建2D游戏。它不仅仅局限于游戏开发&#xff0c;还可用于图形界面和音频应用。 Pygame提供了简洁的API&#xff0c;使得开发者可以…...

Linux进程间通信(个人笔记)

Linux进程通信 1.进程通信介绍1.1进程间通信目的1.2进程间通信发展1.3进程间通信的具体分类 2.管道2.1匿名管道2.1.1代码实例2.1.2 fork共享管道原理2.1.3 管道的读写规则与特点2.1.4 进程池 2.2 命名管道2.2.1 命名管道的创建2.2.2匿名管道与命名管道的区别2.2.3代码实例 3.Sy…...

SAP S/4HANA 迁移:IT 高管实用指南

新版《通往SAP S/4HANA之路》指南为计划从SAP ERP或SAP S/4HANA本地版本迁移到云端的组织提供了全面的参考。随着数字化转型的加速&#xff0c;尤其是在面临挑战的汽车行业等领域&#xff0c;企业必须采用云ERP解决方案&#xff0c;例如SAP S/4HANA云私有版&#xff0c;以应对瞬…...

Qt源码-Qt多媒体音频框架

Qt 多媒体音频框架 一、概述二、音频设计1. ALSA 基础2. Qt 音频类1. 接口实现2. alsa 插件实现 一、概述 环境详细Qt版本Qt 5.15操作系统Deepin v23代码工具Visual Code源码https://github.com/qt/qtmultimedia/tree/5.15 这里记录一下在Linux下Qt 的 Qt Multimedia 模块的设…...

卸载PLSQL及标准卸载流程

目录 1. 卸载PLSQL2. 删除注册表3. 删除数据信息 1. 卸载PLSQL 等待进度条走完 2. 删除注册表 regedit 右击删除 3. 删除数据信息 由于AppData是隐藏文件&#xff0c;需要勾选隐藏的项目。 重启电脑&#xff0c;PLSQL就卸载成功了。...

如何使用ssm实现办公OA系统0

TOC 10907ssm办公OA系统10907ssm0 第一章 绪 论 1.1背景及意义 系统管理也都将通过计算机进行整体智能化操作&#xff0c;对于办公OA系统所牵扯的管理及数据保存都是非常多的&#xff0c;例如管理员&#xff1b;主页、个人中心、公司公告管理、设备分类管理、办公设备管理、…...

IPguard与Ping32—选择合适的企业数据保护解决方案

在数字化时代&#xff0c;企业面临着各种数据安全挑战&#xff0c;选择合适的保护工具至关重要。IPguard与Ping32是两款备受关注的数据保护软件&#xff0c;但它们各自的功能和适用场景有所不同&#xff0c;企业在选择时需根据自身需求做出明智决策。 Ping32&#xff1a;全面的…...

2024 kali虚拟机安装教程,分两大步骤,图文讲解(2)

准备工作&#xff1a; 按照图文讲解&#xff08;1&#xff09;搭建好虚拟机&#xff0c;继续以下步骤 2024 kali虚拟机安装教程&#xff0c;分两大步骤&#xff0c;图文讲解&#xff08;1&#xff09;-CSDN博客 正式开始 1.开启&#xff0c;↑ ↓ 方向键&#xff0c;选择第一…...

【解决办法】git clone报错unable to access ‘xxx‘: SSL certificate problem

git clone 是 Git 版本控制系统中的一个基本命令&#xff0c;用于从远程仓库复制一个完整的版本库到本地。这个命令不仅复制远程仓库中的所有文件&#xff0c;还复制仓库的历史记录&#xff0c;使得你可以在本地进行版本控制操作&#xff0c;如提交&#xff08;commit&#xff…...

基于STM32的智能家居--硬件接线

分配GPIO 1.首先分配串口通讯引脚&#xff0c;该开发板中有三组串口引脚分别分配如图所示。 2.分配SPI。 3.其他为普通GPIO口&#xff0c;B8,B9模拟IIC协议与OLED屏幕进行通讯。...

mac电脑如何删除应用程序?怎么删除苹果电脑里的软件

在使用Mac电脑的过程中&#xff0c;随着时间的推移&#xff0c;我们可能会安装大量的应用程序。然而&#xff0c;这些应用程序中有很多可能只是临时使用&#xff0c;或者已经不再需要了。这些无用的应用程序不仅占据了宝贵的硬盘空间&#xff0c;还可能拖慢Mac系统的运行速度。…...

Hive优化操作(一)

Hive SQL 优化指南 在使用 Hive 进行数据分析时&#xff0c;提高查询性能至关重要。以下是一些具体的优化策略&#xff0c;帮助我们在工作中更有效地管理和查询数据。 一、 减少数据量进行优化 1. 分区表优化 分区是一种表的子集&#xff0c;用于按某一列&#xff08;如日期…...

Vue中常用指令——(详解,并附有代码)

文章目录 一.指令合集1.0 概述1.1 插值表达式1.2 v-text/v-html1.3 v-show/ v-if1.4 v-on1.4.1 内联语句1.4.2 事件处理函数 1.5 v-bind1.6 Test1.7 v-for 一.指令合集 内容渲染指令&#xff08;v-html、v-text&#xff09;条件渲染指令&#xff08;v-show、v-if、v-else、v-e…...

redistemplate实现点赞相关功能

使用Redis的SET数据结构来存储每个实体的点赞用户ID列表&#xff0c;方便进行点赞数量的计数和用户点赞状态的检查。以下是一个小demo&#xff0c;只提供简单思路。 Service public class LikeService {Autowiredprivate RedisTemplate redisTemplate;//点赞public Long like(…...

C++ 算法学习——7.4.1 优化算法——双指针

双指针法&#xff08;Two Pointers&#xff09;是一种常用的算法技巧&#xff0c;通常用于解决数组或链表中的问题。这种技巧通过维护两个指针&#xff0c;通常分别指向数组或链表的不同位置&#xff0c;来协同解决问题。双指针法一般有两种类型&#xff1a;快慢指针和左右指针…...

镁光DDR3的命名

64M16的解释如图。 125是指一个时钟周期需要1.25ns走完&#xff0c;1us对应 1MHZ, 1ns对应1000MHZ ,那么1.25ns对应的时钟频率&#xff0c;就先用 1/1.25得到 1.25us对应的时钟频率 0.8 &#xff0c;然后再乘以1000&#xff0c;得到800就是MHZ 带宽的计算就是 800M…...

[Git] Git下载及使用 从入门到精通 详解(附下载链接)

前言 目录 Git概述 简介 下载 Git代码托管服务 Git常用命令 Git全局配置 获取Git仓库 在本地初始化一个Git仓库 从远程仓库克隆 基本概念 工作区文件状态 本地仓库操作 远程仓库操作 分支操作 标签操作 在IDEA中使用Git 在IDEA中配置Git 本地仓库操作 远程仓…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...