小白进公司快速熟悉环境和代码的方法

1.企业开发模式

        企业开发模式里,我们的项目模块可能非常多此时我们是不能将所有模块都拉取到本地的,主要原因如下:

  • 我们很可能并没有全部工程代码的权限

  • 微服务集群部署非常复杂,本地部署成本太高

  • 微服务模块众多,本地计算机性能难以支持,无法做到水平复制

        因此在开发中,我们往往是将需要自己负责开发的模块拉取到本地,不是自己负责的部分依旧远程运行,然后远程和本机配合运行 。

        下面这张图,首先浏览器发送请求/wg/a ---> Nginx(反向代理将请求转发到网关) --> 网关(请求转发到Nacos拿到对应微服务地址) --> Nacos(地址返回给网关)-->网关(请求转发)-->对应的微服务

 

2.虚拟机导入 

  虚拟机中部署了我们开发过程中常用的软件

  • Git私服(gogs):代码全部提交带了自己的 Git 私服,模拟企业开发的代码管理,大家也需要自行到私服拉取代码

  • jenkins:持续集成,目前已经添加了所有部署脚本和 Git 钩子,代码推送会自动编译,可以根据需求手动部署

  • nacos:服务注册中心、统一配置管理,大多数共享的配置都已经交给 nacos 处理

  • seata:分布式事务管理

  • xxl-job:分布式任务系统

  • es:索引库

  • redis:缓存库

  • mysql:数据库

  • kibana:es控制台

3.配置本机hosts

     在公司中我们一般都是通过域名访问,需要在本地配置 hosts文件位置:

                C:\Windows\System32\drivers\etc\hosts 

需要管理员权限!!(粘贴在文件中)

192.168.150.101 git.tianji.com
192.168.150.101 jenkins.tianji.com
192.168.150.101 mq.tianji.com
192.168.150.101 nacos.tianji.com
192.168.150.101 xxljob.tianji.com
192.168.150.101 es.tianji.com
192.168.150.101 api.tianji.com
192.168.150.101 www.tianji.com
192.168.150.101 manage.tianji.com

4.在浏览器地址栏中输入网站会发送什么 

        浏览器输入www.nacos.tianji.com浏览器会找到hosts文件,文件里有域名能对上,(拿到后面的本机地址)就到虚拟机里找到Nginx(http默认端口80,Nginx端口也是80),在Nginx.conf配置文件里面通过server_name对应名字-->proxy_pass 找到对应的软件

在Linux里找软件命令: find / -name nginx 

 

 

5.部署代码

5.1虚拟机部署

        Gogs:代码托管

        Jenkins:编译和部署

        项目基于Jenkins 实现了持续集成,每当我们 push 代码时,就会触发项目完成自动编译和打包。而需要运行某个微服务时,我们只需要经过两步:

                                1.访问 jenkins 控制台

                                2.点击对应微服务后面的运行按钮

                        

        此时访问 Nacos 控制台,可以看到微服务都成功注册了:  

5.2部署过程

点击会到gogs拉取代码(tj-gateway),将代码做成镜像,将镜像运行成容器

 5.3本地部署

        对于需要开发功能的微服务,则需要在本地部署,不过首先我们要把代码拉取下来(git)

 

        将代码克隆到 IDEA 工作空间中  

 

注意切换分支!!! 

master:主分支,对外发布版本

dev(lesson-init):开发分支, 所有程序员共用分支

feature-0627-bug:每个功能写一个

在默认情况下,微服务启用的是 dev 配置,如果要在本地运行,需要设置 profile 为 local:  

 

        可以在本地启动 TradeApplication,然后我们去 Nacos 控制台查看 trade-service,可以看到有两个实例,分别是虚拟机 IP 和宿主机 IP:  

 请求过来负载均衡,就有可能分配到虚拟机的!!! 

 此时只需要将远程主机中的实例停止就可以了  

 

