自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 springboot配置profile

-dev :开发环境 端口设置8081-pro :生产环境 端口设置8082-test:测试环境 端口设置8083然后直接运行显示没有激活配置文件,这不是错误我们可以通过主配置文件中的profile属性指定对不同环境的配置文件进行激活spring.profiles.active用来激活指定的配置文件的dev代表的是指定配置文件的后缀名是dev的配置文件,这样就会加载后缀名为dev的配置文件我们测试一下这里显示他被激活并且加载了dev的配...

2022-01-13 19:31:11 289

原创 Nacos安装

nacos属于alibaba的产品,功能比Eureka更加强大在官网nocos.io中进行下载nocos-server,然后安装默认端口号8848,如果要更改在下面这个配置文件中进行修改在bin目录中我们可以启动运行的脚本在黑窗口启动命令startup.cmd -m standalone (单机模式)nacos如果启动失败有可能是默认集群模式,我们修改startup.cmd中的文件将/bin/startup.cmd文件以文本形式打开,找到如下位置,将模式修

2022-01-05 09:44:13 120

原创 Feign的抽取实现02

第一步创建新的Module引入openfeign的依赖然后把需要的公共代码写在这个模块中第二步谁用的话就可以导入这个模块的包进行调用就可以了然后把之前的删除,通过导入的包引入我们的依赖这里报错是我还没有修改包,修改到我们新创建的包这样就不报错了然后我们运行会报一个错误在spring中找不到这个的对象,因为没有注入进来这个时候我们有两种该解决方案第一种就是扫描我们导入的包,指定FeignClient所在的包

2022-01-03 08:45:10 361

原创 Feign的实践01

1.继承:给消费者的FeignClient和提供者的controller定义统一的父接口标准问题:消费者的feignClient的接口提供者的访问接口从这里可以看出除了返回值类型不一样之外,其它的都一样只有这样才是正确的,不然就是有问题的我们可以把它们两个的共同部分进行一个抽取,抽取成下面的公共接口让对上面的抽取进行继承在实际开发中应用也是用的比较多的,但是也有一定的问题,就是耦合度高,2.第二种方案就是抽取

2022-01-03 08:44:07 241

原创 feign性能调优

feign本身的性能就很高,但还是有优化的余地feign底层的客户端实现:URLConnection:默认实现,不支持连接池Apche HttpClient:支持连接池OKHttp:支持连接池因此优化feign的性能的点有1.使用连接池代替默认的URLConnection2.日志级别:同时日志的级别不同,消耗的性能也不同,尽量使用Basic级别或none可以使用Apche HttpClient 或 OKHttp进行优化 这里演示第一种第一步 引入htt

2022-01-01 14:57:39 1211

原创 feign的自定义配置覆盖默认配置

xml方法全局配置日志如果是defaul是全局如果是服务名称,则代表局部这里展现的全局java代码实现在注解里扫描类代表全局写在@FeignClient注解中代表针对某个服务

2022-01-01 14:56:34 200

原创 http客户端Feign远程调用

restemplate缺点:url路径难以维护代码可读性差比如:Feign:解决了上述问题1.FeignClient为了减少我们的学习成本,采用了大量的springmvc的注解学习起来很简单2.通过声明式的使用:第一步:依赖第二部:开启开关注解第三步:给项目中创建新的clients包里面有openfeign有接口第四步进行远程调用的代码实现对比template简略了很多的代码,代码更加的优雅运行我们会发现feig

2022-01-01 14:55:40 158

原创 SpringCloud子模块的克隆实现

在做轮询测试时,使用此方法简单代码都是相同的,唯一区别就是端口不同,下列使实现步骤克隆user-server模块第一步:右键点击,然后显示下面这张图第一个红圈写服务模块的名称,端口会冲突,所以打开第二个红圈修改端口号-Dserver.port=端口号-D代表参数 server.port端口号点击OK最下面就多出了一个模块启动,点击启动就可以了...

2021-12-31 21:17:03 439

原创 Ribbon负载均衡 饥饿加载

需要两份或多份相同的性质的服务的模块,地址与端口不同,服务模块名称相同,访问者通过名称进行访问让访问者进行负载均衡的选择在Eureka中发送这个路径我使用的是名字,而不是ip,这里面的负载均衡就是由我们的Ribbon实现的,如过在浏览器中搜索这个路径肯定是查不到的,所以说这个Ribbon实现了Eureka中的负载均衡@LoadBalanced注解就是拦截RestTemplate的请求,交给Ribbon来处理Ribbon根据请求的服务名去拉取Ereuka注册中心里的服务列表

2021-12-31 20:46:17 346

原创 Eureka客户端注册步骤,以及负载均衡案例

1.加入依赖2.写配置案例复制一份服务做轮询的负载均衡效果第一步:在orderService中的RestTemplate上加一个@LoadBalanced注解第二步:把调用的路径的ip改为服务名称然后就可以测试了...

2021-12-31 20:43:43 193

原创 Eureka搭建服务中心

1.每个服务都是一个消费者(调用者)和提供者(被调用者)2.每个服务的端口和地址不可以写死3.判断是服务器是否挂掉使用Eureka解决上述的问题Eureka分Eureka-server和Eureka-clientEureka-server:注册中心:每个服务都要到这里注册自己的地址信息,服务消费者调用时去注册中心找服务提供者的信息,然后注册中心把提供者的地址响应给消费者,消费者通过轮询去远程调用提供者,每个服务每个30秒都会给注册中心一个心跳,让注册中心知道它没有

