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

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:查询对象,一般是用于封装复杂查询条件

异常处理

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

                 

配置文件

 

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

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

相关文章

网络编程之Socket

网络编程之Socket 目录 什么是Socket TCP服务端流程 TCP客户端流程 UDP服务端流程 UDP客户端流程 什么是Socket Socket是位于应用层与传输层之间的一个抽象层,可用于不同的网络协议(如TCP、UDP等)它允许应用程序创建一个与网络上的其…

边缘计算AI智能分析网关V4算力分析及应用场景

一、硬件介绍 智能分析网关V4是TSINGSEE青犀视频推出的一款高性能、低功耗的软硬一体AI边缘计算硬件设备,硬件采用BM1684芯片,集成高性能8核ARM A53,主频高达2.3GHz。硬件内置近40种AI算法模型,支持对接入的视频图像进行人、车、…

适用于 Windows 的 12 个最佳免费磁盘分区管理器软件

分区是与其他部分分开的硬盘驱动器部分。它使您能够将硬盘划分为不同的逻辑部分。分区软件是一种工具,可帮助您执行基本选项,例如创建、调整大小和删除物理磁盘的分区。许多此类程序允许您更改磁盘片的标签以便于识别数据。 适用于 Windows 的 12 个最佳…

【docker】Docker Compose 使用介绍

一、什么是Docker Compose Docker Compose是一个用于定义和运行多个Docker容器的工具。它允许您使用YAML文件来配置应用程序的服务、网络和卷等方面,并通过单个命令即可快速启动和停止整个应用程序的多个容器。 Docker Compose的主要作用如下: 管理多个…

Defi安全--Zunami Protocol攻击事件分析

其它相关内容可见个人主页 1 Zunami攻击事件相关信息 2023.8.13发生在Ethereum上发生的攻击,存在两个攻击交易,具体信息如下: 攻击合约地址:Contract Address 攻击合约 攻击者地址:Zunami Protocol Exploiter 攻击…

Archlinux下自启动rclone mount

路径: /etc/systemd/system/rclonemount.service [Unit] Descriptionrclonemount Requiresnetwork-online.target.wants Afteralist.service[Service] Typesimple ExecStartPre/bin/mkdir -p /media ExecStart/usr/bin/rclone mount \aliyun: /media \--config /ro…

python如何安装numpy

1. 根据python版本下载相应版本的numpy保存至D:\Program Files (x86)\Python\Python37\Scripts\ numpy下载地址 2. winR,输入cmd,打开命令行窗口,定位到python的安装目录 3. 输入python -m pip install numpy或定位到目录:D:\P…

【Linux】Linux系统编程——ls命令

【Linux】Linux 系统编程——ls 命令 1.命令概述 ls 命令是 Linux 和其他类 Unix 操作系统中最常用的命令之一。ls 命令是英文单词 list 的缩写,正如 list 的意思,ls 命令用于列出文件系统中的文件和目录。使用此命令,用户可以查看目录中的…

代码随想录 516. 最长回文子序列

题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入:s “bbbab” 输出&…

Java复习

填空题 课程推荐的 jdk 下载网址为 jdk.java.net 使用命令行编译程序:javac -d bin stc*.java 使用命令行运行程序: java -cp bin 类名 java 语言标识符:字母、数字、下划线和美元符号,数字不能做首字母 java 语言中标识符区…

【QT实战】使用QT5制作一个简易串口助手详细教程,支持打包转发

文章目录 制作串口助手工程所涉及到的头文件ui布局制作串口配置选项添加修饰制作串口打印信息界面添加背景图片 函数查找串口并且添加到ui界面上显示串口数据接收槽函数串口发送槽函数打开串口槽函数 将串口助手封装成可执行文件 本项目的开发环境:windowsQT5qtcrea…

从vue小白到高手,从一个内容管理网站开始实战开发第八天,登录功能后台功能设计--业务逻辑层基础接口和基础服务实现

上一篇我们介绍了项目后续要使用到的工具类,关于工具类的创建可以查看 从vue小白到高手,从一个内容管理网站开始实战开发第七天,登录功能后台功能设计--通用分页、枚举以及相关工具类-CSDN博客文章浏览阅读2次。本次内容主要介绍了项目后续用到的部分工具类,这些工具类,在…

ES索引原理

ES在检索时底层使用的就是倒排索引,正向索引是通过key找value,反向索引则是通过value找key。 索引会分为两个区域:索引区和元数据区。数据是这样存储在里面的: 简单理解就是:当要录入一条数据时,首先会将完…

【国产之光】开年尝鲜——优秀的AI编码助手 Fitten Code

文章目录 前言1. 工具准备1.0 事先说明1.1 VSCode1.2 Fitten Code1.3 GitHub Copilot 2. 使用测评2.1 需求理解2.2 上下文理解 3. 总结推荐链接 开年尝鲜高质量国产AI编码助手——FittenCode 前言 2024年刚刚开局,清华大学 与 非十科技 就发布了全新的 VSCode AI…

并发编程(十)

带有Scheduled的基本都是定时器 Executor框架的成员 (1)ThreadPoolExecutor ThreadPoolExecutor通常使用工厂类Executors来创建。Executors可以创建3种类型的ThreadPoolExecutor:SingleThreadExecutor、FixedThreadPool和CachedThreadPool…

2024软件测试该如何发展?测试员怎样在内卷中走出来?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、行业现状 目前…

2024.1.22

今天主要是写了一个项目——通讯录,然后做了一下学校的C语言的期末复习题,已经开始准备C的期末了。通讯录目前是我写过最长的代码,但其实实现不是最复杂的,是因为我为了让用户友好,所以说加了一些很多重复的代码&#…

MySQL 8.0中新增的功能(九)

FROM_UNIXTIME()、UNIX_TIMESTAMP()和CONVERT_TZ()的64位支持 根据MySQL 8.0.28版本的更新,FROM_UNIXTIME()、UNIX_TIMESTAMP() 和 CONVERT_TZ() 函数现在在支持64位的平台上处理64位值。这包括64位版本的Linux、MacOS和Windows。在兼容的平台上,UNIX_T…

Java并发Condition 详解

1.引言 在Java并发编程中,线程间的协作是一个核心话题。为了实现线程间的协作,Java提供了多种机制,其中等待/通知机制是最常见的一种。在早期版本中,我们通过Object类提供的wait、notify和notifyAll方法来实现这种机制。然而&…

前端规范扩展

前端编程规范是基于原有vue2基础上那套《编码风格及标准》上,应用于vue3、typescript、vite2基础上延伸出来的扩展补充,持续完善 一、编码规范 ESLint 代码检测工具 Pretter 代码格式化工具配合双校验代码 Git 规范 - 编码工具 vscode 同步参考文档中…