- 博客(54)
- 收藏
- 关注
原创 小程序开发001
每个页面下的私有json配置文件,如果没有配置,则采用全局。每个页面下的私有js配置文件,如果没有配置,则采用全局。每个页面下的css页面,如果没有,采用全局默认配置。ide全局更高级别的配置文件,比project.config.json优先级高。每个页面下的html页面。pages就是页面,下面有多少个目录就有多少个页面。最近心血来潮,想做一个小程序,掌握一门技术。项目发布的时候,需要用到的配置文件。我选择的是个人,先自学。appId如何获知呢?全局的json配置文件。ide全局的配置文件。
2023-07-21 11:47:41
74
原创 工作遇到的坑,锁和事务
背景:在工作中,和金钱打交道,必不可少的会用到锁。我们项目采用的是分布式锁,redission,来做分布式锁。在高并发的情况下,锁和事务在一块,那么就可能会有坑。这个坑就是,锁先释放了,事务还未提交,如果再来一个线程,他拿到锁,但是读取的数据,还是另一个线程未提交的数据。此时就会造成数据库数据错乱。解决方法:先上锁,后开启事务,锁和事务分离。另起一个类去开启事务,事务提交,然后再关锁。正确的示范,事务和锁分离。
2023-05-16 15:32:21
227
原创 linux安装配置nginx
---前置条件:在配置nginx之前确保服务器已经正确配置nginx所依赖的环境1、gccyum install gcc-c++2、PCREyum install -y pcre pcre-devel3、zlibyum install -y zlib zlib-devel4、opensslyum install -y openssl openssl-devel1、官网下载nginx/直接使用wget命令获取官网连接:...
2022-02-08 11:15:13
3456
原创 Spring自带的定时任务处理
1.Spring自带定时任务处理缺点:1.单线程执行,如果存在多个任务执行,只能顺序执行2.方法不能有返回3.方法不能有入参4.此类中不能包含其他带任何注解的方法--这点待验证2.具体执行过程我这里配置的cron是每两秒执行一次。输出的结果:hello java//间隔5秒hello paythonhello jiajia如何改这个单线程执行任务的问题?添加配置类,自定义线程池。修改之后,就是并发执行。这里注意一点:Execut..
2021-11-23 21:19:56
654
原创 微服务实战-从零开始,40网关,Predicates
Predicates网关断言类型在启动的时候,就默认加载了。1.After时间获取方法:2.Before3.Between4.Cookie通过curl命令方式,调用服务不带cookie带cookie5.Headercurl http://localhost:9527/payment/lb -H "X-Request-Id:123"6.Host7.Method请求方式:PO...
2021-11-18 19:40:45
382
原创 微服务实战-从零开始,38gateway根据微服务名实现动态路由
1.回想之前微服务采取的都是集群部署,ribbon来做负载均衡。现在添加了网关拦截,那么现在这里负载均衡通过网关来做2.如何实现?1.改yml配置文件原版配置文件:新版配置文件:标红是配置的关键。配置之后,启动eureka7001 ,payment8001,payment8002,gateway9527输入:http://localhost:9527/payment/lb重新请求一次:默认的轮询负载均衡方式配置成功!...
2021-11-18 17:19:43
124
原创 微服务实战-从零开始,37gateway网关配置方式二,编码配置
gateway路由配置,还可以通过编码配置增加配置类:这样就可以实现和yml配置一样的效果
2021-11-18 16:55:30
301
原创 微服务实战-从零开始,36gateway网关工程搭建-gateway yml文件配置
1.建module2.改pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://m.
2021-11-18 16:32:35
452
原创 微服务实战-从零开始,35SpringCloud Gateway
是什么?Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway一句话:gateway是原zuul1.x版的替代微服务架构中,网关所处位置:Spring Cloud Gateway 具有如下特性:基于Spring Framework 5, Project Reactor 和 Spring Boot 2.0 进行构建;.
2021-11-18 11:59:40
471
原创 手写一个Spring事务管理Demo
什么是Spring事务管理?Spring事务管理,核心思想是帮我们管理数据库链接。传统的执行sql,都是执行sql会从数据库连接池中开启一个连接。是对应的一个连接做sql操作。如果涉及多个sql执行,那么一个连接还好管理。那如果是用mybatis或者hibernate这样的orm框架。我们怎么用一个连接去执行呢?这时就需要spring了。spring提出了DataTransactionalManager这样的容器,来帮我们处理集成了mybatis,hibernate这样框架后的建立一个连
2021-10-08 23:19:54
260
原创 微服务实战-从零开始,34Hystrix图形化界面搭建,dashboard
除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Spring Cloud也提供了Hystrix Dashboard的整合,对监控内容转化成可视化界面。所有Provider微服务提供类(8001/800
2021-10-07 17:11:46
99
原创 微服务实战-从零开始,33Hystrix服务熔断
什么是服务熔断?通俗一点讲,就像家里的保险丝,当超过当前电路所能承受最大范围时,保险丝熔断。在微服务中,当微服务出错,或者调用时间太长时,会先进行服务降级,进而熔断该节点微服务的调用,快速返回响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。服务熔断过程:服务降级--》服务熔断--》恢复链路调用8001服务端,服务熔断1、service配置详解:1)@HystrixProperty(name = "circuitBreaker.enabled",value =
2021-10-07 16:44:34
149
原创 微服务实战-从零开始,32Hystrix实现服务降级,代码解耦
80客户端在controller类写注解的方式过于冗余,我们可以单独分离出来一个类,作为fallback统一处理类。1.在80客户端新建PaymentFallbackService 类实现PaymentHystrixService 接口2.在PaymentHystrixService 设置@FeignClient注解3.启动测试4.模拟8001服务宕机宕机前调用:宕机后调用:调用到了我们定义的fallback方法。这样就实现了代码解耦!...
2021-10-07 10:44:05
117
原创 微服务实战-从零开始,31Hystrix实现服务降级,80客户端
80订单微服务,也可以更好的保护自己,自己也依样画葫芦进行客户端降级保护备注:我们自己配置过的热部署方式对java代码的改动明显,但对@HystrixCommand内属性的修改建议重启微服务1.客户端80yml配置2.客户端主启动类添加3.业务类发生超时,则调用fallback方法2若正常则调用1...
2021-10-06 12:16:16
85
原创 微服务实战-从零开始,30利用Hystrix实现服务降级fallback,服务端
降级配置注解:@HystrixCommand8001端:1.设置自身调用超时时间的峰值,峰值内可以正常运行2.超过了需要有兜底的方法处理,做服务降级fallback1)8001端,服务端处理服务降级,Service方法上添加@HystrixCommand 注解@HystrixProperty 注解:标识产生服务降级的临界条件。当3秒内是正常的。调用方法1当超过3秒时,调用方法22)主启动类上添加@EnableCircuitBreaker注解3)测试调用服务端.
2021-10-06 11:48:04
169
原创 微服务实战-从零开始,29Hystrix,80客户端demo
消费端80代码:1.建moudle2.pom<dependencies> <!--openfeign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </depend
2021-10-06 11:47:09
78
原创 微服务实战-从零开始,28Hystrix实例,服务端demo
服务端8001:1.建Module2.改pom<dependencies> <!--hystrix--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </d
2021-10-04 17:07:47
107
原创 微服务实战-从零开始,27Hystrix
学习:https://github.com/Netflix/Hystrix/wiki/How-To-UseHystrix官宣,停更进维Hystrix是什么?Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。“断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方.
2021-10-04 16:03:16
57
原创 微服务实战-从零开始,26OpenFeign日志打印功能
OpenFeign日志打印功能是什么?Feign 提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解 Feign 中 Http 请求的细节。说白了就是对Feign接口的调用情况进行监控和输出日志级别:NONE:默认的,不显示任何日志;BASIC:仅记录请求方法、URL、响应状态码及执行时间;HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息;FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据。开启openFeig...
2021-10-04 15:43:18
146
原创 微服务实战-从零开始,25OpenFeign超时机制
OpenFeign默认超时时间是1秒,如果调用客户端调用服务端时间超过1秒,就报错。下面演示:8001 提供接口,超时3秒服务端8001代码:先自测一下服务端:客户端80代码:如何解决?客户端设置读取资源超时时间设置成功,测试!这次成功!...
2021-10-04 15:27:30
205
原创 微服务实战-从零开始,24OpenFeign
OpenFeign:Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可Feign能干什么?Feign旨在使编写Java Http客户端变得更容易。前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所
2021-10-04 11:40:13
93
原创 微服务实战-从零开始,23ribbon负载均衡策略
默认是轮询其他还有:如何修改默认的负载均衡策略?1.新增配置类这里注意:官方文档明确给出了警告:这个自定义配置类不能放在@ComponentScan所扫描的当前包下以及子包下,否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,达不到特殊化定制的目的了。所以我们要在springcloud包之外新建包,myrule之后创建自己的配置类:启动类上配置开启自定义ribbon负载均衡策略的开关启动测试:发现现在调用变成随机策略。测试成功!...
2021-10-04 00:10:58
111
原创 微服务实战-从零开始,22Ribbon
ribbon是什么?Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自...
2021-10-04 00:10:30
73
原创 微服务实战-从零开始,21三个注册中心队比
zookeeper,consulCP架构当网络分区出现后,为了保证一致性,就必须拒接请求,否则无法保证一致性结论:违背了可用性A的要求,只满足一致性和分区容错,即CPeurekaAP架构当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。结论:违背了一致性C的要求,只满足可用性和分区容错,即AP...
2021-10-04 00:10:23
46
原创 微服务实战-从零开始,24ribbon负载均衡算法,自定义负载均衡算法
1.轮询算法原理:每次服务重启后,访问次数从1开始总计数:2 ,8001 8002list 2 instance访问次数:第一次,1%2 = 1,list.get(1);第二次,2%2 = 0,list.get(0);...第n次,n%2 = x,list.get(x);ribbon 轮询算法源码:2.自定义负载均衡算法1.新增接口测试,8001,8002,controller2.删除掉配置类上的注解3.自定义接口4.实现类...
2021-10-04 00:09:07
103
原创 微服务实战-从零开始,20Consul为注册中心,服务提供和消费端demo
一、payment8006服务提供方1.建module2.改pom3.改yml4.创建主类5.写controller6.测试http://localhost:8006/payment/consul二、消费端80demo1.建module2.改pom3.改yml4.创主类5.写configBean6.写controller7.测试...
2021-10-03 19:50:04
73
原创 微服务实战-从零开始,19微服务注册与发现,consul
官网:https://www.consul.io/intro/index.html中文版:https://www.springcloud.cc/spring-cloud-consul.htmlconsul能做什么?下载:https://www.consul.io/downloads.html然后启动,登录输入如下地址:http://localhost:8500/ui/dc1/services...
2021-10-03 19:43:29
74
原创 微服务实战-从零开始,18新增消费者order80,调用zk服务
1.建module2.改pom3.改yml4.创主类5.controller6.测试
2021-10-03 17:01:45
45
原创 微服务实战-从零开始,17新增8004payment配置zookeeper作为我们的注册中心
1.新建支付moudle cloud-provider-payment80042.改pom3.改Yml4.主启动6.测试解决:jar包冲突。spring-cloud-starter-zookeeper-discovery 自带的zookeeper的版本是3.5.3.beta而我们服务器安装的是3.4.9再次启动测试,成功!...
2021-10-03 15:14:57
58
原创 Linux-暴露端口,并重启防火墙
我们要暴露一个2181的端口。cd /etc/firewalld/zonesvim public.xml暴露端口,并重启防火墙systemctl restart firewalld
2021-10-03 15:09:09
156
原创 Linux安装zookeeper
1.下载zookeeper资源,一般官网都有https://zookeeper.apache.org/releases.html上传到我们的虚拟机中然后解压:tar -zxvfzookeeper-3.4.9.tar.gz2.修改配置文件这点必须得改。不改启动报错!!cp/usr/local/myapps/zookeeper-3.4.9/conf/zoo_sample.cfg/usr/local/myapps/zookeeper-3.4.9/conf/zoo.cfg3.启...
2021-10-03 10:43:41
38
原创 新建了虚拟机后需要做的事
1.修改网卡配置cd /etc/sysconfig/network-scriptsviifcfg-ens33保存退出2.重启网卡service network restart3.查看虚拟机ipyum install net-toolsifconfig4.安装jdk我一般将软件都安装在/usr/local/myapps/解压jdk.tartar -zxvf jdk-8u291-linux-x64.tar.gz5.配置环境变量/usr/..
2021-10-03 10:34:28
570
原创 微服务实战-从零开始,16如何关闭Eureka自我保护机制
1.eureka服务端改yml配置文件2.eureka client端改yml配置文件3.测试当修改完毕之后,eureka服务端启动,客户端启动。当终止client后,发现eureka服务端立马删除了该8001client.关闭了eureka的自我保护机制。这里只是了解,并不推荐配置!...
2021-10-03 09:14:34
157
原创 微服务实战-从零开始,15Eureka自我保护
概述保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据,也就是不会注销任何微服务。如果在Eureka Server的首页看到以下这段提示,则说明Eureka进入了保护模式:EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT.RENEWALS ARE L..
2021-10-03 00:26:53
66
原创 微服务实战-从零开始,14服务发现
服务发现:discovery如果想获取注册服务的相关信息,那么就需要通过DiscoveryClient 来获取这里注意:DiscoveryClient 是import org.springframework.cloud.client.discovery.DiscoveryClient 包下。通过DiscoveryClient.getServices();就可以获取eureka注册中心注册了多少服务。通过DiscoveryClient.getInstances("CLOUD-PA.
2021-10-03 00:18:07
128
原创 微服务实战-从零开始,13actuator微服务信息完善,eureka注册中心页面展示细节优化
1.注册中心8001优化了,8002未优化8001:鼠标悬浮,显示ip地址8002:鼠标悬浮,不显示ip地址2.修改配置:添加pom依赖:修改yml文件:8001:8002:
2021-10-02 23:56:25
59
原创 微服务实战-从零开始,12订单微服务集群搭建
1.新建cloud-provider-payment8002 module 参照80012.改pom3.改Ymlserver: port: 8002spring: application: name: cloud-payment-service datasource: type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型 driver-class-name: org.gjt
2021-10-02 22:43:36
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人