2021-12-31 00:16:36 165

原创 远程服务调用 RestTemplate

每个业务对应一个数据库,每个服务都有一个接口,通过这个接口对每个服务进行调用,每个业务都是单一职责服务之间通过接口互相调用,服务内部独立1.基于RestTemplate发送http的使用发送http请求要做的根据order订单里的userID把用户也返回回来模块之间的调用:导入被调用的模块依赖就可以调用了http请求与语言无关的调用,只要知道对方的ip,端口,接口路径,参数即可;下面是代码实例忽略实体类属性,因为用的是mybatis-plus...

2021-12-30 23:43:46 380

原创 springcloud

springcloud是一种规范,相当与Java里的接口,国内的spring cloud和dubbo就是对它的实现,就是微服务架构微服务架构由注册中心,服务远程调用,配置中心,服务网关,服务监控和保护组成微服务技术栈在国内流行的有四种实现1. springcloud : 将各大厂商的相关开源的框架进行整合了2. Spring Cloud Alibaba是阿里巴巴公司对Spring Cloud标准规范进行的产品实现,Spring Cloud Alibaba目前提供的开源组件有:Na

2021-12-30 20:44:17 151

原创 nginx负载均衡实现

1.准备工作两个或多个tomcat服务器,我这里测试的是两个两个tomcat同时启动在nginx.conf中进行配置:负载均衡实现有三种配置如下(ip_hash)upstream my_server{ip_hash;server ncthz.top:8080;server ncthz.top:8081;}server {listen80;server_namelocalhost;location / {proxy_pass http://my_se

2021-12-29 22:17:37 1050

原创 nginx反向代理多个tomcat

1.使用nginx反向代理,根据访问路径跳转不同的服务端口中nginx监听端口为9001访问http://127.0.0.1:9001/edu/ 转发到 127.0.0.1:8080访问http://127.0.0.1:9001/vod/ 转发到 127.0.0.1:80812. 准备工作准备两个tomcat服务器 一个8080 一个8081在webapps中创建文件夹和测试页面3.具体配置找到nginx配置文件:nginx.conf 在里面加上反向代理的配置li

2021-12-29 19:58:17 1477

原创 window浏览器 访问 nginx代理服务器 访问 tomcat服务流程

window浏览器先 访问 nginx反向代理服务器ip 访问 tomcatip目的:是为了隐藏用户的ip,暴漏反向代理服务器的ip第一步:在window系统找到这个hosts文件,路径基本一样,进行域名和ip对应关系的配置最后一行是我配置的,前面的是服务器域名,后面是自定义的映射后的域名第二步:在nginx进行请求转发的配置(反向代理配置)在nginx中编辑nginx.conf配置文件将localhost改成192.168.154.130 我们的访问..

2021-12-29 19:43:23 620

原创 Linux配置tomcat以及nginx和防火墙常用命令

nginx默认访问端口:80提供⼏个常⽤的Linux操作防⽕墙的命令:systemctl start | stop | restart firewalld : 启动、关闭和重启防⽕墙服务Firewall-cmd --state : 查看防⽕墙状态Firewall-cmd --reload : 重载防⽕墙规则Firewall-cmd --list-ports : 查看所有打开的端⼝firewall-cmd --query-port=8080/tcp : 查询端⼝是否开放fire

2021-12-28 21:59:12 1327

原创 nginx服务器功能及简介

1.nginx概念1.nginx是什么,做什么事情随着时代高速发展,信息量越来越多,单个服务器无法承受高并发的请求,从而增加多个服务器,形成服务器集群,由nginx反向代理服务器把这些请求分发给服务器集群,减轻服务器的压力2.反向代理正向代理:客户端(浏览器)==》代理服务器==》资源数据库 就是正向代理反向代理:客户端(浏览器)==》反向代理服务器==》代理服务器==》资源数据库 就是反向代理3.负载均衡通过nginx反向代理服务器,将多个请求分发到不同的tomcat服务器

2021-12-27 21:05:54 239

原创 java内存模型,简单分析,创建对象过程

执行过程 :一旦方法区中的方法开始执行,栈就会生产出方法相对应的栈帧,栈帧里有方法要调用的信息地址,栈调用方法的内存地址,内存地址在堆里面,相当于堆里面存放对象的信息方法区(method area):用于存储类的信息,比如方法的代码,还有常量池用来存储变量值的常量,还有静态属性与静态方法,比如main()方法栈(stack):里面的结构有一个栈帧,在执行方法的时候会把方法的信息放在栈里面,每一个方法会有一个栈帧,每加载一个方法就会出现一个相应的栈帧,方法存在里的信息存储在栈帧内部,每一个信息

2021-12-09 22:33:17 93

原创 idea中创建webapp没有中间的蓝点解决方法

选中file点击Project Structure,找到Modules点击,点击加号,在里面选择web的文件夹就可以了

2021-09-16 21:31:42 256

原创 2021-09-16

使用springmvc无法访问静态资源如何解决呢,首先每个服务器都有自己默认的web.xml,如果项目中有自定义的web.xml,则默认的web.xml会与项目中的web.xml一起起到作用,如果两者有路径上的冲突,则自定义web.xml优先,由于默认的web.xml主要用于访问静态资源(js ,css,HTML等),而项目中自定义的web.xml主要访问动态资源(jsp),所以起了冲突无法访问静态资源,只要更改自定义web.xml里的处理器映射里的/改为*.do就可以解决问题了,然后访问路径的后缀名上面加

2021-09-16 00:53:43 51

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除