李光明从程序员到架构师的逆袭之路(八)

来上海已经第八天了,今天周六,我没有像往常一样出去探索这座繁华都市的街头巷尾,而是在旅馆里待了一整天,甚至连门都没有出过。这并不是因为我懒惰或者失去了对新环境的好奇心,而是因为我正全身心地投入在一项重要的学习任务中。

上海的物价相较于我之前的城市确实偏高,尤其是餐饮方面。在这里,一碗普通的拉面都要20多元,对于初来乍到的我来说,确实有些难以承受。因此,为了节省开支,我这几天几乎天天吃外卖,而且种类比在大学期间吃的还要丰富。不过,这样的生活方式也让我能够更专注于我的学习。

这段时间,我重新温习了Spring Cloud的一些核心知识点。作为一名计算机软件开发工程师,我深知技术不断更新换代的重要性。Spring Cloud作为当前流行的微服务架构解决方案,掌握它对于我未来的职业发展至关重要。

在复习过程中,我不仅仔细研读了官方文档,还观看了大量相关的技术视频和教程。我深入了解了Spring Cloud的各个组件,如Eureka、Ribbon、Feign、Zuul等,并逐一实践了它们的使用方法。此外,我还特意研究了一些实际项目中可能遇到的问题和解决方案,以便在未来的工作中能够更加游刃有余。

1. 配置Eureka客户端

application.ymlapplication.properties中添加Eureka客户端的配置:

spring:application:name: ribbon-consumereureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/ # Eureka服务器地址

2. 创建Ribbon配置类

创建一个Ribbon的配置类,用于自定义Ribbon的负载均衡规则等。这里我们使用默认的负载均衡策略,即轮询(RoundRobinRule)。

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RoundRobinRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RibbonConfiguration {@Beanpublic IRule ribbonRule() {return new RoundRobinRule();}
}

3. 创建服务消费类

使用@LoadBalanced注解来启用Ribbon的负载均衡功能。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;@RestController
public class ConsumerController {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/consume")public String consume() {String serviceUrl = "http://SERVICE-NAME/service-endpoint"; // SERVICE-NAME是Eureka中注册的服务名称String response = restTemplate.getForObject(serviceUrl, String.class);return "Consumed: " + response;}@Configurationstatic class RestTemplateConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}}
}

在这个示例中,RestTemplate被标记为@LoadBalanced,这意味着当使用RestTemplate调用远程服务时,Ribbon会自动进行负载均衡。SERVICE-NAME应该替换为在Eureka中注册的实际服务名称。service-endpoint是远程服务提供的具体端点。

4. 启动应用并测试

启动你的Ribbon消费者应用,并通过访问/consume端点来测试负载均衡功能。Ribbon将根据配置的负载均衡策略(在这个例子中是轮询)来选择一个可用的服务实例进行调用。

通过学习,我对Spring Cloud的理解更加深入,也对自己的技术能力更有信心。我意识到,想要在技术领域不断进步,就必须保持持续学习的态度。而这次在旅馆里闭关学习,也让我体会到了自我提升的满足感和成就感。

当然,学习之余,我也开始思考自己的职业规划。作为一名程序员,我渴望能够更进一步,成为一名优秀的架构师。我知道这并非易事,需要不断积累经验和提升自己的视野。但我有信心,只要我保持对技术的热情和求知欲,不断努力和进步,总有一天我会实现这个目标。

回想起这八天的学习经历,我感到非常充实和满足。虽然上海的物价让我有些压力,但这也激发了我更加努力工作的动力。我相信,在未来的日子里,我会在这座繁华的都市中找到属于自己的一片天地。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/32288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

芝麻清单助力提升学习工作效率 专注时间完成有效的待办事项

芝麻清单助力提升学习&工作效率 专注时间完成有效的工作。今天我们给大家带来一个专注清单,一个更高效的学习和工作的方法! 我们都知道,专注做一个事情,会有效的提升效率,让事情更高效的完成。如果是学习的话&…

《窄门》读后感

《窄门》这本书是端午节期间在地铁和高铁上看完的,书的故事很简单,描绘的是一段爱而不得的感情。但是,这本书写的爱而不得和其他地方的爱而不得完全不是一码事,其他地方的爱而不得要么是“落花有意随流水,流水无意恋落…

fastapi+vue3+primeflex前后端分离开发项目环境搭建

创建后端项目 创建文件夹: mkdir backend创建python虚拟环境: python -m venv venv使用Pycharm打开文件夹,然后配置python解释器为venv虚拟环境。 安装fastapi: pip install "fastapi[all]"编写第一个程序&#xf…

刷代码随想录有感(112):动态规划——组合总和IV

题干&#xff1a; 代码&#xff1a; class Solution { public:int combinationSum4(vector<int>& nums, int target) {vector<int>dp(target 1, 0);dp[0] 1;for(int j 0; j < target; j){for(int i 0; i < nums.size(); i){if(j > nums[i] &…

第二次IAG

IAG in NanJing City 我与南京奥体的初次相遇&#xff0c;也可能是最后一次&#xff01; 对我来说,IAG 演唱会圆满结束啦! 做了两场充满爱[em]e400624[/em]的美梦 3.30号合肥站&#xff0c;6.21号南京站[em]e400947[/em] 其实&#xff0c;没想到昨天回去看呀!(lack of money […

