自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql压缩包的安装配置过程

1.参见https://www.jb51.net/article/138982.htm2.mysql的登录密码:5nH4odrrs5/&3.当mysql的密码不记得的时候,可以参考下面的https://jingyan.baidu.com/article/ff411625efbd2012e4823730.htmlhttps://www.cnblogs.com/iampkm/archive/2017/11/07/7797703.html4.密码过期的解决方案以管理员的方式进入到cmd,然后输

2020-07-07 15:52:02 171

原创 工作中使用到的一些工具类(持续更新中~~~~)

【java.util.Objects】Objects.nonNull(数据):判断数据是否为空,代码如下:if(Objects.nonNull(对象)){}【org.springframework.beans.BeanUtils】BeanUtils.copyProperties(a,b):将a的值赋值给b,属性名需要一致才能赋值成功,代码示例如下:A a = new A();B b = ...

2020-07-03 11:22:26 227 2

原创 Android NDK 编译Pjsip

Android NDK 编译PjsipAndroid NDK 编译Pjsip这网站很多android的工具资源都可以下载到:http://tools.android-studio.org/index.php/sdk/Pjsip官网在编译Android版本时,已经做了非常详细的说明。按照官网的指导,肯定是可以编译成功的。官网编译指导:https://trac.pjsip.org/repos/wiki/Getting-Started/Android一、环境资源准备 1)、Ubuntu 14

2020-07-03 11:20:13 931 1

原创 莫名的请求重复

最近公司需要开发可视对讲系统,门口机使用Android系统。再调试过程中出现一个很奇怪的现象:门口机呼叫http请求云端两次,触发只有一次。就此展开一系列查找。。。。先排查云端问题:1.请求由NG转发,NG转发是否有问题?2.NG装发到云端网关,云端网关路由是否有问题?3.有网关转发到具体业务微服务,业务服务是否有问题?触发一次,NG收到两次请求、网关收到两次、业务服务收到两次。由此可确定是Android程序有问题。最终:发现Android程序在拦截器时请求两次。问题解决在这个过程中也学会了

2020-06-19 18:42:18 329

原创 线程面试问题(一)

