- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 05-Mycat的概念
数据切分后,每个分片节点(dataNode)不一定都会独占一台机器,同一机器上面可以有多个分片数据库,这样一个或多个分片节点(dataNode)所在的机器就是节点主机(dataHost),为了规避单节点主机并发数限制,尽量将读写压力高的分片节点(dataNode)均衡的放在不同的节点主机(dataHost)。前面讲了数据切分,一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则,数据切分选择合适的分片规则非常重要,将极大的避免后续数据处理的难度。...
2022-07-27 09:45:07
182
原创 GIT rebase 命令使用
1)首先同步服务器上的代码,执行命令2)在当前分支 执行 rebase 命令注意:HEAD 后接的数就表示需要合并多少条commit,执行命令后就会出现如下界面3)将除第一个外pick 改 为s 然后wq保存4)修改commit 信息 之后 wq保存这样就两条commit 合并成一条了通过rebase 解决冲突,由于是做变基 所以会使得我们的整个提交记录看起来干净很多1)执行命令通过上面的命令 将目标分支的代码 合到我们自己的分支2)解决冲突命令执行完后会出现冲突,这个时候我们可以去IDE
2022-06-30 17:40:04
795
1
原创 SpringBoot + Vue Linux简易部署流程
SpringBoot + Vue Linux简易部署流程1 准备工作首先需要一台Linux 服务器,并且服务器中需要安装如下内容:(建议与开发版本保持一致)1)jdk2)tomcat可以使用yum命令进行安装,如还需要其他内容可继续自行安装2 打包代码2.1 后端代码1)确认自己本地代码 所有内容均不包含localhost 以及 127.0.0.1,若存在则修改为远程服务器ip 如数据库,MQ均可放置在服务器中2)在IDEA中直接进行打包,打包后的jar包会在target文件夹
2022-04-06 10:26:36
1598
2
原创 JDK1.8 新特性 之 Stream 流使用方法
Stream说明:Stream(流)是一个来自数据源的元素队列并支持聚合操作并行流(parallelStream ):多个线程同时运行顺序流(stream):使用主线程,单线程作用:写出高效率、干净、简洁的代码在 Java 8 中, 集合接口有两个方法来生成流:stream() − 为集合创建串行流。parallelStream() − 为集合创建并行流。forEachList<String> strings = Arrays.asList("abc", "", "
2021-12-02 00:13:13
381
原创 01-微服务的概念
微服务的概念web系统的架构演变整个演变阶段:单体模式-垂直应用架构模式-SOA(面向服务架构模式)-微服务架构单体模式特点:系统绝大多数都是B/S架构 ,系统中既包含前端页面,又包含后台功能。优点:1、系统开发结构简单,迅速2、部署,上线简单3、成本低:一台机器安装:tomcat + mysql + redis + ……缺点:1、功能的耦合度高,扩展性差2、不稳定,功能之间可能相互影响,一个地方可能导致整个项目都会崩溃3、做集群,做分布式非常的不方便4、可能存在资源浪费垂直应
2021-04-27 10:19:14
145
原创 03-注册中心以及服务注册
注册中心以及服务注册注册中心:是一个专用用来完成微服务的注册,以及服务发现的东西它采用的模式:发布/订阅模式产品:Eureka(国外的),Nacos(国内阿里巴巴),ZooKeeper(动物园管理员)这种产品非常的多,具体使用情况具公司的情况具体使用EurekaEureka是SpringCloud体系中,专门用来完成服务的注册和发现的组件。Eureka组件分为2个部分:1、Eureka-Server(注册中心)2、Eureka-client(客户端)当前目前,Eureka已经从2.0开始,不
2021-04-13 22:43:43
318
1
原创 04-微服务业务准备
微服务业务准备以基础服务,用户服务为例基础微服务1、创建基础微服务在创建时,需要导入以下依赖关系!2、配置父子关系3、创建对应的数据库SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for auction_info-- ----------------------------DROP TABLE IF EXISTS `auction_info`;CREATE TABLE `
2021-04-13 22:43:28
141
1
原创 05-微服务相互调用-RestTemplate
RestTemplate很LOW,作为了解RestTemplate 有Spring框架提供的一个用于 后端服务器模拟发送HTTP请求的一种技术它支持所有的HTTP标准方法,包含:GET,POST,PUT,DELETE调用第3方接口见:《01-Spring项目调用外部服务器》调用子系统的接口1、在基础微服务中,暴露一些接口在marketmag/controller中/** * 市场管理表现层 * 对于前端/微服务来讲,这就是暴露出来的接口 */@RestController@Req
2021-04-13 22:43:09
383
原创 06-微服务相互调用-Ribbon
微服务相互调用-Ribbon稍微LOW,也是不常用的技术RestTemplate->Ribbon前面,已经通过RestTemplate可以实现微服务之间的相互调用,但是RestTemplate有一定的问题,问题:1、必须要确定的具体地址。2、如果具体地址出问题了,就无法正常的做自动切换。3、微服务都是以集群的方式来部署,无法去选择集群中其他地址解决方案RibbonRibbon概述Ribbon是NetFlex的一个负载均衡器,例外它还可以同样使用RestTemplate完成对微服务之间的调
2021-04-13 22:42:53
473
原创 07-微服务相互调用-OpenFeign
微服务相互调用-OpenFeign问题前面上课讲的RestTemplate ,Ribbon都存在这么一个问题:代码耦合度很高?解决方案使用面向接口编程,这玩意是专门用来松散耦合度OpenFeign,它就是一种典型的接口式编程方案,从而可以做到微服务之间相互调用时,松散耦合关系Feign是Netflix开发的声明式,模板化的HTTP客户端。Feign可帮助我们更加便捷,优雅的调用HTTP API。在SpringCloud中,使用Feign非常简单——创建一个接口,并在接口上添加一些注解,代码就完
2021-04-13 22:42:40
1193
原创 08-微服务相互调用-OpenFeign(续)
微服务相互调用-OpenFeign(续)OpenFeign对PUT提交的支持被调用方micro-base-server中,MarketController /** * 修改接口 * @param marketInfo * @return */ @PutMapping(value = "/{id}",produces = MediaType.APPLICATION_JSON_VALUE) public String updateMarket(
2021-04-13 22:42:17
369
原创 09-摊位管理系统-OpenFeign调用
摊位管理系统-OpenFeign调用业务需求:租户需要查看 摊位的竞拍信息租户所在的用户微服务,需要调用摊位所在的基础微服务基础微服务接口ActionController /** * 发布查询所有有效的竞拍活动 * @return */ @GetMapping(value="/all",produces = MediaType.APPLICATION_JSON_VALUE) public String findAll(){ List
2021-04-13 22:42:02
175
原创 10-微服务相互调用-OpenFeign(负载均衡)
OpenFeign(负载均衡)OpenFeign是对Ribbon的封装,那么说明:Ribbon的那套负载均衡机制,同样适用于OpenFeign默认也是轮询方式配置方式,参考Ribbon的负载均衡配置方式
2021-04-13 22:41:47
131
原创 11-微服务相互调用-OpenFeign(超时控制)
OpenFeign调用的超时控制超时控制Ribbon在调用时,可以设置2个时间默认Feign客户端只等待1秒钟,但是服务端处理需要超过1秒钟,导致Feign客户端不想等待了 ,直接返回报错。为了避免这样的情况,有时候我们需要设置Feign客户端的超时控制。可以在ymI文件中开启配置全局配置# ribbon的全局时间配置ribbon: ConnectTimeout: 250 # Ribbon的连接超时时间(毫秒) ReadTimeout: 2000 # Ribbon的数据读取超时时间(毫
2021-04-13 22:41:21
505
原创 12-微服务相互调用-OpenFeign(日志打印)
OpenFeign(日志打印)Feign提供了日志打印功能,我们可以通过配来调整日志级别,可以让我们程序员查看Feign中Http请求的细节。日志级别NONE【性能最佳,适用于生产】:不记录任何日志(默认值)BASIC【适用于生产环境追踪问题】:仅记录请求方法、URL、响应状态代码以及执行时间HEADERS:记录BASIC级别的基础上,记录请求和响应的header。FULL【比较适用于开发及测试环境定位问题】:记录请求和响应的header、body和元数据。具体配置打开调用方的applica
2021-04-13 22:41:11
374
原创 13-微服务熔断器-Hystrix概念
熔断器-Hystrix概念通常情况,我们用Ribbon或OpenFeign实现微服务相互调用时,它默认都有2个超时时间当然,默认情况下:ConnectTimeout:250毫秒 ,ReadTimeout:1000毫秒由于,设置了上述的2个时间,在微服务调用时,就有可能会超时,超时就有可能会出问题严重时,可能产生“服务雪崩”问题服务雪崩在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者
2021-04-12 23:06:13
199
原创 14-微服务熔断器-Hystrix落地
Hystrix落地Hystrix一般是配置OpenFeign来使用,当然也可以用于Ribbon(自己去研究)导入Hystrix的依赖关系在服务的调用方,添加Hystrix的依赖关系<!-- 导入熔断器的启动器--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix
2021-04-12 23:06:01
101
原创 15-微服务熔断器-监控Hystrix-DashBoard
Hystrix-DashBoard(监控)微服务配置了Hystrix熔断规则,Hystrix-DashBoard可以帮我们分析熔断的情况该技术,主要用来帮助项目经理,统计/分析熔断数据创建DashBoard的微服务导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta
2021-04-12 23:05:50
119
原创 16-微服务网关-Zuul概念
微服务网关-Zuul在学习完前面的知识后,微服务架构已经初具雏形。但还有一些问题:不同的微服务一般会有不同的网络地址,客户端在访问这些微服务时必须记住几十甚至几百个地址,这对于客户端方来说太复杂也难以维护。如果让客户端直接与各个微服务通讯,可能会有很多问题:客户端会请求多个不同的服务,需要维护不同的请求地址,增加开发难度加大身份认证的难度,每个微服务需要独立认证因此,我们需要一个微服务网关,介于客户端与服务器之间的中间层,所有的外部请求都会先经过微服务网关。客户端只需要与网关交互,只知道一个网
2021-04-12 23:05:39
91
原创 17.1-微服务网关-Zuul网关超时
Zuul超时解决方案原因是:Zuul使用Ribbon调用其他微服务Ribbon的默认连接时间:500毫秒Ribbon的数据超时时间:1000毫秒导致Zuul调用时,可能抛出504 网关超时的问题解决方案修改application.yml# ribbon的全局时间配置ribbon: ConnectTimeout: 2000 # Ribbon的连接超时时间(毫秒) ReadTimeout: 60000 # Ribbon的数据读取超时时间(毫秒)...
2021-04-12 23:05:15
603
1
原创 17-微服务网关-Zuul路由落地
微服务网关-Zuul落地当然,这个技术,跟Eureka,Hystrix-DashBoard一样又是项目经理的东西!配一次,一般就不需要再做多次的修正!老蒲说:做项目时,组长来玩网关程序,一般都是一个独立的微服务程序!创建网关微服务创建一个micro-zuul-server程序,并配置maven的父子关系导入相关依赖 <dependency> <groupId>org.springframework.boot</grou
2021-04-12 23:05:03
84
原创 18-微服务网关-Zuul过滤器落地
Zuul网关过滤器Zuul它包含了两个核心功能:对请求的路由和过滤。其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础;而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。其实,路由功能在真正运行时,它的路由映射和请求转发同样也由几个不同的过滤器完成的。所以,过滤器可以说是Zuul实现API网关功能最为核心的部件,每一个进入Zuul的HTTP请求都会经过一系列的过滤器处理链得到请求响应并返回给客户端。Zuul 中的过滤器跟我们之前使用的 ja
2021-04-12 23:04:44
129
原创 19-JWT令牌认证技术
JWT令牌认证技术Java Web Token (全称)专门用来替换:Cookie + Session的应用状态管理方式,通常适合前后端分离的项目**应用程序的状态:**后端服务器和浏览器相互识别的内容传统应用状态管理的缺陷先问个问题大家在2,3阶段学习时,我们怎么样去管理应用程序的状态?后端服务器Tomcat如何知道你发的请求是你的浏览器发的,它不是其它浏览器发的?答案:Cookie +Session缺陷前端只能是浏览器或者有Cookie的前端技术应用程序的服务器在横向扩展时,需要
2021-04-12 23:04:28
194
原创 20-JWT令牌生成
JWT令牌的生成什么时间生成令牌?答案:登录成功的时候完成登录业务1、创建micro-permission-server库SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for admin_info-- ----------------------------DROP TABLE IF EXISTS `admin_info`;CREATE TABLE `admin_info` (
2021-04-12 23:04:06
376
原创 21-JWT令牌认证与置换
JWT令牌的认证与置换令牌的产生是在具有登录服务的微服务上,而令牌的校验是在网关服务上对其进行校验网关校验JWT在网关过滤器IdentityAuthFilter中 /** * 具体的过滤器规则 * @return * @throws ZuulException */ @Override public Object run() throws ZuulException { System.out.println("执行过滤方
2021-04-12 23:03:45
262
1
原创 Java常用框架笔记(1)
Linux操作系统重点在于使用,理论可以几乎忽略学习原因:我们一般是在Windows上开发,Linux上去做部署市面上的常见的操作系统Windows系列,unix系统,Linux系统,mac系统开发场景Windows系列,mac系统部署场景unix系统(中大型服务器使用),收费Linux系统,免费Windows和Linux的区别(了解)1、Windows是微软收费闭源的操作系统,Linux是免费开源的一套系统2、Windows就性能比Linux差,因为Windows内置了太多的应用
2021-03-23 09:55:17
805
1
原创 笔记MySQLJavaweb
MySQL MySQL数据库:就是指数据库管理系统 数据库:指文件夹,在目录中的位置会有专门存储数据的文件夹 表:其实指文件,数据库中的某一个文件MySQL数据库的服务开启与关闭services.mscdos窗口 输入 启动 :net start mysql 停止:net stop mysqlMySQL数据库的登陆和退出登陆:mysql -uroot -p密码退出:exitSQL 结构化查询语言SQL的工业化标准 就是一套规范,使用这套规范
2021-03-23 09:49:12
811
原创 正则表达式入门
正则表达式入门:作用:用于进行匹配验证查找等的例如:表单中的信息验证这一问题,就可用正则表达式完成第一步:记住部分正则表达式规则如何书写:正则表达式规则: \\ 反斜线字符 [abc] 代表a,b,c三个字符中的任意一个 [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \w 单词字符:[a-zA-Z_0-9] ^ 行的开
2020-09-28 17:42:31
70
原创 选择排序
import java.util.Scanner;public class SelectionSort { public static void main(String[] args) { // TODO Auto-generated method stub int a[]=new int[5]; Scanner num=new Scanner(System.in); for(int i=0;i<5;i++){ a[i]=num.nextInt(); } int.
2020-07-28 22:19:13
67
原创 LeetCode两数之和Java
一、暴力查找方法,时间复杂度O(n^2)class Solution { public int[] twoSum(int[] nums, int target) { for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++){ if(nums[j]==target-nums[i]){ return new
2020-07-28 22:18:57
106
原创 Java冒泡排序
import java.util.Scanner;public class bub { public static void main(String[] args) { // TODO Auto-generated method stub int a[]=new int[5]; Scanner num=new Scanner(System.in); for(int i=0;i<5;i++){ a[i]=num.nextInt(); } int result;
2020-07-28 13:32:39
72
原创 简易Mybatis框架增删查改
简易Mybatis框架增删查改在IDEA中创建一个maven项目pom.xml<?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
2020-05-12 23:02:51
133
原创 Java短信验证码功能简单实现
Java短信验证码功能简单实现在阿里云注册账号,添加用户组与用户,并对用户组进行设定以下权限,将用户添加进用户组在首页搜索短信服务,点击打开,添加签名与模板,设置为验证码模式,注意理由描述需要正当理由(如公司开发需求等)设置成功后会得到accessKeyId与secret注意保存,待审核通过后开始代码编写创建maven项目(IDEA创建较为方便)在pom.xml下导入以下依赖 <dependencies> <dependency>
2020-05-09 23:06:47
340
原创 org.apache.ibatis.io.Resources无法导入
org.apache.ibatis.io.Resources无法导入检查pom.xml当中的依赖是否存在,如果不存在添加即可。 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> ...
2020-05-06 12:13:10
6799
2
原创 Mybatis入门配置与简单案例
Mybatis入门配置第一步:创建maven项目用IDEA可以快捷创建第二步创建实体类与dao的接口实体类package com.ith.domain;import java.io.Serializable;public class User implements Serializable { private Integer userid; private...
2020-05-06 01:01:24
162
原创 python 中JSON 的数据解析
JSON 是一种轻量级的数据交换格式其中有两个函数json.dumps(): 对数据进行编码。json.loads(): 对数据进行解码。其中需要注意转换后的数据类型是什么(这个由于有点过多需要自己去查询)下面是实列的运用对数据解码import jsondata = {‘num’: 1,‘language’: ‘chinese’,‘aaa’: ‘abc’}json_st...
2018-10-31 17:47:49
200
原创 JDK与eclipse的安装教程完整版
JDK和eclipse下载地址: JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html eclipse下载网址:https://www.eclipse.org/downloads/ (64位电脑选择64位的下载,就是那个Windows x64) 下载后点击安装...
2018-09-09 15:28:48
433
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人