物理层(二)

2.2 传输介质 2.2.1 双绞线、同轴电缆、光纤和无线传输介质 传输介质也称传输媒体&#xff0c;是数据传输系统中发送器和接收器之间的物理通路。传输介质可分为:①导向传输介质&#xff0c;指铜线或光纤等&#xff0c;电磁波被导向为沿着固体介质传播:②)非导向传输介质&…

C# 与三菱PLC MC协议通讯

1. 引用HslCommunication Nuget包里边添加 HslCommunication包的引用 2.创建PLC连接对象&#xff0c;并通过 IP&#xff0c;端口进行连接 //PLC连接对象 var plc new MelsecMcNet(_ip, _port); plc.ConnectTimeOut 3000;var res plc.ConnectServer();//连接PLCisConnect …

软件测试笔记

一、介绍 软件测试是为了尽可能多地发现软件系统中的错误而不是证明软件的正确性。 1、软件缺陷是什么&#xff1f; 软件在使用过程中存在的任何问题都叫软件的缺陷&#xff0c;简称bug。 缺陷的判定标准 软件未实现需求说明书中明确要求的功能——少功能 软件出现了需求说…

checkbox 复选框 冒泡事件

1.问题描述&#xff1a;点击checkbox 会触发父元素的事件&#xff0c;使用click.stop无效 解决办法&#xff1a;多加一层div&#xff0c;在div上使用click.stop 2.小程序的checkbox点击时会冒泡&#xff0c;触发父元素的事件 解决办法&#xff1a;给checkbox绑定一个catchta…

已解决java.rmi.activation.ActivationException异常的正确解决方法,亲测有效!!!

已解决java.rmi.activation.ActivationException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 问题分析 java.rmi.activation.ActivationException 是与Java RMI&#xff08;远程方法调用&#xff09;的激活机制相关的一种已检查异常。这个异…

遍历二叉树和线索二叉树

目录 一、*遍历二叉树 1.1遍历定义 1.2遍历目的 1.3遍历用途 1.4遍历方法 1.4.1先序遍历&#xff08;DLR&#xff09; 1.4.2中序遍历&#xff08;LDR&#xff09; 1.4.3后序遍历&#xff08;LRD&#xff09; 1.5根据遍历序列确定二叉树 1.6遍历算法的实现 1.6.1先序遍…

PDF转成清晰长图

打开一个宝藏网址在线PDF转换器/处理工具 - 在线工具系列 点击图下所示位置 按照图下所示先上传文件&#xff0c;设置转换参数后点击转换&#xff0c;等待 等待转换完成后&#xff0c;可以在转换结果处选择下载地址&#xff0c;点击即可进行下载使用了。对比了其他几个网站的转…

Django 循环模板标签

1&#xff0c;循环模板标签 Django 模板系统中提供了多种循环模板标签来迭代数据并显示列表、字典或其他可迭代对象。 1.2 {% for %} 标签 用于迭代列表或可迭代对象&#xff0c;并为每个元素提供上下文变量。 {% for item in items %}{{ item }} <!-- 渲染当前迭代项 -…

SpringBoot 搭建sftp服务 实现远程上传和下载文件

maven依赖&#xff1a; <dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version> </dependency>application.yml sftp:protocol: sftphost: port: 22username: rootpassword: sp…

人工智能未来的发展趋势如何?

人工智能是当今科技发展的前沿领域&#xff0c;其未来的发展趋势值得关注。随着技术的不断进步和应用的深入&#xff0c;人工智能有望在多个方面取得突破性进展。具体如下&#xff1a; 迈向通用人工智能 技术发展&#xff1a;通用人工智能是指具备多领域智能能力的系统&#x…

java中的日志

springboot自带slf4j框架和logback&#xff0c;我们可以移除spring的logging&#xff0c;然后再带入自己的日志框架。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusio…

Docker 安装运行命令解读安装Mysql

MySQL 8.0 镜像 docker pull mysql:8.0运行命令 dockerrun --namemysql-container -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306-d mysql:8.0docker run 创建并运行容器 -p 在后台运行 –name mysql 给当前容器取名叫mysql -p 3306:3306 端口映射&#xff0c;容器与主机的…

【MMSegmentation 环境配置】

MMSegmentation 环境配置 1. 创建python 环境2. 安装pytorch3. 安装MMCV4. 安装 MMSegmentation.5. 测试是否安装成功 1. 创建python 环境 conda create --name openmmlab python3.8 -y conda activate openmmlab2. 安装pytorch On GPU platforms: conda install pytorch tor…

如何混淆 net core 8 架构 C# 编译程序

如何混淆 net core 8 架构 C# 编译程序 一、使用混淆工具 .NET Reactor V6.9二、net core 8 架构 C# 编译程序&#xff08;发布的单文件&#xff09;1、通过发布的单文件程序&#xff0c;可以直接在 .NET Reactor 拖入或打开 &#xff0c;勾选自己需要的保护功能。2、勾选自己需…

Oracle day9

------------------------------------------------------------------------------------ --创建用户 create user test1 identified by 123456; create user ZJun identified by 888888; --授予权限 grant create session to test1; grant create session to ZJun; --删除用…