自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

看山不是山

技术分享交流:JAVA开发、机器学习应用、互联网产品设计、SEO

  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 微服务实战(二十四)分布式日志使用

1.简介ELK是Elasticsearch、Logstash、Kibana的简称Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。 Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 Rabb.

2021-10-23 22:53:30 790 1

原创 微服务实战(二十三)一个微服务架构小项目源码

jfcloud源码:https://gitee.com/zhaojunfu2014/jfcloud介绍基于springcloud的demo实践技术栈:SpringBootMybatisPlusSpringCloudNacosSentinelSpringCloud GatewaySeataSkywalkingSwaggerLombok本项目功能:微服务token校验商品展示服务库存扣减服务余额扣减服务订单服务(下单,扣余额,扣库存 微服务链路调用)分布式事

2020-12-27 23:59:04 1747 1

原创 微服务实战(二十二)devops 实践:jenkins+docker 自动化源码拉取,编译,打包,生成docker镜像,部署容器

什么是devops安装jenkinsjenkins实践devops安装插件:maven、ssh publish创建任务配置git源码库配置maven构建命令配置构建完成后的shell操作完成一次自动化的构建过程

2020-12-23 23:22:45 2023

原创 Docker 内JAVA用SVG代码转PNG , 图片中文乱码问题

场景:使用JAVA的org.apache.batik从SVG代码生成PNG图片public static void convertToPng(String svgCode, OutputStream outputStream){ try { byte[] bytes = svgCode.getBytes("utf-8"); PNGTranscoder t = new PNGTranscoder(); Tra..

2020-11-18 22:04:49 1231

原创 提交给FixedThreadPool线程池的任务没执行完,且整个程序阻塞

坑位描述:用线程池去跑批量任务,总共343个任务,newFixedThreadPool的设置corePoolSize为30。即用 固定30个线程去消费343个任务,并且使用了AQS的发令枪(CountDownLatch)实现在所有任务都结束后,进行程序后续的操作。由于每个任务里都涉及到图片上传云服务器、调用地图API解析商圈位置、地铁距离等一系列"高端"操作,受带宽限制挺大的(地图API里也有并发限制),故整个程序运行起来也是异常缓慢。代码大概如下: final int

2020-10-25 11:56:10 2961

原创 微服务实战(二十一) 从一个秒杀场景的小demo开始

介绍之前的章节主要是把微服务架构的概念,常用组件逐个实际测验。接下来就是开始真正项目实战,整体计划是这样的:1、使用微服务架构实现一个秒杀下单的应用2、集成注册中心、链路追踪、限流断路、聚合API文档等组件,整合到统一的界面,实现单点登录3、模拟压力测试,针对互联网高并发场景进行实际测验和性能优化4、容器化部署,在服务器上进行真实部署(规模在10台以上),实践CI / CD 以及真实高并发目前DEMO是利用碎片时间开发,等到完整后再开放源码应用截图业务部分拆分为4个.

2020-09-20 00:28:38 681 2

原创 微服务实战(二十) 微服务RPC feign如何进行实体对象传递与接收

关于微服务RPC远程调用,之前已经简单介绍过feign以及openfeign,并且就参数传递与接收也进行过简单讲解。Nacos+Feign简单使用:https://blog.csdn.net/u011177064/article/details/104309921本文继续介绍feign采用实体对象作为请求响应参数具体怎么使用。以下是几种常见的用法:1、请求参数: 单独字段,使用@RequestParam注解,并且里面的 value 必须和 服务生产者的参数名一致响应参数: 实..

2020-09-13 21:05:11 3816

原创 微服务实战(十九)Docker篇 从代码工程发布到Docker镜像的详细过程

本篇以 jdk8+tomcat7+springmvc 的项目为例,讲解从项目代码,发布成docker镜像的过程。(springmvc是因为本人最近正好要把公司的旧项目docker化)主要流程编写Dockerfile脚本 并 验证生成的镜像是否正确 (jdk+tomcat+项目war包) 集成Maven-Docker插件 (将本地工程结合Dockerfile脚本 打包镜像至Docker仓库) 完善:打包命令区分环境(生产/测试),直接用maven命令制作不同环境的包 测试拉取镜像并...

2020-07-26 21:43:19 1629 1

原创 微信公众号、小程序 code换取openid接口 报 48001错误

最近迁移祖传老代码到新的服务器,由于公众号,小程序均换新了,所以所有配置得重来一遍。一番折腾后发现 code 换取 openid的接口不灵了,旧版代码中 公众号/小程序 获取openid使用的是同一个微信接口https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code根据网上的提示,发现早已换成了

2020-05-18 21:24:21 2494

原创 微服务实战(十八)通过AOP的方式自动完成微服务token验证

本章主要内容在上一篇中,我们介绍了微服务架构中,token的多种实现方式。https://blog.csdn.net/u011177064/article/details/104822700本篇我们继续探究微服务架构中token的验证环节,在token微服务搭建好之后,我们将它接入 注册中心 (nacos)。这样其他微服务就可以通过 注册中心 结合 RPC(远程过程调用)来轻松调...

2020-03-29 14:45:38 3927

原创 商城原型_极简电商风格产品原型_Axure原型

在线预览:原型预览利用周末时间做了一个商城PC端的产品原型,这也是为了接下来的SpringCloud实战系列而准备的一个电商项目。之后将基于这个原型去实现分布式商城,并且就高并发场景、分布式事务、微服务治理做一些实际的探讨。好了,看看原型长什么样子吧!首页轮播图+下拉子菜单效果商品详细页面 小图切换效果、导航栏卡片切换效果搜索页+分类列表页购物车...

2020-03-22 23:19:06 4822 61

原创 用swagger2 ,维护API文档很麻烦吗?返回值无法说明? --- 还是没用对方法?

之前在和一些技术同事聊到了接口文档这事,并提到了swagger,收到的反馈有这些:“很麻烦!接口文档要和代码耦合在一起”“字段说明要写好几遍!一改要改好多地方!”"请求参数想描述清楚要写一堆玩意儿!!"我也看了下,控制器方法上要对每个参数这么描述,确实有点反人类啊!@ApiImplicitParams({ @ApiImplicitParam(name="mobi...

2020-03-15 23:36:07 2321 1

原创 Mybatis Plus 自定义SQL+多表查询结果+分页

关于Mybatis plus的 基本使用就不赘述了。只是记录一下"自定义SQL+多表联查+多实体查询参数+分页"情况下,怎样使用环境: Mybatis Plus 3.1.0自定义Sql 直接写在Mapper接口方法上,使用了 @Select 注解@Select("<script>" + " select tp.*,tpt.name as typeNa...

2020-03-14 22:10:08 6930 2

原创 微服务实战(十七)微服务Token的实现: MD5简易Token、Jwt、Jwt结合AES加密

关于Token (令牌)说起令牌,仿佛回到了封建时代,一掏出令牌,其他人都知道你是什么身份了。而在web系统中,前后端的业务交互也往往需要附带身份数据,先姑且把这个数据统称为Token (令牌) 。面向有状态HTTP请求:在前后端不分离的模式下,这个Token实际上是 jsessionId,存储在前端的cookies中,后端根据请求者cookies里的jsesssionId获取到服务...

2020-03-13 00:38:40 7058

原创 微服务实战(十六)微服务到底该如何拆分、设计

这里我大概分为这么几个流派:保守派:大多场景是本身已经存在了一个单体巨无霸系统,考虑的是如何拆分的问题,拆少了吧,达不到预期拆分效果,还增加了整体复杂度,不如不拆;拆太碎了吧,工作量忒大了,相当于重做。所以折中一下,大概按照系统的粒度,把一个大型系统拆分成为数不多的几个中型系统。比如原项目是一个商城系统,包括商城前台,订单管理,商品管理等后台功能。拆分后: 商城前台、个人中心、商城...

2020-03-07 20:01:20 3132

原创 微服务实战(十五)看完不信你还不懂单点登录:SSO,CAS,OAuth,Jwt,Spring Security,Shiro

单点登录扫盲前面铺垫了那么多,我们马上要进入到真正的微服务实战当中了,先上一个前菜:单点登录,这是接下来的微服务架构中的家常便饭,系统被你拆得那么微了,这么多系统,难道每个系统我要记一个账号吗? 在没有单点登录的模式下,可就是这么做的哦!每个系统的用户都分的倍儿清,井水不犯河水,所以,想要在大量系统集成的环境下,需要单点登录的机制来优化我们系统的登录体验。单点登录(SSO)单点登录,...

2020-03-04 16:06:20 4597 5

原创 微服务实战(十四)微服务分布式事务之集成 Nacos + Feign + Seata_AT

本章主要内容我们在上一章已经测试了Seata的AT模式的分布式事务,不过每个SpringBoot中都是直接用IP+端口的模式去调用其他服务的,现在我们将上一章中的4个微服务注册到Nacos,并且通过Feign来实现远程调用。接入Nacos和Feign首先是在父类工程“springboot-mybatis”的 pom.xml 中引入 springcloud的依赖。定义新的版本号...

2020-02-28 11:44:34 3573 1

原创 微服务实战(十三)初探微服务分布式事务 - Seata AT

本章主要内容本章我们主要了解一下分布式事务的概念、目前市面上的解决方案、以及在微服务中如何实现分布式事务。什么是事务,什么是ACID首先,提到分布式事务,咱们得明白什么是事务(Transaction),百科的链接放这里咯,事务应该具有4个属性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。这四个属性通常称为...

2020-02-26 19:32:55 1194

转载 Spring Cloud 入门者必看,架构、概念、组件

来源:[微信公众号]石杉的架构笔记|0概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring Cloud是一个全家桶式的技术栈,包含...

2020-02-24 11:30:20 682 2

原创 微服务实战(十二)微服务的调用链路追踪 - Skywalking

本章主要内容本章主要介绍如何去追踪各微服务的调用过程。在之前章节我们讲解了用Feign在微服务之间进行相互调用,那么在整个微服务体系运行时,我们怎么宏观地监测和跟踪这些微服务的调用过程呢?接下来我们就引入:微服务链路追踪技术链路追踪技术汇总现在比较流行的链路追踪框架主要有Zipkin,Pinpoint,SkyWalking,CAT主流技术对比:https://blog.csdn...

2020-02-22 20:43:02 7323 3

转载 java agent 详细介绍

什么是 javaagentjava agent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求:这个 jar 包的MANIFEST.MF 文件必须指定 Premain-Class 项。 Premain-Class 指定的那个类必须实现 premain()方法。重点就在 premain 方法,也就是我们今天的标题。从字面上...

2020-02-20 01:04:26 3927 1

转载 调用链选型之Zipkin,Pinpoint,SkyWalking,CAT

Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较...

2020-02-18 21:30:29 1687

原创 微服务实战(十一)微服务的熔断降级 - Sentinel

本章主要内容本章我们主要讲述如何使用Sentinel的熔断降级能力,包括熔断策略的设置、熔断后处理逻辑、以及在Sentinel控制台中观测熔断效果。什么是熔断降级首先我们需要认识到微服务架构的一大特点就是服务被拆分地非常细,所以一个可供前端使用的、完整的接口,调用经常会需要涉及到多个微服务,比如说一个获取订单详情的接口,开放给前端的就是单单一个接口,但是这个接口里面可能调用了订单数据、...

2020-02-18 00:36:21 1397

原创 微服务实战(十)各微服务之间的相互调用 Feign + Nacos

本章主要内容之前我们介绍了通过服务网关来调用注册中心的微服务,但是各微服务之间怎样优雅简洁的相互调用呢?下面我们又引入一个新的组件:Feignhttps://github.com/OpenFeign/feignFeign是什么?(使用上注解是@Feign)Feign是一个声明式Web Service客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方...

2020-02-14 18:26:36 3855 1

原创 微服务实战(九)接入Sentinel 控制台可视化观测流控效果

本章主要内容1、部署Sentinel控制台2、控制台和SpringCloud GateWay 的连接3、在控制台中查看流控效果Sentinel控制台的启动首先去Sentinel的官网下载最新的控制台Jar包https://github.com/alibaba/Sentinel/releases使用命令启动,其中-Dserver.port=8080用于指定 Senti...

2020-02-13 19:36:33 1743

原创 微服务实战(八)集成Sentinel网关服务限流功能 SpringCloud GateWay + Sentinel + Nacos

本章主要内容在SpringCloud GateWay服务网关中集成Sentinel来实现服务的限流功能。首先,我们谈一下什么是服务限流。在如今互联网的大环境下,我们后端的接口调用频次(QPS/TPS)动辄上百万,甚至达到千万级别,这对于服务端的承受能力是一个巨大的考验。那么限流在这个问题中起到什么作用呢?其实就是对于流量进行有策略的管理和限制。 比如说在一个系统中,有订单查询服务,商品...

2020-02-12 11:15:37 8369 1

原创 微服务实战(七)实现服务负载均衡 - SpringCloud GateWay + Nacos + Robin

本章主要讲述内容在上一章节中讲述了集成 配置中心+注册中心+服务网关 的初步使用。本章节主要记录 在服务网关中同一个服务下多个节点的负载均衡问题。由于Nacos里默认集成了 Ribon 负载均衡组件,实际上经过上一章节的操作,我们已经搭建完了负载均衡的功能,所以我们主要是验证一下实际的效果,和一些使用方法以及源码分析。具体搭建可参考:微服务实战(六)集成服务网关 SpringClo...

2020-02-08 16:31:56 10218 4

转载 JAVA1.8中的Lambda表达式("->")用法

这是最近看到过的最通俗易懂的Lambda语法说明了,非常清晰!还不会用的来学习一下吧!转自知乎:https://www.zhihu.com/question/20125256/answer/324121308什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。如果你想把“一块代码”赋给一个Java变量,应该怎么做呢?比如,我想把右边那块...

2020-02-05 18:02:01 4460

原创 微服务实战(六)集成服务网关 SpringCloud GateWay (配置中心&注册中心用Nacos)

本章主要讲述服务网关、配置中心、注册中心 结合使用结合使用微服务架构的 服务网关、配置中心、注册中心。回顾一下:之前分别讲述了Nacos的配置中心、注册中心单独使用,记得在注册中心一章中我们是在消费者微服务中先进行了接口地址的寻址,然后再调用的。这次加上服务网关,就不用这么麻烦啦!只要将服务网关也注册到服务中心,那么服务网关就会自动代理服务中心的服务,相当于Nginx的作用。介绍一下这...

2020-02-04 23:56:06 3969 6

原创 Mysql 5.7 表名大写遇到的坑 error: 1146: Table 'your_table' doesn't exist

环境数据库从Mysql5.6导出后导入到Mysql5.7,操作系统是 Centos7问题在导入脚本中表名都是大写,导入后无论是命令行、navicat、还是Java代码,均提示表不存在。Table 'XXX' doesn't exist原因原因是安装mysql5.7版本后,linux环境下默认是表名大小写敏感的,如果你的SQL或者工具去查表时用的是小写(一般是这样),而数据库...

2020-02-04 18:59:58 3816 1

转载 解决Spring Boot 整合Security后,所有接口提示Unauthorized、返回401、 跳转到登陆页面

SpringBoot只要依赖了Spring Security包后(pom.xml中多了spring-boot-starter-security的jar包),默认就已经开启了权限验证,如果当前工程是不需要纳入权限管理的话,就可以直接禁用掉Security的认证。下面是方法:Spring Boot 2.x和Spring Security 5.x前禁用认证在application.yml或...

2020-02-02 19:59:06 7455 1

原创 微服务实战(五) Nacos架构源码分析---配置中心

本章节主要内容:Nacos的架构介绍、配置中心源码初步分析nacos官网https://nacos.io/nacos源码https://github.com/alibaba/Nacos我们已经在前面章节启动了Nacos,并且作为了 服务注册发现中心 和 配置中心,作为微服务开发者,其实很有必要去了解下微服务这些核心组件的架构、实现,虽然在实际开发中这些组件都是拿来即用的,但是...

2020-02-01 16:36:21 6743

原创 微服务实战(四) 配置中心的使用 - Nacos

本章主要讲述如何使用微服务架构中的配置中心在微服务架构中,每个微服务应用都有自己的应用外部配置,在以前大多是使用配置文件或者数据库的形式和应用一起部署,而在SpringCloud体系下,需要有一个配置中心,专门管理各个微应用的配置信息,并且配置发生更新后,所有微应用都能马上读取到最新的配置。解决了每个应用都要去手动维护配置的不便。上一章节中,使用了Nacos作为服务注册发现中心,其实Nac...

2020-01-30 22:02:27 2146 1

原创 微服务实战(三)集成服务注册发现中心 - Nacos

本章主要讲述如何使用服务注册发现中心SpringCloud默认的注册中心eurka 已经停止更新,通过比较,发现阿里的SpringCloud Alibaba 是一个比较不错的选择,其中它的注册中心使用的是 Nacos。SpringCloud Alibaba的git:https://gitee.com/mirrors/Spring-Cloud-Alibabahttps://gi...

2020-01-29 20:04:01 5689 1

原创 微服务实战(二) 搭建第一个SpringBoot小应用

1、搭建第一个springboot微服务创建一个maven工程,工程结构如下:pom.xml内容如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav...

2020-01-28 20:44:28 1229 2

原创 微服务实战(一) 如何理解SpringBoot 、SpringCloud、Docker、K8s

本篇主要阐述微服务的个人理解现如今,随着互联网的发展,对于系统性能,架构均有了更高的要求。以前传统的ssh单体应用的模式已显力不从心,而微服务架构应运而生,并且形成了越来越成熟的方案。传统的单体应用模式(比如ssh时代的惯用架构)优点是开发和部署都非常方便,只需要考虑到单体应用如何实现业务逻辑,对于性能的扩展只需要复制部署到多个tomcat形成集群,用Nginx进行负载均衡,即可完成一...

2020-01-28 16:25:24 13695 4

原创 SEO实战(三) 调整内容关键词词频提高排名

1、简介搜索引擎的排名主要取决于以下因素:内容相关度(百度搜索大概占比<40%) 用户行为(用户点击数、跳出、浏览时长等等,占比未知) 网站技术参数(是否有gzip、nofollow、alt 以及各类标签是否正确使用等等,占比应该较小) 域名积累(包括域名年龄、外链、历史流量等,占比应较大)2、优化思路本质上排名的优化是一种竞争。和该关键词搜索结果中的其他网站竞争...

2020-01-19 13:18:45 7081 2

转载 springboot打包 -- 项目JAR包和依赖JAR包分离

写在前面的  当我们使用spring boot写项目时,一般都会遇到一个问题,那就是spring boot打包时,会将自己写的代码和项目的所有依赖文件打成一个可执行的jar包。通常我们的项目都是运行在服务器上的,当项目更新时,每次都要向服务器上传这个包。如果项目的依赖包很多,那么这个文件就会非常大。大文件上传不仅浪费带宽,有时候网络不稳定,传输一半断网,又要重新上传,非常麻烦。默认的m...

2020-01-19 11:19:13 6028 3

原创 SEO实战(二) 分析网站在搜索结果中的曝光和点击

1、简介本章节主要讲述在网站运营过程中,如何分析网站在百度搜索结果中的曝光与点击数据。2、操作步骤主要使用了“百度搜索资源平台”ziyuan.baidu.com。注册好账号之后,在“站点管理”中添加好需要分析的网站。点击“添加网站”需要注意的是 必须拥有要分析的网站的服务器权限,因为最后一步是验证这个网站操作者是否有权限3、分析网站的搜索...

2020-01-18 17:12:19 4181

原创 用axure做产品需求文档

用axure做产品需求文档分享一个自己做的完整产品需求文档模板,并且内置了思维导图、流程图、微信小程序原型、后台系统原型等示例。本文档是从真实互联网项目中抽取出来的产品需求文档的原型模板,归纳了互联网产品设计过程中的 信息架构设计、业务流程设计、交互原型设计等重要步骤,形成了一套小而美的产品设计文档。(提供高保真移动端社区拼团原型和后台管理系统原型)原型效果演示:http://demo...

2020-01-14 11:54:29 2021 11

redis-extend.zip

redis-分布式锁、持久化缓冲器 maven工程 详细介绍看 https://blog.csdn.net/u011177064/article/details/102643682

2019-10-19

空空如也

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

TA关注的人

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