6.熟悉项目 

        进公司领导让看文档是考察你的第一步,一定要留痕,比如说把项目的流程看通了,直到请求是从浏览器转发的,到哪个网关,网关到哪个微服务,找一个功能看明白就可以比如说登录业务,写清楚,然后分析项目结构.

        熟悉项目的第一步是熟悉项目的结构、用到的技术、编码的一些规范等。

 项目结构

        (1).当我们要创建新的微服务时,也必须以 tjxt 为父工程,创建一个子 module. 例如交易微服务

        (2).微服务 module 中如果有对外暴露的 Feign 接口,需要定义到 tj-api 模块中:  

实体类规范

  • DTO:数据传输对象,在客户端与服务端间传递数据,例如微服务之间的请求参数和返回值、前端提交的表单

  • PO:持久层对象,与数据库表一一对应,作为查询数据库时的返回值

  • VO:视图对象,返回给前端用于封装页面展示的数据

  • QUERY:查询对象,一般是用于封装复杂查询条件

异常处理

         在项目运行过程中,或者业务代码流程中,可能会出现各种类型异常,为了加以区分,我们定义了一些自定义异常对应不同场景  

                 

配置文件

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NAND Separate Command Address (SCA) 接口命令解读

CA output packet和CA input packet是Separate Command Address (SCA) NAND接口协议中用于命令和地址传输的关键数据结构。 CA Input Packet: 在SCA接口中,输入到NAND器件的命令和地址信息被组织成并行至串行转换的CA(Command and Address)输…

装机必看:电脑Bios里的CSM兼容模块是啥?打开有啥用?

前言 最近朋友装了一台新的电脑,用的i5-13490f的CPU。但是由于预算有限,手边只有一块GTX650ti,没办法,只好先这么用着了。 谁知道出现了个大问题:电脑开机居然没办法显示。 由于电脑所有的配件基本上都是全新的&…

查看SQL Server的表字段类型、长度、描述以及是否可为null

文章目录 初步理解小步测试组合一下参考文章有更详细评述 继续理解得到大部分信息 本文参考:https://blog.csdn.net/josjiang1/article/details/80558068。 也可以直接点击这里文章链接: sql server查询表结构(字段名,数据类型&a…

Jmeter Linux环境压测Lottery接口

1、把Dubbo插件放到Linux中Jmeter的lib/ext目录下 2、参数化 3、设置线程数 4、把测试计划中的Dubbo路径替换成Linux中的路径 /home/apache-jmeter-5.5/lib/ext 5、上传压测脚本到压力机 6、执行压测,观察是否有消息积压 ①Jmeter中执行压测脚本 ②检查mq控制台是…

开箱即用之 获取系统的CPU、内存、网络、磁盘使用率

页面示例 引入对应pom依赖 <!-- 系统信息相关 --><dependency><groupId>com.github.oshi</groupId><artifactId>oshi-core</artifactId><version>6.4.0</version></dependency> 代码示例 /*** 获取cpu信息*/public sta…

Javaweb之SpringBootWeb案例查询部门以及前后端联调的详细解析

2.1 查询部门 2.1.1 原型和需求 查询的部门的信息&#xff1a;部门ID、部门名称、修改时间 通过页面原型以及需求描述&#xff0c;我们可以看到&#xff0c;部门查询&#xff0c;是不需要考虑分页操作的。 2.1.2 接口文档 部门列表查询 基本信息 请求路径&#xff1a;/depts …

视频转码:掌握mp4视频格式转FLV视频的技巧,视频批量剪辑方法

在多媒体时代&#xff0c;视频格式的转换成为一种常见的需求。把MP4格式转换为FLV格式&#xff0c;FLV格式的视频文件通常具有较小的文件大小&#xff0c;同时保持了较好的视频质量。批量剪辑视频的方法能大大提高工作效率。下面来看云炫AI智剪如何进行MP4到FLV的转码&#xff…

【Scala】——流程控制

1 if-else 分支控制 让程序有选择的的执行&#xff0c;分支控制有三种&#xff1a;单分支、双分支、多分支 1.1单分支 if (条件表达式) {执行代码块 }1.2 双分支 if (条件表达式) {执行代码块 1 } else {执行代码块 2 }1.3 多分支 if (条件表达式1) {执行代码块 1 } else …