1.子线程循环 10 次,接着主线程循环 100,接着又回到子线程循环 10 次,接着再回到主线程又循环 100,如此循环 50 次。public class ThreadTest1 { /** * 子线程循环10次, * 主线程循环100次 * 子线程再次循环10次 * 主线程再次循环100次 * 如此循环50次 * @pa...

2020-05-06 17:28:15 108

原创 Java8新特性 - (强大的 Stream API)

StreamJava8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 Stream API(java.util.stream.*)。Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stre...

2020-01-07 10:54:19 358

原创 Java8新特性 - (方法引用与构造器引用)

方法引用当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!(实现抽象方法的参数列表,必须与方法引用方法的参数列表保持一致!)方法引用:使用操作符 “::” 将方法名和对象或类的名字分隔开来。如下三种主要使用情况:对象::实例方法类::静态方法类::实例方法例如://1(x) -> System.out.println(x);等同于System....

2020-01-04 17:41:09 106

原创 Java8新特性 - (函数式接口)

什么是函数式接口只包含一个抽象方法的接口,称为函数式接口。1 可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明)。2 我们可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口。...

2020-01-04 17:18:19 106

原创 MQTT订阅和发送实战(Java)

本列子使用MQTT+EMQX+Springboot1.在pom.xml中引入依赖 <!-- mqtt --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-int...

2020-01-04 16:52:28 1602 1

原创 Java8新特性 - (Lambda表达式)

为什么使用Lambda表达式Lambda 是一个匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。从匿名内部类到Lambda的转换Lambda 表达式语法Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为 “->”...

2020-01-02 18:51:55 106

原创 Java8新特性(1) -阅读指引

写在前面的话:我写博客的目的是为了学习,有时候自己的自控力不强,记忆力也不好,通过写文章不仅仅能够理清楚自己的思路,督促自己学习,同时也能够为以后的复盘做铺垫近段时间,公司很多人都在使用Java8的新特性开发,所以也有了兴致学习一下。我将从以下几个部分进行学习和记录1.Lambda 表达式2. 函数式接口3. 方法引用与构造器引用4. Stream API5. 接口中的默认方法与静...

2020-01-02 17:41:36 93

原创 一篇搞定MQTT

术语概述MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。MQTT是底层传输协议基础设施。客户端使用它连接服务端。它提供有序的、可靠的、双向字节流传输。应用消息 :MQTT协议通过网络传输应用数据。应用消息通过...

2019-12-27 15:25:05 2455 4

原创 GitHub使用(八)

1.登录https://github.com/注册自己的账号2.创建远程库上面的地址就是仓库地址3.打开Git命令行创建远程库地址别名git remote -v 查看当前所有远程地址别名git remote add [别名] [远程地址]推送git push [别名] [分支名]克隆git clone [远程地址]...

2019-11-27 14:13:29 1052

原创 Git基本原理(七)

1、哈希哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几个共同点:①不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。②哈希算法确定,输入数据确定,输出数据能够保证不变③哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大④哈希算法不可逆Git 底层采用的是 SHA-1 算法。哈希算法可以被用来验证文件。原理如下图所示...

2019-11-27 10:46:16 122

原创 Git分支管理(六)

1、什么是分支?在版本控制过程中,使用多条线同时推进多个任务。2、分支的好处?同时并行推进多个功能开发,提高开发效率各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。3、分支操作创建分支git branch [分支名]查看分支git branch -v切换分支git checkout [分支名]合并分支1.第一步:切换...

2019-11-27 09:42:08 91

原创 Git 命令行操作(五)

1、本地库初始化首先在你需要创建项目的文件夹所在处邮件选择Git Bash Here,打开命令行窗口,输入命令:git init这样在相应文件目录下就会生成一个.git的目录,.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。2、设置签名形式:用户名:tomEmail 地址:goodMorning@163.com作用:区分不同开发人员的身份辨析:这里设置...

2019-11-27 09:29:40 119

原创 Git结构(四)

1、Git结构2、Git和代码托管中心代码托管中心的任务:维护远程库局域网环境下:GitLab 服务器外网环境下:GitHub、码云3、本地库和远程库团队内部协作跨团队协作...

2019-11-26 14:59:08 104

原创 Git简介(三)

1、Git简史2、Git官网和logo官网地址:https://git-scm.comLogo:3、Git的优势 大部分操作在本地完成,不需要联网 完整性保证 尽可能添加数据而不是删除或修改数据 分支操作非常快捷流畅 与 Linux 命令全面兼容4、Git的安装①从官网上下载Git安装包,之后解压进行安装②③④⑤⑥⑦⑧⑨⑩至此...

2019-11-26 11:49:22 114

原创 版本控制以及工具简介(二)

版本控制简介工程设计领域中使用版本控制管理工程蓝图的设计过程。在 IT 开发过程中也可以使用版本控制思想管理代码的版本迭代。版本控制工具集中式版本控制工具:CVS、SVN、VSS……分布式版本控制工具:Git、Mercurial、Bazaar、Darcs……版本控制工具应该具备的功能协同修改多人并行不悖的修改服务器端的同一个文件。数据备份不仅保存目录和文件的当前状态,还...

2019-11-26 11:29:57 215

原创 Git&GitHub学习大纲介绍(一)

该篇主要是Git和GitHub学习的大纲介绍,之后会按照大纲进行内容说明,有兴趣的小伙伴可以接着看哦

2019-11-26 11:13:03 182

原创 18.zuul路由网关

Zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。提供: 代理...

2019-11-21 17:28:07 88

原创 17.服务监控hystrixDashboard

除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Spring Cloud也提供了Hystri...

2019-11-21 16:35:45 147

原创 16.Hystrix断路器(服务降级)

服务降级处理是在客户端实现完成的,与服务端没有关系1.修改microservicecloud-api工程,根据已经有的DeptClientService接口新建一个实现了FallbackFactory接口的类DeptClientServiceFallbackFactory@Componentpublic class DeptClientServiceFallbackFactory imple...

2019-11-21 14:30:00 131

原创 15.Hystrix断路器(服务熔断)

服务熔断熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败就会启动熔断机制。...

2019-11-21 11:43:52 163

原创 14.Hystrix断路器(一)

分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”.对于高流量的应...

2019-11-21 11:19:20 128

原创 13.Feign负载均衡

Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和R...

2019-11-21 10:40:07 96

原创 12.Ribbon自定义负载均衡算法

1.修改microservicecloud-consumer-dept-802.主启动类添加@RibbonClient在启动该微服务的时候就能去加载我们的自定义Ribbon配置类,从而使配置生效,形如:@RibbonClient(name=“MICROSERVICECLOUD-DEPT”,configuration=MySelfRule.class)3.新建自定义Robbin规则类(MyS...

2019-11-21 09:08:15 272

原创 11.Ribbon核心组件IRule

IRule:根据特定算法中从服务列表中选取一个要访问的服务RoundRobinRule:轮询RandomRule:随机AvailabilityFilteringRule:会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问WeightedResponseTimeRule:根据平均响应时间计算所有服务的权重,响应时...

2019-11-20 17:45:37 94

原创 10.Ribbon负载均衡(二)

Ribbon负载均衡1.架构说明Ribbon在工作时分成两步第一步先选择 EurekaServer ,它优先选择在同一个区域内负载较少的server.第二步再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。其中Ribbon提供了多种策略:比如轮询、随机和根据响应时间加权。2.参考microservicecloud-provider-dept-8001,新建两份,...

2019-11-20 17:31:01 104

原创 9.Ribbon负载均衡(一)

概述Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Rib...

2019-11-20 16:27:09 101

原创 8.Eureka集群实战

原理说明基本原理上图是来自eureka的官方架构图,这是基于集群配置的eureka;处于不同节点的eureka通过Replicate进行数据同步Application Service为服务提供者Application Client为服务消费者Make Remote Call完成一次服务调用服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka S...

2019-11-20 15:20:36 164

原创 7.作为服务注册中心,Eureka比Zookeeper好在哪里

作为服务注册中心,Eureka比Zookeeper好在哪里著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。因此Zookeeper保证的是CP,Eureka则是AP。Zookeeper保证CP当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注...

2019-11-19 18:07:18 98

原创 6.微服务Eureka服务发现

1.对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息2.修改microservicecloud-provider-dept-8001工程的DeptController @Autowired private DiscoveryClient client; @RequestMapping(value = "/dept/discovery", method = Req...

2019-11-19 18:02:40 134

原创 5.Eureka自我保护机制

由上章的内容,相信大家都看到了这里有一串红色的,这就是自我保护机制给出的提示信息什么是自我保护模式?默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,此时本不应该注销这个...

2019-11-19 17:42:29 146

原创 4.微服务之Eureka服务注册

是什么SpringCloud封装了netflix公司开发的Eureka模块来实现服务注册与发现(可以对比zookeeper),netflix在设计Eureka时遵循的是AP原则(CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得)Eureka的基本架构...

2019-11-19 17:35:24 187

原创 3.微服务之RestTemplate项目实战

以Dept部门模块做一个微服务通用案例Consumer消费者(Client)通过rest调用Provider生产者(Server)提供的服务Ecplise+SpringBoot+mybatis+mysql +maven(父子项目)首先复习下maven父子项目结构(一个project带着多个module子模块):---- app-parent 一个父项目(app-parent)聚合很...

2019-11-15 17:24:55 213

原创 2.SpringCloud入门概述

是什么SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工...

2019-11-15 11:08:59 89

原创 1.微服务概述

微服务是什么将传统的一站式应用根据业务拆分成一个个单一的服务,能够彻底解耦,一个服务解决一件事,能够自行运行和销毁,拥有自己独立的数据库。微服务与微服务架构微服务:强调的是服务大小,关注某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,狭义的讲,可以看作Eclipse里面一个个微服务工程/或者module。微服务架构:是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服...

2019-11-14 20:20:56 190

原创 java架构路线

一:底层源码分析二:工程化与工具Maven,项目管理Jenkins,持续集成Sonar,代码质量管理Git,版本管理三:分布式架构四:微服务架构五:性能优化...

2019-11-05 11:26:54 254

原创 jdk安装配置后找不到javac命令

##步骤安装后的目录1.计算机->右键->属性->环境变量如图:2.新建Java_Home,输入E:\Java\jdk1.8.0_171(你自己的jdk所在路径)3.新建CLASSPATH输入.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;注意:最前面有一个英语的点和分号4.编辑path,添加%JAVA_...

2019-10-30 21:43:16 2503

空空如也

空空如也

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

TA关注的人

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