Java
文章平均质量分 85
Java技术实战文章
起岸星辰
微信搜一搜【起岸星辰】快速了解最新IT业界资讯,掌握技术实战技能。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring-Cloud之Hystrix
原文: https://blog.vchar.top/java/1624363200.html系统负载过高,突发流量或网络等各种异常情况,常用解决方案如下:限流:对访问量进行限制,防止流量太大直接使整个服务发生故障;熔断:为了防止整个系统故障,停止出现问题的服务的访问;降级:抛弃一些非核心的接口和数据;熔断和降级互相交集:相同点:从可用性和可靠信息出发,为防止系统崩溃;最终让用户体验到的是某些功能暂时不可用不同点:服务熔断一般是下游服务故障导致,而服务降级一般是从整个系统负荷考虑,由调.原创 2021-07-05 09:37:18 · 408 阅读 · 1 评论 -
从原码,反码,补码的设计理念来深入理解其原理
原文:https://blog.vchar.top/base/1611834985.html原码,反码,补码大家都知道,下面通过解析为什么当初要这样设计,让你更透彻的理解它们的原理。文章参考:https://blog.youkuaiyun.com/afsvsv/article/details/94553228https://blog.youkuaiyun.com/wu_nan_nan/article/details/54633506https://www.zhihu.com/question/28685048计.转载 2021-06-11 08:46:28 · 444 阅读 · 0 评论 -
基于雪花算法生成分布式ID(Java版)
原文:https://blog.vchar.top/java/1622548800.htmlSnowFlake算法原理介绍在分布式系统中会将一个业务的系统部署到多台服务器上,用户随机访问其中一台,而之所以引入分布式系统就是为了让整个系统能够承载更大的访问量。诸如订单号这些我们需要它是全局唯一的,同时我们基本上都会将它作为查询条件;出于系统安全考虑不应当让其它人轻易的就猜出我们的订单号,同时也要防止公司的竞争对手直接通过订单号猜测出公司业务体量;为了保证系统的快速响应那么生成算法不能太耗时。而雪花算法.原创 2021-06-07 10:22:11 · 514 阅读 · 1 评论 -
Spring-Cloud之Feign
原文:https://blog.vchar.top/java/1621167133.htmlFeign的引入可以让我们通过接口注解的形式实现服务间的调用,让调用者无需再关心接口地址这些配置,同时对于接口需要的参数能够更清晰地了解,简化了调用的流程。下面我们通过一些Feign的示例带你快速了解如何使用它。示例使用的Spring-Cloud的版本是Hoxton.SR8,Spring-Boot的版本是2.3.4.RELEASE。示例项目的源代码添加相关的依赖feign中已经对ribbon进行集成支持,在.原创 2021-05-31 09:12:27 · 414 阅读 · 0 评论 -
Spring-Cloud之Ribbon
原文:https://blog.vchar.top/java/1620820800.htmlRibbon的引入将为我们解决服务集群部署时需要实现相关的负载均衡的算法,简化服务调用的过程;引入Ribbon后在进行服务调用时只需要指定服务名称即可,无需去关心服务的部署地址以及负载均衡实现。下面我们通过一些Ribbon的示例带你快速了解如何使用它。下面示例使用的Spring-Cloud的版本是Hoxton.SR8,Spring-Boot的版本是2.3.4.RELEASE。示例项目的源代码添加相关的依赖由.原创 2021-05-17 09:27:05 · 390 阅读 · 0 评论 -
Spring-Cloud之Eureka
原文:https://blog.vchar.top/java/1618488000.htmlEureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。 Eureka包含两个组件:Eureka Server和Eureka Client。Eureka Server 负责统一管理.原创 2021-05-13 09:06:23 · 244 阅读 · 0 评论 -
Spring-Cloud-Alibaba之Sentinel
原文:https://blog.vchar.top/java/1615900200.html微服务中为了防止某个服务出现问题,导致影响整个服务集群无法提供服务的情况,我们在系统访问量和业务量高起来了后非常有必要对服务进行熔断限流处理。 其中熔断即服务发生异常时能够更好的处理;限流是限制每个服务的资源(比如说访问量)。spring-cloud中很多使用的是Hystrix组件来进行限流的,现在我们这里使用阿里的sentinel来实现熔断限流功能。sentinel简介这个在阿里云有企业级的商用版本 应.原创 2021-05-13 09:03:05 · 825 阅读 · 0 评论 -
Spring-Cloud-Alibaba之Seata
微服务中不可避免的会发生服务间的调用,这就一定会涉及到事务相关的问题,在单体项目中我们可以直接很方便的实现事务回滚,但是在分布式系统中就不能像以前那么做了,因为各个服务是独立的一套系统; 而要实现跨服务的事务管理系统的复杂度必然会大大增加,因此我们应当尽可能的避免使用分布式事务;对于那种要求不是很严格的可以考虑忽略掉事务的问题,只对重要的数据才做分布式事务。下面我们使用spring-cloud-alibaba套件Seata来实现分布式事务的功能。Seata简介Seata 是一款开源的分布式事务解决方案,原创 2021-05-10 08:48:19 · 865 阅读 · 0 评论 -
Eureka原理剖析
原文:https://blog.vchar.top/java/1620176400.htmlEureka作为微服务中的注册中心,为微服务集群间各个服务进行调用提供寻址的功能,有了它集群间的服务只需要指定服务名称就可以了,无需再去关心服务具体部署的服务器IP,即可正常调用。下面来对其中我们开发中会接触的主要机制的实现原理进行剖析。一些具体细节这里不做详细的分析,只关注如下2个大方向的东西:1.注册相关的机制、2.客户端和服务端的启动流程。Eureka服务端启动流程首先需要说明的是eureka ser.原创 2021-05-06 16:33:17 · 523 阅读 · 0 评论 -
Docker安装Nacos
原文:https://blog.vchar.top/dcs/1614258001.html官方提供有打包好的镜像直接拉取即可;同时也可以自己制作镜像官方说明文档 ;这里我们直接使用镜像仓库中制作好的镜像。# 拉取镜像docker pull nacos/nacos-server单机版部署单机版部署很多简单,直接一条命令即可完成,通过 MODE 来设置使用单机模式;注意如果是多网卡的话需要配置NACOS_SERVER_IP参数来指定IP,否则可能会导致外网无法访问;docker run -d .原创 2021-05-06 08:51:44 · 205 阅读 · 0 评论 -
KMP算法详解
原文:https://blog.vchar.top/acm/1618835400.htmlKMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)。算法分析说明问题:查找一个短的字符串在.原创 2021-04-30 11:08:37 · 504 阅读 · 0 评论 -
Spring-Cloud-Alibaba之Dubbo
在微服务构架中,不可避免的要遇到服务间的调用,目前的方式是通过RPC或者是rest的http接口调用; spring-cloud中很多都使用的feign来做服务调用,在spring-cloud-alibaba的套装中我们使用dubbo来替换掉feign这个组件(使用feign也可以)。下面是集成步骤:相关文档Dubbo官方文档Dubbo的GitHubDubbo官方示例Nacos文档本文示例代码使用示例引入maven相关依赖:<properties> <java原创 2021-04-29 09:03:52 · 3973 阅读 · 0 评论 -
布隆过滤器
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。简单来说就是:当我们通过布隆过滤器判断一个元素在不在集合中时;如果布隆过滤器返回的是在集合中,那么集合中可能没有这个元素;如果布隆过滤器返回的不存在于集合中,那么集合中是一定不存在这个元素的。参考文档https://blog.vchar.top/java原创 2021-04-22 17:31:23 · 2186 阅读 · 1 评论 -
Spring-Cloud-Alibaba之Nacos
在微服务构架中,集群服务间的需要调用时就需要知道各个服务的IP和提供服务的端口等信息,如果每个部署一个服务就配置一次,那么必然时非常麻烦的,因此我们需要一个能够统一管理的东西来解决这个问题,由此诞生了注册中心。每个服务启动后都向注册中心发送自己的服务信息,在需要调用其他服务的时候直接从注册中心里面去获取集群的服务信息。spring-cloud中很多使用的是Eureka来作为注册中心,不过在2018年7月的时候Netflix就宣布停止维护Eureka了。在spring-cloud-alibaba的套装中我原创 2021-04-22 17:03:01 · 307 阅读 · 0 评论 -
使用EDAS时,在启动消费者Ali-tomcat时启动失败,Pandora container stopped. HSF服务启动失败
我开发使用的IntelliJIdea, 找到当前问题所在是在其tomcat日志文件中发现的,因此若你还没去查看过该日志文件建议去查看。该日志文件路径在: C:\Users\tom\.IntelliJIdea2017.3\system\tomcat\项目名\logs在使用阿里的EDAS时,开发中启动消费者的web项目无法启动,控制台打印如下信息:INFO: spas-client-initializer startJM.Log:INFO Init JM logger with Log4jLoggerF原创 2021-04-14 08:58:38 · 1475 阅读 · 0 评论 -
Elasticsearch7学习笔记(下)
Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。本文是在学习 中华石杉老师的 Elasticsearch顶尖高手系列 的视频教程的过程中做的笔记,实际操作使用的Elasticsearch7而非视频教程中使用的版本;现在这套视频教程是免费公开的(网上直接搜索就有),强烈推荐大家去观看学习。Elasticsearch7学习笔记(上)E原创 2021-04-13 17:20:04 · 1774 阅读 · 0 评论 -
Elasticsearch7学习笔记(中)
Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。本文是在学习 中华石杉老师的 Elasticsearch顶尖高手系列 的视频教程的过程中做的笔记,实际操作使用的Elasticsearch7而非视频教程中使用的版本;现在这套视频教程是免费公开的(网上直接搜索就有),强烈推荐大家去观看学习。Elasticsearch7学习笔记(上)E原创 2021-04-13 16:51:03 · 948 阅读 · 0 评论 -
Elasticsearch7学习笔记(上)
Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。本文是在学习 中华石杉老师的 Elasticsearch顶尖高手系列 的视频教程的过程中做的笔记,实际操作使用的Elasticsearch7而非视频教程中使用的版本;现在这套视频教程是免费公开的(网上直接搜索就有),强烈推荐大家去观看学习。Elasticsearch7学习笔记(上)E原创 2021-04-13 15:58:29 · 2129 阅读 · 0 评论 -
Elasticsearch7学习笔记(实战)
在SpringBoot中集成Elasticsearch的使用示例,带你快速上手使用Elasticsearch。添加如下maven依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>注意在这里引入e原创 2021-04-12 08:40:55 · 666 阅读 · 0 评论 -
Docker搭建ELK日志系统
基于Docker搭建ELK日志系统,并在Spring Boot中集成Logstash实现微服务的日志收集。ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件实现日志采集、分析、展示,但并非全部。Elasticsearch官网地址 。Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。Logstash是原创 2021-04-10 19:29:20 · 619 阅读 · 0 评论 -
在struts2+jquery使用AJAX异步提交数据,处理返回的json数据
这几天刚好用到了ajax,在此记录一哈,以免以后忘了jquery的$.post()和$.get()是简单的AJAX ,因此它们只能处理回话成功的请求,而出现异常是抛出;所以当需要对异常处理的时候,最好使用$.ajax();实例如下:记住引入jquery的包以及相关的文件html部分代码代码:$('#btn').click(function(){$原创 2016-11-04 11:15:59 · 597 阅读 · 0 评论 -
支付宝微信合单支付对接说明
微信电商收付通和支付宝互联网平台直付中进件流程、合单支付流程、账单资金冻结、结算、平台抽成对接说明。什么场景下会用到合单支付呢?下面举个例子:最常见的就是商城系统了,比如用户在一笔订单里面选择了多个不同商户的商品, 为了用户体验,在支付的时候肯定是只需要支付一次即可的;如果我们使用传统的方式即实际后台就是一笔订单,直接支付下单即可,这里确实简单了,但是我们在给商户做结算的时候就麻烦了,需要后台去统计相关的财务信息然后再打款给商户; 但是如果不想去做这样复杂的结算步骤,或者是可能刚开始我们的平台名气小,商原创 2021-04-09 10:33:59 · 1768 阅读 · 1 评论 -
APP内嵌网页使用微信或支付宝的H5支付
如何绕过微信或支付宝的H5支付的拦截验证?下面我们从本质上来说明该如何解决这个问题。微信和支付宝的H5支付下单成功后都会返回一个跳转支付的url连接,通过这个连接可以拉起微信或支付宝进行支付操作。如果直接访问,支付宝会有一个中间的页面,而微信有个麻烦的refresh验证问题;那么是否可以跳过这个步骤直接将微信支付宝拉起进行支付呢?网上大部分的教程都是让做安卓和IOS的自己去拦截微信和支付宝的地址进行处理。但是对这种内嵌网页,特别是那种直接通过前端HTML代码生成多端的情况,前端的同学就非常不好操作了;原创 2021-04-09 09:55:26 · 5047 阅读 · 1 评论 -
Spring Boot集成Redis
Redis一个基于内存实现的NoSql数据库,通常将其用于数据缓存以此来减少系统的压力,下面我将在SpringBoot中集成Redis,分别实现Redis单机模式、Redis主从复制、Redis哨兵模式、Redis-Cluster模式在SpringBoot中的集成实现。一、SpringBoot中集成RedisRedis的相关安装教程这里不再赘述,请参考Docker上安装Redis。示例项目源代码https://github.com/vcharfred/spring-demo的Hoxton分支的redis转载 2021-04-09 09:24:52 · 290 阅读 · 0 评论 -
ssm java编程遇到从数据库中查询的时间与存储时间不一致
ssm java编程遇到从数据库中查询的时间与存储时间不一致推荐先去看这篇文章: java编程中遇到的时区与时间问题总结http://blog.youkuaiyun.com/yeahwell/article/details/8559996这几天开发中遇到一个问题:ssm中使用mapper从数据库中查询datetime类型字段,查询结果与存储结果不一致,大约比存储时间多了8个小时左右。网上查了很久都没看见有类转载 2017-03-31 10:29:20 · 7475 阅读 · 1 评论 -
JAVA 实现简单的网络爬虫,获取网站图片
JAVA 实现简单的网络爬虫,获取网站图片要抓取网站的图片或是其他的,需要先分析其中的地址格式,然后在确定使用哪种方法去处理。 这个例子抓取的花瓣网上的图片 需要引入jsoup的jar包用于解析网页中元素 [jsoup官方下载地址]:https://jsoup.org/downloadimport java.io.BufferedReader;import java.io.F原创 2016-12-22 21:23:21 · 1514 阅读 · 0 评论
分享