真实可用,Xshell7 期待您的安装使用

xshell https://pan.baidu.com/s/1OKC1sQ1eYq6ZSC8Ez5s0Fg?pwd0531 1.鼠标右击【Xshell7.zip】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09; 2.双击Xshell-7.0.0065.exe 执行安装操作 3.选择【是】 4.点击【下一步】 5.选择【我接受...】 6.点击…

Linux中DNS域名解析服务及实验

一、DNS介绍 1、DNS 是域名系统&#xff0c;应用层协议&#xff0c;是互联网的一项服务&#xff0c;是将域名转换成网络可以识别的IP地址&#xff0c;再通过IP地址访问主机。这种由文字组成的名称更容易记忆。 DNS是“域名系统"的英文缩写。它作为将域名和IP地址相互映…

Android开发基础(四)

Android开发基础&#xff08;四&#xff09; 本篇将从Android数据存储方式去理解Android开发。 Android数据存储方式 Android提供了多种数据存储方式。 一、SharedPreferences存储 主要用于存储一些简单的配置信息&#xff0c;如登录账号密码等&#xff1b; 这种存储方式采…

更换电脑必装软件【mac电脑】快速装机流程

一、安装软件 source treevscodeapifoxchromerectangleclashx pro 二、开发环境构建 安装nvm&#xff0c;参考这篇文章使用nvm 安装node 三、使用vscode 运行 js 文件 3.1 安装vscode插件 code-runner 3.2 如果报错/bin/sh: node: command not found 解决办法&#xff0c…

Java常用类---Math类和Random类

Math类 简介 Java中&#xff0c;Math类包含了用于执行基本数学运算的属性和方法。Math类的方法都被定义为static形式(静态方法)&#xff0c;通过Math类可以直接在主函数中直接调用。 如下图所示&#xff0c;Math.PI等于圆周率π、Math.E等于常量e……等属性和方法。 部分Mat…

【MIdjourney】关于图像中人物视角的关键词

本篇仅是我个人在使用过程中的一些经验之谈&#xff0c;不代表一定是对的&#xff0c;如有任何问题欢迎在评论区指正&#xff0c;如有补充也欢迎在评论区留言。 1.全景镜头(panorama) 全景镜头是一种广角镜头&#xff0c;可以捕捉到比普通镜头更广阔的视野范围。全景镜头&…

C++内存分配策略

目录 基础概念 内存布局 分配方式 实现 1.new和delete 2.利用空间配置器alloc 3.用malloc和free 4.静态内存分配 基础概念 在讲内存分配之前&#xff0c;先对一些基础概念进行阐述&#xff0c;以便能更好的讨论问题 内存布局 代码编译为可执行程序后运行占用的内存可…

JWT的实现原理|一分钟快速了解

文章目录 jwt知识点认识JWTTOKEN是什么jwt的使用场景jwt的组成headerpayloadsignature jwt知识点 jwt官网 认识JWT JSON Web Token&#xff08;JWT&#xff09;是一个开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑和自包含的方式&#xff0c;用于在…

【Spring 篇】基于注解的Spring事务控制详解

嗨&#xff0c;亲爱的读者朋友们&#xff01;欢迎来到这篇关于基于注解的Spring事务控制的博客。如果你曾为事务处理而头痛&#xff0c;那么这里将为你揭开事务的神秘面纱。我们将一步步深入探讨Spring事务的世界&#xff0c;用简单易懂的语言、充满情感色彩的文字&#xff0c;…

YOLOv5改进系列(25)——添加LSKNet注意力机制(大选择性卷积核的领域首次探索)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制 YOLOv5改进系

探索SQL性能优化之道:实用技巧与最佳实践

SQL性能优化可能是每个数据库管理员和开发者在日常工作中必不可少的一个环节。在大数据时代&#xff0c;为确保数据库系统的响应速度和稳定性&#xff0c;掌握一些实用的SQL优化技巧至关重要。 本文将带着开发人员走进SQL性能优化的世界&#xff0c;深入剖析实用技巧和最佳实践…

ssm基于Java的超市管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本超市管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…